{"id":"68fde0dbf0d3798ed1844e69419766a0","_format":"hh-sol-build-info-1","solcVersion":"0.8.17","solcLongVersion":"0.8.17+commit.8df45f5f","input":{"language":"Solidity","sources":{"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.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/ContextUpgradeable.sol\";\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    function __Ownable_init() internal onlyInitializing {\n        __Ownable_init_unchained();\n    }\n\n    function __Ownable_init_unchained() internal onlyInitializing {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions 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    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.1) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/AddressUpgradeable.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Indicates that the contract has been initialized.\n     * @custom:oz-retyped-from bool\n     */\n    uint8 private _initialized;\n\n    /**\n     * @dev Indicates that the contract is in the process of being initialized.\n     */\n    bool private _initializing;\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint8 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n     * constructor.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        bool isTopLevelCall = !_initializing;\n        require(\n            (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1),\n            \"Initializable: contract is already initialized\"\n        );\n        _initialized = 1;\n        if (isTopLevelCall) {\n            _initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            _initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: setting the version to 255 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint8 version) {\n        require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n        _initialized = version;\n        _initializing = true;\n        _;\n        _initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        require(_initializing, \"Initializable: contract is not initializing\");\n        _;\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        require(!_initializing, \"Initializable: contract is initializing\");\n        if (_initialized < type(uint8).max) {\n            _initialized = type(uint8).max;\n            emit Initialized(type(uint8).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint8) {\n        return _initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _initializing;\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721Upgradeable.sol\";\nimport \"./IERC721ReceiverUpgradeable.sol\";\nimport \"./extensions/IERC721MetadataUpgradeable.sol\";\nimport \"../../utils/AddressUpgradeable.sol\";\nimport \"../../utils/ContextUpgradeable.sol\";\nimport \"../../utils/StringsUpgradeable.sol\";\nimport \"../../utils/introspection/ERC165Upgradeable.sol\";\nimport \"../../proxy/utils/Initializable.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 ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721Upgradeable, IERC721MetadataUpgradeable {\n    using AddressUpgradeable for address;\n    using StringsUpgradeable 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    function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing {\n        __ERC721_init_unchained(name_, symbol_);\n    }\n\n    function __ERC721_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165Upgradeable) returns (bool) {\n        return\n            interfaceId == type(IERC721Upgradeable).interfaceId ||\n            interfaceId == type(IERC721MetadataUpgradeable).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 = ERC721Upgradeable.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 = ERC721Upgradeable.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 = ERC721Upgradeable.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n        // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n        owner = ERC721Upgradeable.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(ERC721Upgradeable.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(ERC721Upgradeable.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(ERC721Upgradeable.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 IERC721ReceiverUpgradeable(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                return retval == IERC721ReceiverUpgradeable.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        if (batchSize > 1) {\n            if (from != address(0)) {\n                _balances[from] -= batchSize;\n            }\n            if (to != address(0)) {\n                _balances[to] += batchSize;\n            }\n        }\n    }\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 This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[44] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.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 \"../ERC721Upgradeable.sol\";\nimport \"./IERC721EnumerableUpgradeable.sol\";\nimport \"../../../proxy/utils/Initializable.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 ERC721EnumerableUpgradeable is Initializable, ERC721Upgradeable, IERC721EnumerableUpgradeable {\n    function __ERC721Enumerable_init() internal onlyInitializing {\n    }\n\n    function __ERC721Enumerable_init_unchained() internal onlyInitializing {\n    }\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(IERC165Upgradeable, ERC721Upgradeable) returns (bool) {\n        return interfaceId == type(IERC721EnumerableUpgradeable).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 < ERC721Upgradeable.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 < ERC721EnumerableUpgradeable.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 = ERC721Upgradeable.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 = ERC721Upgradeable.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    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[46] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721Upgradeable.sol\";\nimport \"../../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorageUpgradeable is Initializable, ERC721Upgradeable {\n    function __ERC721URIStorage_init() internal onlyInitializing {\n    }\n\n    function __ERC721URIStorage_init_unchained() internal onlyInitializing {\n    }\n    using StringsUpgradeable for uint256;\n\n    // Optional mapping for token URIs\n    mapping(uint256 => string) private _tokenURIs;\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 _tokenURI = _tokenURIs[tokenId];\n        string memory base = _baseURI();\n\n        // If there is no base URI, return the token URI.\n        if (bytes(base).length == 0) {\n            return _tokenURI;\n        }\n        // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n        if (bytes(_tokenURI).length > 0) {\n            return string(abi.encodePacked(base, _tokenURI));\n        }\n\n        return super.tokenURI(tokenId);\n    }\n\n    /**\n     * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n        require(_exists(tokenId), \"ERC721URIStorage: URI set of nonexistent token\");\n        _tokenURIs[tokenId] = _tokenURI;\n    }\n\n    /**\n     * @dev See {ERC721-_burn}. This override additionally checks to see if a\n     * token-specific URI was set for the token, and if so, it deletes the token URI from\n     * the storage mapping.\n     */\n    function _burn(uint256 tokenId) internal virtual override {\n        super._burn(tokenId);\n\n        if (bytes(_tokenURIs[tokenId]).length != 0) {\n            delete _tokenURIs[tokenId];\n        }\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[49] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.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 \"../IERC721Upgradeable.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 IERC721EnumerableUpgradeable is IERC721Upgradeable {\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-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.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 \"../IERC721Upgradeable.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 IERC721MetadataUpgradeable is IERC721Upgradeable {\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-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.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 IERC721ReceiverUpgradeable {\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-upgradeable/token/ERC721/IERC721Upgradeable.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/IERC165Upgradeable.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721Upgradeable is IERC165Upgradeable {\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-upgradeable/utils/AddressUpgradeable.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 AddressUpgradeable {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     *\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 Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\nimport \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165Upgradeable.sol\";\nimport \"../../proxy/utils/Initializable.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 ERC165Upgradeable is Initializable, IERC165Upgradeable {\n    function __ERC165_init() internal onlyInitializing {\n    }\n\n    function __ERC165_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165Upgradeable).interfaceId;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[50] private __gap;\n}\n"},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.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 IERC165Upgradeable {\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-upgradeable/utils/math/MathUpgradeable.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 MathUpgradeable {\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-upgradeable/utils/StringsUpgradeable.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/MathUpgradeable.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary StringsUpgradeable {\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 = MathUpgradeable.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, MathUpgradeable.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-upgradeable/utils/structs/EnumerableMapUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/structs/EnumerableMap.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableMap.js.\n\npragma solidity ^0.8.0;\n\nimport \"./EnumerableSetUpgradeable.sol\";\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n *     // Declare a set state variable\n *     EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * The following map types are supported:\n *\n * - `uint256 -> address` (`UintToAddressMap`) since v3.0.0\n * - `address -> uint256` (`AddressToUintMap`) since v4.6.0\n * - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0\n * - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0\n * - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0\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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableMap.\n * ====\n */\nlibrary EnumerableMapUpgradeable {\n    using EnumerableSetUpgradeable for EnumerableSetUpgradeable.Bytes32Set;\n\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Map type with\n    // bytes32 keys and values.\n    // The Map implementation uses private functions, and user-facing\n    // implementations (such as Uint256ToAddressMap) are just wrappers around\n    // the underlying Map.\n    // This means that we can only create new EnumerableMaps for types that fit\n    // in bytes32.\n\n    struct Bytes32ToBytes32Map {\n        // Storage of keys\n        EnumerableSetUpgradeable.Bytes32Set _keys;\n        mapping(bytes32 => bytes32) _values;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        Bytes32ToBytes32Map storage map,\n        bytes32 key,\n        bytes32 value\n    ) internal returns (bool) {\n        map._values[key] = value;\n        return map._keys.add(key);\n    }\n\n    /**\n     * @dev Removes a key-value pair from a map. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(Bytes32ToBytes32Map storage map, bytes32 key) internal returns (bool) {\n        delete map._values[key];\n        return map._keys.remove(key);\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool) {\n        return map._keys.contains(key);\n    }\n\n    /**\n     * @dev Returns the number of key-value pairs in the map. O(1).\n     */\n    function length(Bytes32ToBytes32Map storage map) internal view returns (uint256) {\n        return map._keys.length();\n    }\n\n    /**\n     * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n     *\n     * Note that there are no guarantees on the ordering of entries inside the\n     * array, and it may change when more entries are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32ToBytes32Map storage map, uint256 index) internal view returns (bytes32, bytes32) {\n        bytes32 key = map._keys.at(index);\n        return (key, map._values[key]);\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool, bytes32) {\n        bytes32 value = map._values[key];\n        if (value == bytes32(0)) {\n            return (contains(map, key), bytes32(0));\n        } else {\n            return (true, value);\n        }\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bytes32) {\n        bytes32 value = map._values[key];\n        require(value != 0 || contains(map, key), \"EnumerableMap: nonexistent key\");\n        return value;\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        Bytes32ToBytes32Map storage map,\n        bytes32 key,\n        string memory errorMessage\n    ) internal view returns (bytes32) {\n        bytes32 value = map._values[key];\n        require(value != 0 || contains(map, key), errorMessage);\n        return value;\n    }\n\n    // UintToUintMap\n\n    struct UintToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        UintToUintMap storage map,\n        uint256 key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(key), bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(UintToUintMap storage map, uint256 key) internal returns (bool) {\n        return remove(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(UintToUintMap storage map, uint256 key) internal view returns (bool) {\n        return contains(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(UintToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintToUintMap storage map, uint256 index) internal view returns (uint256, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (uint256(key), uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(UintToUintMap storage map, uint256 key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(key));\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(UintToUintMap storage map, uint256 key) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(key)));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        UintToUintMap storage map,\n        uint256 key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(key), errorMessage));\n    }\n\n    // UintToAddressMap\n\n    struct UintToAddressMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        UintToAddressMap storage map,\n        uint256 key,\n        address value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n        return remove(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n        return contains(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(UintToAddressMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (uint256(key), address(uint160(uint256(value))));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(key));\n        return (success, address(uint160(uint256(value))));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n        return address(uint160(uint256(get(map._inner, bytes32(key)))));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        UintToAddressMap storage map,\n        uint256 key,\n        string memory errorMessage\n    ) internal view returns (address) {\n        return address(uint160(uint256(get(map._inner, bytes32(key), errorMessage))));\n    }\n\n    // AddressToUintMap\n\n    struct AddressToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        AddressToUintMap storage map,\n        address key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(uint256(uint160(key))), bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(AddressToUintMap storage map, address key) internal returns (bool) {\n        return remove(map._inner, bytes32(uint256(uint160(key))));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(AddressToUintMap storage map, address key) internal view returns (bool) {\n        return contains(map._inner, bytes32(uint256(uint160(key))));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(AddressToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(AddressToUintMap storage map, uint256 index) internal view returns (address, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (address(uint160(uint256(key))), uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(AddressToUintMap storage map, address key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(uint256(uint160(key))));\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(AddressToUintMap storage map, address key) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(uint256(uint160(key)))));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        AddressToUintMap storage map,\n        address key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(uint256(uint160(key))), errorMessage));\n    }\n\n    // Bytes32ToUintMap\n\n    struct Bytes32ToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        Bytes32ToUintMap storage map,\n        bytes32 key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, key, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(Bytes32ToUintMap storage map, bytes32 key) internal returns (bool) {\n        return remove(map._inner, key);\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool) {\n        return contains(map._inner, key);\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(Bytes32ToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32ToUintMap storage map, uint256 index) internal view returns (bytes32, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (key, uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, key);\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(Bytes32ToUintMap storage map, bytes32 key) internal view returns (uint256) {\n        return uint256(get(map._inner, key));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        Bytes32ToUintMap storage map,\n        bytes32 key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, key, errorMessage));\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.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 EnumerableSetUpgradeable {\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"},"@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/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     *\n     * _Available since v3.1._\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call, an admin role\n     * bearer except when using {AccessControl-_setupRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `account`.\n     */\n    function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.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/extensions/GovernorCountingSimple.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (governance/extensions/GovernorCountingSimple.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\n\n/**\n * @dev Extension of {Governor} for simple, 3 options, vote counting.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorCountingSimple is Governor {\n    /**\n     * @dev Supported vote types. Matches Governor Bravo ordering.\n     */\n    enum VoteType {\n        Against,\n        For,\n        Abstain\n    }\n\n    struct ProposalVote {\n        uint256 againstVotes;\n        uint256 forVotes;\n        uint256 abstainVotes;\n        mapping(address => bool) hasVoted;\n    }\n\n    mapping(uint256 => ProposalVote) private _proposalVotes;\n\n    /**\n     * @dev See {IGovernor-COUNTING_MODE}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function COUNTING_MODE() public pure virtual override returns (string memory) {\n        return \"support=bravo&quorum=for,abstain\";\n    }\n\n    /**\n     * @dev See {IGovernor-hasVoted}.\n     */\n    function hasVoted(uint256 proposalId, address account) public view virtual override returns (bool) {\n        return _proposalVotes[proposalId].hasVoted[account];\n    }\n\n    /**\n     * @dev Accessor to the internal vote counts.\n     */\n    function proposalVotes(uint256 proposalId)\n        public\n        view\n        virtual\n        returns (\n            uint256 againstVotes,\n            uint256 forVotes,\n            uint256 abstainVotes\n        )\n    {\n        ProposalVote storage proposalVote = _proposalVotes[proposalId];\n        return (proposalVote.againstVotes, proposalVote.forVotes, proposalVote.abstainVotes);\n    }\n\n    /**\n     * @dev See {Governor-_quorumReached}.\n     */\n    function _quorumReached(uint256 proposalId) internal view virtual override returns (bool) {\n        ProposalVote storage proposalVote = _proposalVotes[proposalId];\n\n        return quorum(proposalSnapshot(proposalId)) <= proposalVote.forVotes + proposalVote.abstainVotes;\n    }\n\n    /**\n     * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes.\n     */\n    function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) {\n        ProposalVote storage proposalVote = _proposalVotes[proposalId];\n\n        return proposalVote.forVotes > proposalVote.againstVotes;\n    }\n\n    /**\n     * @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo).\n     */\n    function _countVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        uint256 weight,\n        bytes memory // params\n    ) internal virtual override {\n        ProposalVote storage proposalVote = _proposalVotes[proposalId];\n\n        require(!proposalVote.hasVoted[account], \"GovernorVotingSimple: vote already cast\");\n        proposalVote.hasVoted[account] = true;\n\n        if (support == uint8(VoteType.Against)) {\n            proposalVote.againstVotes += weight;\n        } else if (support == uint8(VoteType.For)) {\n            proposalVote.forVotes += weight;\n        } else if (support == uint8(VoteType.Abstain)) {\n            proposalVote.abstainVotes += weight;\n        } else {\n            revert(\"GovernorVotingSimple: invalid value for enum VoteType\");\n        }\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (governance/extensions/GovernorSettings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\n\n/**\n * @dev Extension of {Governor} for settings updatable through governance.\n *\n * _Available since v4.4._\n */\nabstract contract GovernorSettings is Governor {\n    uint256 private _votingDelay;\n    uint256 private _votingPeriod;\n    uint256 private _proposalThreshold;\n\n    event VotingDelaySet(uint256 oldVotingDelay, uint256 newVotingDelay);\n    event VotingPeriodSet(uint256 oldVotingPeriod, uint256 newVotingPeriod);\n    event ProposalThresholdSet(uint256 oldProposalThreshold, uint256 newProposalThreshold);\n\n    /**\n     * @dev Initialize the governance parameters.\n     */\n    constructor(\n        uint256 initialVotingDelay,\n        uint256 initialVotingPeriod,\n        uint256 initialProposalThreshold\n    ) {\n        _setVotingDelay(initialVotingDelay);\n        _setVotingPeriod(initialVotingPeriod);\n        _setProposalThreshold(initialProposalThreshold);\n    }\n\n    /**\n     * @dev See {IGovernor-votingDelay}.\n     */\n    function votingDelay() public view virtual override returns (uint256) {\n        return _votingDelay;\n    }\n\n    /**\n     * @dev See {IGovernor-votingPeriod}.\n     */\n    function votingPeriod() public view virtual override returns (uint256) {\n        return _votingPeriod;\n    }\n\n    /**\n     * @dev See {Governor-proposalThreshold}.\n     */\n    function proposalThreshold() public view virtual override returns (uint256) {\n        return _proposalThreshold;\n    }\n\n    /**\n     * @dev Update the voting delay. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {VotingDelaySet} event.\n     */\n    function setVotingDelay(uint256 newVotingDelay) public virtual onlyGovernance {\n        _setVotingDelay(newVotingDelay);\n    }\n\n    /**\n     * @dev Update the voting period. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {VotingPeriodSet} event.\n     */\n    function setVotingPeriod(uint256 newVotingPeriod) public virtual onlyGovernance {\n        _setVotingPeriod(newVotingPeriod);\n    }\n\n    /**\n     * @dev Update the proposal threshold. This operation can only be performed through a governance proposal.\n     *\n     * Emits a {ProposalThresholdSet} event.\n     */\n    function setProposalThreshold(uint256 newProposalThreshold) public virtual onlyGovernance {\n        _setProposalThreshold(newProposalThreshold);\n    }\n\n    /**\n     * @dev Internal setter for the voting delay.\n     *\n     * Emits a {VotingDelaySet} event.\n     */\n    function _setVotingDelay(uint256 newVotingDelay) internal virtual {\n        emit VotingDelaySet(_votingDelay, newVotingDelay);\n        _votingDelay = newVotingDelay;\n    }\n\n    /**\n     * @dev Internal setter for the voting period.\n     *\n     * Emits a {VotingPeriodSet} event.\n     */\n    function _setVotingPeriod(uint256 newVotingPeriod) internal virtual {\n        // voting period must be at least one block long\n        require(newVotingPeriod > 0, \"GovernorSettings: voting period too low\");\n        emit VotingPeriodSet(_votingPeriod, newVotingPeriod);\n        _votingPeriod = newVotingPeriod;\n    }\n\n    /**\n     * @dev Internal setter for the proposal threshold.\n     *\n     * Emits a {ProposalThresholdSet} event.\n     */\n    function _setProposalThreshold(uint256 newProposalThreshold) internal virtual {\n        emit ProposalThresholdSet(_proposalThreshold, newProposalThreshold);\n        _proposalThreshold = newProposalThreshold;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorTimelockControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IGovernorTimelock.sol\";\nimport \"../Governor.sol\";\nimport \"../TimelockController.sol\";\n\n/**\n * @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a\n * delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The\n * {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly.\n *\n * Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus,\n * the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be\n * inaccessible.\n *\n * WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it\n * grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are\n * available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively\n * executing a Denial of Service attack. This risk will be mitigated in a future release.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorTimelockControl is IGovernorTimelock, Governor {\n    TimelockController private _timelock;\n    mapping(uint256 => bytes32) private _timelockIds;\n\n    /**\n     * @dev Emitted when the timelock controller used for proposal execution is modified.\n     */\n    event TimelockChange(address oldTimelock, address newTimelock);\n\n    /**\n     * @dev Set the timelock.\n     */\n    constructor(TimelockController timelockAddress) {\n        _updateTimelock(timelockAddress);\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, Governor) returns (bool) {\n        return interfaceId == type(IGovernorTimelock).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Overridden version of the {Governor-state} function with added support for the `Queued` status.\n     */\n    function state(uint256 proposalId) public view virtual override(IGovernor, Governor) returns (ProposalState) {\n        ProposalState status = super.state(proposalId);\n\n        if (status != ProposalState.Succeeded) {\n            return status;\n        }\n\n        // core tracks execution, so we just have to check if successful proposal have been queued.\n        bytes32 queueid = _timelockIds[proposalId];\n        if (queueid == bytes32(0)) {\n            return status;\n        } else if (_timelock.isOperationDone(queueid)) {\n            return ProposalState.Executed;\n        } else if (_timelock.isOperationPending(queueid)) {\n            return ProposalState.Queued;\n        } else {\n            return ProposalState.Canceled;\n        }\n    }\n\n    /**\n     * @dev Public accessor to check the address of the timelock\n     */\n    function timelock() public view virtual override returns (address) {\n        return address(_timelock);\n    }\n\n    /**\n     * @dev Public accessor to check the eta of a queued proposal\n     */\n    function proposalEta(uint256 proposalId) public view virtual override returns (uint256) {\n        uint256 eta = _timelock.getTimestamp(_timelockIds[proposalId]);\n        return eta == 1 ? 0 : eta; // _DONE_TIMESTAMP (1) should be replaced with a 0 value\n    }\n\n    /**\n     * @dev Function to queue a proposal to the timelock.\n     */\n    function queue(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public virtual override returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n\n        require(state(proposalId) == ProposalState.Succeeded, \"Governor: proposal not successful\");\n\n        uint256 delay = _timelock.getMinDelay();\n        _timelockIds[proposalId] = _timelock.hashOperationBatch(targets, values, calldatas, 0, descriptionHash);\n        _timelock.scheduleBatch(targets, values, calldatas, 0, descriptionHash, delay);\n\n        emit ProposalQueued(proposalId, block.timestamp + delay);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Overridden execute function that run the already queued proposal through the timelock.\n     */\n    function _execute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual override {\n        _timelock.executeBatch{value: msg.value}(targets, values, calldatas, 0, descriptionHash);\n    }\n\n    /**\n     * @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already\n     * been queued.\n     */\n    // This function can reenter through the external call to the timelock, but we assume the timelock is trusted and\n    // well behaved (according to TimelockController) and this will not happen.\n    // slither-disable-next-line reentrancy-no-eth\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual override returns (uint256) {\n        uint256 proposalId = super._cancel(targets, values, calldatas, descriptionHash);\n\n        if (_timelockIds[proposalId] != 0) {\n            _timelock.cancel(_timelockIds[proposalId]);\n            delete _timelockIds[proposalId];\n        }\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Address through which the governor executes action. In this case, the timelock.\n     */\n    function _executor() internal view virtual override returns (address) {\n        return address(_timelock);\n    }\n\n    /**\n     * @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates\n     * must be proposed, scheduled, and executed through governance proposals.\n     *\n     * CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\n     */\n    function updateTimelock(TimelockController newTimelock) external virtual onlyGovernance {\n        _updateTimelock(newTimelock);\n    }\n\n    function _updateTimelock(TimelockController newTimelock) private {\n        emit TimelockChange(address(_timelock), address(newTimelock));\n        _timelock = newTimelock;\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (governance/extensions/GovernorVotes.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Governor.sol\";\nimport \"../utils/IVotes.sol\";\n\n/**\n * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorVotes is Governor {\n    IVotes public immutable token;\n\n    constructor(IVotes tokenAddress) {\n        token = tokenAddress;\n    }\n\n    /**\n     * Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes}).\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory /*params*/\n    ) internal view virtual override returns (uint256) {\n        return token.getPastVotes(account, blockNumber);\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (governance/extensions/GovernorVotesQuorumFraction.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./GovernorVotes.sol\";\nimport \"../../utils/Checkpoints.sol\";\nimport \"../../utils/math/SafeCast.sol\";\n\n/**\n * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a\n * fraction of the total supply.\n *\n * _Available since v4.3._\n */\nabstract contract GovernorVotesQuorumFraction is GovernorVotes {\n    using Checkpoints for Checkpoints.History;\n\n    uint256 private _quorumNumerator; // DEPRECATED\n    Checkpoints.History private _quorumNumeratorHistory;\n\n    event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator);\n\n    /**\n     * @dev Initialize quorum as a fraction of the token's total supply.\n     *\n     * The fraction is specified as `numerator / denominator`. By default the denominator is 100, so quorum is\n     * specified as a percent: a numerator of 10 corresponds to quorum being 10% of total supply. The denominator can be\n     * customized by overriding {quorumDenominator}.\n     */\n    constructor(uint256 quorumNumeratorValue) {\n        _updateQuorumNumerator(quorumNumeratorValue);\n    }\n\n    /**\n     * @dev Returns the current quorum numerator. See {quorumDenominator}.\n     */\n    function quorumNumerator() public view virtual returns (uint256) {\n        return _quorumNumeratorHistory._checkpoints.length == 0 ? _quorumNumerator : _quorumNumeratorHistory.latest();\n    }\n\n    /**\n     * @dev Returns the quorum numerator at a specific block number. See {quorumDenominator}.\n     */\n    function quorumNumerator(uint256 blockNumber) public view virtual returns (uint256) {\n        // If history is empty, fallback to old storage\n        uint256 length = _quorumNumeratorHistory._checkpoints.length;\n        if (length == 0) {\n            return _quorumNumerator;\n        }\n\n        // Optimistic search, check the latest checkpoint\n        Checkpoints.Checkpoint memory latest = _quorumNumeratorHistory._checkpoints[length - 1];\n        if (latest._blockNumber <= blockNumber) {\n            return latest._value;\n        }\n\n        // Otherwise, do the binary search\n        return _quorumNumeratorHistory.getAtBlock(blockNumber);\n    }\n\n    /**\n     * @dev Returns the quorum denominator. Defaults to 100, but may be overridden.\n     */\n    function quorumDenominator() public view virtual returns (uint256) {\n        return 100;\n    }\n\n    /**\n     * @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\n     */\n    function quorum(uint256 blockNumber) public view virtual override returns (uint256) {\n        return (token.getPastTotalSupply(blockNumber) * quorumNumerator(blockNumber)) / quorumDenominator();\n    }\n\n    /**\n     * @dev Changes the quorum numerator.\n     *\n     * Emits a {QuorumNumeratorUpdated} event.\n     *\n     * Requirements:\n     *\n     * - Must be called through a governance proposal.\n     * - New numerator must be smaller or equal to the denominator.\n     */\n    function updateQuorumNumerator(uint256 newQuorumNumerator) external virtual onlyGovernance {\n        _updateQuorumNumerator(newQuorumNumerator);\n    }\n\n    /**\n     * @dev Changes the quorum numerator.\n     *\n     * Emits a {QuorumNumeratorUpdated} event.\n     *\n     * Requirements:\n     *\n     * - New numerator must be smaller or equal to the denominator.\n     */\n    function _updateQuorumNumerator(uint256 newQuorumNumerator) internal virtual {\n        require(\n            newQuorumNumerator <= quorumDenominator(),\n            \"GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator\"\n        );\n\n        uint256 oldQuorumNumerator = quorumNumerator();\n\n        // Make sure we keep track of the original numerator in contracts upgraded from a version without checkpoints.\n        if (oldQuorumNumerator != 0 && _quorumNumeratorHistory._checkpoints.length == 0) {\n            _quorumNumeratorHistory._checkpoints.push(\n                Checkpoints.Checkpoint({_blockNumber: 0, _value: SafeCast.toUint224(oldQuorumNumerator)})\n            );\n        }\n\n        // Set new quorum for future proposals\n        _quorumNumeratorHistory.push(newQuorumNumerator);\n\n        emit QuorumNumeratorUpdated(oldQuorumNumerator, newQuorumNumerator);\n    }\n}\n"},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (governance/extensions/IGovernorTimelock.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IGovernor.sol\";\n\n/**\n * @dev Extension of the {IGovernor} for timelock supporting modules.\n *\n * _Available since v4.3._\n */\nabstract contract IGovernorTimelock is IGovernor {\n    event ProposalQueued(uint256 proposalId, uint256 eta);\n\n    function timelock() public view virtual returns (address);\n\n    function proposalEta(uint256 proposalId) public view virtual returns (uint256);\n\n    function queue(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public virtual returns (uint256 proposalId);\n}\n"},"@openzeppelin/contracts/governance/Governor.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (governance/Governor.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../token/ERC721/IERC721Receiver.sol\";\nimport \"../token/ERC1155/IERC1155Receiver.sol\";\nimport \"../utils/cryptography/ECDSA.sol\";\nimport \"../utils/cryptography/EIP712.sol\";\nimport \"../utils/introspection/ERC165.sol\";\nimport \"../utils/math/SafeCast.sol\";\nimport \"../utils/structs/DoubleEndedQueue.sol\";\nimport \"../utils/Address.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Timers.sol\";\nimport \"./IGovernor.sol\";\n\n/**\n * @dev Core of the governance system, designed to be extended though various modules.\n *\n * This contract is abstract and requires several function to be implemented in various modules:\n *\n * - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote}\n * - A voting module must implement {_getVotes}\n * - Additionanly, the {votingPeriod} must also be implemented\n *\n * _Available since v4.3._\n */\nabstract contract Governor is Context, ERC165, EIP712, IGovernor, IERC721Receiver, IERC1155Receiver {\n    using DoubleEndedQueue for DoubleEndedQueue.Bytes32Deque;\n    using SafeCast for uint256;\n    using Timers for Timers.BlockNumber;\n\n    bytes32 public constant BALLOT_TYPEHASH = keccak256(\"Ballot(uint256 proposalId,uint8 support)\");\n    bytes32 public constant EXTENDED_BALLOT_TYPEHASH =\n        keccak256(\"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\");\n\n    struct ProposalCore {\n        Timers.BlockNumber voteStart;\n        Timers.BlockNumber voteEnd;\n        bool executed;\n        bool canceled;\n    }\n\n    string private _name;\n\n    mapping(uint256 => ProposalCore) private _proposals;\n\n    // This queue keeps track of the governor operating on itself. Calls to functions protected by the\n    // {onlyGovernance} modifier needs to be whitelisted in this queue. Whitelisting is set in {_beforeExecute},\n    // consumed by the {onlyGovernance} modifier and eventually reset in {_afterExecute}. This ensures that the\n    // execution of {onlyGovernance} protected calls can only be achieved through successful proposals.\n    DoubleEndedQueue.Bytes32Deque private _governanceCall;\n\n    /**\n     * @dev Restricts a function so it can only be executed through governance proposals. For example, governance\n     * parameter setters in {GovernorSettings} are protected using this modifier.\n     *\n     * The governance executing address may be different from the Governor's own address, for example it could be a\n     * timelock. This can be customized by modules by overriding {_executor}. The executor is only able to invoke these\n     * functions during the execution of the governor's {execute} function, and not under any other circumstances. Thus,\n     * for example, additional timelock proposers are not able to change governance parameters without going through the\n     * governance protocol (since v4.6).\n     */\n    modifier onlyGovernance() {\n        require(_msgSender() == _executor(), \"Governor: onlyGovernance\");\n        if (_executor() != address(this)) {\n            bytes32 msgDataHash = keccak256(_msgData());\n            // loop until popping the expected operation - throw if deque is empty (operation not authorized)\n            while (_governanceCall.popFront() != msgDataHash) {}\n        }\n        _;\n    }\n\n    /**\n     * @dev Sets the value for {name} and {version}\n     */\n    constructor(string memory name_) EIP712(name_, version()) {\n        _name = name_;\n    }\n\n    /**\n     * @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract)\n     */\n    receive() external payable virtual {\n        require(_executor() == address(this));\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        // In addition to the current interfaceId, also support previous version of the interfaceId that did not\n        // include the castVoteWithReasonAndParams() function as standard\n        return\n            interfaceId ==\n            (type(IGovernor).interfaceId ^\n                this.castVoteWithReasonAndParams.selector ^\n                this.castVoteWithReasonAndParamsBySig.selector ^\n                this.getVotesWithParams.selector) ||\n            interfaceId == type(IGovernor).interfaceId ||\n            interfaceId == type(IERC1155Receiver).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IGovernor-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IGovernor-version}.\n     */\n    function version() public view virtual override returns (string memory) {\n        return \"1\";\n    }\n\n    /**\n     * @dev See {IGovernor-hashProposal}.\n     *\n     * The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array\n     * and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id\n     * can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in\n     * advance, before the proposal is submitted.\n     *\n     * Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the\n     * same proposal (with same operation and same description) will have the same id if submitted on multiple governors\n     * across multiple networks. This also means that in order to execute the same operation twice (on the same\n     * governor) the proposer will have to change the description in order to avoid proposal id conflicts.\n     */\n    function hashProposal(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public pure virtual override returns (uint256) {\n        return uint256(keccak256(abi.encode(targets, values, calldatas, descriptionHash)));\n    }\n\n    /**\n     * @dev See {IGovernor-state}.\n     */\n    function state(uint256 proposalId) public view virtual override returns (ProposalState) {\n        ProposalCore storage proposal = _proposals[proposalId];\n\n        if (proposal.executed) {\n            return ProposalState.Executed;\n        }\n\n        if (proposal.canceled) {\n            return ProposalState.Canceled;\n        }\n\n        uint256 snapshot = proposalSnapshot(proposalId);\n\n        if (snapshot == 0) {\n            revert(\"Governor: unknown proposal id\");\n        }\n\n        if (snapshot >= block.number) {\n            return ProposalState.Pending;\n        }\n\n        uint256 deadline = proposalDeadline(proposalId);\n\n        if (deadline >= block.number) {\n            return ProposalState.Active;\n        }\n\n        if (_quorumReached(proposalId) && _voteSucceeded(proposalId)) {\n            return ProposalState.Succeeded;\n        } else {\n            return ProposalState.Defeated;\n        }\n    }\n\n    /**\n     * @dev See {IGovernor-proposalSnapshot}.\n     */\n    function proposalSnapshot(uint256 proposalId) public view virtual override returns (uint256) {\n        return _proposals[proposalId].voteStart.getDeadline();\n    }\n\n    /**\n     * @dev See {IGovernor-proposalDeadline}.\n     */\n    function proposalDeadline(uint256 proposalId) public view virtual override returns (uint256) {\n        return _proposals[proposalId].voteEnd.getDeadline();\n    }\n\n    /**\n     * @dev Part of the Governor Bravo's interface: _\"The number of votes required in order for a voter to become a proposer\"_.\n     */\n    function proposalThreshold() public view virtual returns (uint256) {\n        return 0;\n    }\n\n    /**\n     * @dev Amount of votes already cast passes the threshold limit.\n     */\n    function _quorumReached(uint256 proposalId) internal view virtual returns (bool);\n\n    /**\n     * @dev Is the proposal successful or not.\n     */\n    function _voteSucceeded(uint256 proposalId) internal view virtual returns (bool);\n\n    /**\n     * @dev Get the voting weight of `account` at a specific `blockNumber`, for a vote as described by `params`.\n     */\n    function _getVotes(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) internal view virtual returns (uint256);\n\n    /**\n     * @dev Register a vote for `proposalId` by `account` with a given `support`, voting `weight` and voting `params`.\n     *\n     * Note: Support is generic and can represent various things depending on the voting system used.\n     */\n    function _countVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        uint256 weight,\n        bytes memory params\n    ) internal virtual;\n\n    /**\n     * @dev Default additional encoded parameters used by castVote methods that don't include them\n     *\n     * Note: Should be overridden by specific implementations to use an appropriate value, the\n     * meaning of the additional params, in the context of that implementation\n     */\n    function _defaultParams() internal view virtual returns (bytes memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IGovernor-propose}.\n     */\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public virtual override returns (uint256) {\n        require(\n            getVotes(_msgSender(), block.number - 1) >= proposalThreshold(),\n            \"Governor: proposer votes below proposal threshold\"\n        );\n\n        uint256 proposalId = hashProposal(targets, values, calldatas, keccak256(bytes(description)));\n\n        require(targets.length == values.length, \"Governor: invalid proposal length\");\n        require(targets.length == calldatas.length, \"Governor: invalid proposal length\");\n        require(targets.length > 0, \"Governor: empty proposal\");\n\n        ProposalCore storage proposal = _proposals[proposalId];\n        require(proposal.voteStart.isUnset(), \"Governor: proposal already exists\");\n\n        uint64 snapshot = block.number.toUint64() + votingDelay().toUint64();\n        uint64 deadline = snapshot + votingPeriod().toUint64();\n\n        proposal.voteStart.setDeadline(snapshot);\n        proposal.voteEnd.setDeadline(deadline);\n\n        emit ProposalCreated(\n            proposalId,\n            _msgSender(),\n            targets,\n            values,\n            new string[](targets.length),\n            calldatas,\n            snapshot,\n            deadline,\n            description\n        );\n\n        return proposalId;\n    }\n\n    /**\n     * @dev See {IGovernor-execute}.\n     */\n    function execute(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public payable virtual override returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n\n        ProposalState status = state(proposalId);\n        require(\n            status == ProposalState.Succeeded || status == ProposalState.Queued,\n            \"Governor: proposal not successful\"\n        );\n        _proposals[proposalId].executed = true;\n\n        emit ProposalExecuted(proposalId);\n\n        _beforeExecute(proposalId, targets, values, calldatas, descriptionHash);\n        _execute(proposalId, targets, values, calldatas, descriptionHash);\n        _afterExecute(proposalId, targets, values, calldatas, descriptionHash);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev Internal execution mechanism. Can be overridden to implement different execution mechanism\n     */\n    function _execute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        string memory errorMessage = \"Governor: call reverted without message\";\n        for (uint256 i = 0; i < targets.length; ++i) {\n            (bool success, bytes memory returndata) = targets[i].call{value: values[i]}(calldatas[i]);\n            Address.verifyCallResult(success, returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Hook before execution is triggered.\n     */\n    function _beforeExecute(\n        uint256, /* proposalId */\n        address[] memory targets,\n        uint256[] memory, /* values */\n        bytes[] memory calldatas,\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        if (_executor() != address(this)) {\n            for (uint256 i = 0; i < targets.length; ++i) {\n                if (targets[i] == address(this)) {\n                    _governanceCall.pushBack(keccak256(calldatas[i]));\n                }\n            }\n        }\n    }\n\n    /**\n     * @dev Hook after execution is triggered.\n     */\n    function _afterExecute(\n        uint256, /* proposalId */\n        address[] memory, /* targets */\n        uint256[] memory, /* values */\n        bytes[] memory, /* calldatas */\n        bytes32 /*descriptionHash*/\n    ) internal virtual {\n        if (_executor() != address(this)) {\n            if (!_governanceCall.empty()) {\n                _governanceCall.clear();\n            }\n        }\n    }\n\n    /**\n     * @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as\n     * canceled to allow distinguishing it from executed proposals.\n     *\n     * Emits a {IGovernor-ProposalCanceled} event.\n     */\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal virtual returns (uint256) {\n        uint256 proposalId = hashProposal(targets, values, calldatas, descriptionHash);\n        ProposalState status = state(proposalId);\n\n        require(\n            status != ProposalState.Canceled && status != ProposalState.Expired && status != ProposalState.Executed,\n            \"Governor: proposal not active\"\n        );\n        _proposals[proposalId].canceled = true;\n\n        emit ProposalCanceled(proposalId);\n\n        return proposalId;\n    }\n\n    /**\n     * @dev See {IGovernor-getVotes}.\n     */\n    function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) {\n        return _getVotes(account, blockNumber, _defaultParams());\n    }\n\n    /**\n     * @dev See {IGovernor-getVotesWithParams}.\n     */\n    function getVotesWithParams(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) public view virtual override returns (uint256) {\n        return _getVotes(account, blockNumber, params);\n    }\n\n    /**\n     * @dev See {IGovernor-castVote}.\n     */\n    function castVote(uint256 proposalId, uint8 support) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, \"\");\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReason}.\n     */\n    function castVoteWithReason(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason\n    ) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, reason);\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReasonAndParams}.\n     */\n    function castVoteWithReasonAndParams(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params\n    ) public virtual override returns (uint256) {\n        address voter = _msgSender();\n        return _castVote(proposalId, voter, support, reason, params);\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteBySig}.\n     */\n    function castVoteBySig(\n        uint256 proposalId,\n        uint8 support,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override returns (uint256) {\n        address voter = ECDSA.recover(\n            _hashTypedDataV4(keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support))),\n            v,\n            r,\n            s\n        );\n        return _castVote(proposalId, voter, support, \"\");\n    }\n\n    /**\n     * @dev See {IGovernor-castVoteWithReasonAndParamsBySig}.\n     */\n    function castVoteWithReasonAndParamsBySig(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual override returns (uint256) {\n        address voter = ECDSA.recover(\n            _hashTypedDataV4(\n                keccak256(\n                    abi.encode(\n                        EXTENDED_BALLOT_TYPEHASH,\n                        proposalId,\n                        support,\n                        keccak256(bytes(reason)),\n                        keccak256(params)\n                    )\n                )\n            ),\n            v,\n            r,\n            s\n        );\n\n        return _castVote(proposalId, voter, support, reason, params);\n    }\n\n    /**\n     * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n     * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. Uses the _defaultParams().\n     *\n     * Emits a {IGovernor-VoteCast} event.\n     */\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason\n    ) internal virtual returns (uint256) {\n        return _castVote(proposalId, account, support, reason, _defaultParams());\n    }\n\n    /**\n     * @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n     * voting weight using {IGovernor-getVotes} and call the {_countVote} internal function.\n     *\n     * Emits a {IGovernor-VoteCast} event.\n     */\n    function _castVote(\n        uint256 proposalId,\n        address account,\n        uint8 support,\n        string memory reason,\n        bytes memory params\n    ) internal virtual returns (uint256) {\n        ProposalCore storage proposal = _proposals[proposalId];\n        require(state(proposalId) == ProposalState.Active, \"Governor: vote not currently active\");\n\n        uint256 weight = _getVotes(account, proposal.voteStart.getDeadline(), params);\n        _countVote(proposalId, account, support, weight, params);\n\n        if (params.length == 0) {\n            emit VoteCast(account, proposalId, support, weight, reason);\n        } else {\n            emit VoteCastWithParams(account, proposalId, support, weight, reason, params);\n        }\n\n        return weight;\n    }\n\n    /**\n     * @dev Relays a transaction or function call to an arbitrary target. In cases where the governance executor\n     * is some contract other than the governor itself, like when using a timelock, this function can be invoked\n     * in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake.\n     * Note that if the executor is simply the governor itself, use of `relay` is redundant.\n     */\n    function relay(\n        address target,\n        uint256 value,\n        bytes calldata data\n    ) external payable virtual onlyGovernance {\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        Address.verifyCallResult(success, returndata, \"Governor: relay reverted without message\");\n    }\n\n    /**\n     * @dev Address through which the governor executes action. Will be overloaded by module that execute actions\n     * through another contract such as a timelock.\n     */\n    function _executor() internal view virtual returns (address) {\n        return address(this);\n    }\n\n    /**\n     * @dev See {IERC721Receiver-onERC721Received}.\n     */\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155Received}.\n     */\n    function onERC1155Received(\n        address,\n        address,\n        uint256,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155BatchReceived}.\n     */\n    function onERC1155BatchReceived(\n        address,\n        address,\n        uint256[] memory,\n        uint256[] memory,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n"},"@openzeppelin/contracts/governance/IGovernor.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (governance/IGovernor.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Interface of the {Governor} core.\n *\n * _Available since v4.3._\n */\nabstract contract IGovernor is IERC165 {\n    enum ProposalState {\n        Pending,\n        Active,\n        Canceled,\n        Defeated,\n        Succeeded,\n        Queued,\n        Expired,\n        Executed\n    }\n\n    /**\n     * @dev Emitted when a proposal is created.\n     */\n    event ProposalCreated(\n        uint256 proposalId,\n        address proposer,\n        address[] targets,\n        uint256[] values,\n        string[] signatures,\n        bytes[] calldatas,\n        uint256 startBlock,\n        uint256 endBlock,\n        string description\n    );\n\n    /**\n     * @dev Emitted when a proposal is canceled.\n     */\n    event ProposalCanceled(uint256 proposalId);\n\n    /**\n     * @dev Emitted when a proposal is executed.\n     */\n    event ProposalExecuted(uint256 proposalId);\n\n    /**\n     * @dev Emitted when a vote is cast without params.\n     *\n     * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n     */\n    event VoteCast(address indexed voter, uint256 proposalId, uint8 support, uint256 weight, string reason);\n\n    /**\n     * @dev Emitted when a vote is cast with params.\n     *\n     * Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n     * `params` are additional encoded parameters. Their intepepretation also depends on the voting module used.\n     */\n    event VoteCastWithParams(\n        address indexed voter,\n        uint256 proposalId,\n        uint8 support,\n        uint256 weight,\n        string reason,\n        bytes params\n    );\n\n    /**\n     * @notice module:core\n     * @dev Name of the governor instance (used in building the ERC712 domain separator).\n     */\n    function name() public view virtual returns (string memory);\n\n    /**\n     * @notice module:core\n     * @dev Version of the governor instance (used in building the ERC712 domain separator). Default: \"1\"\n     */\n    function version() public view virtual returns (string memory);\n\n    /**\n     * @notice module:voting\n     * @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to\n     * be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of\n     * key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`.\n     *\n     * There are 2 standard keys: `support` and `quorum`.\n     *\n     * - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`.\n     * - `quorum=bravo` means that only For votes are counted towards quorum.\n     * - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum.\n     *\n     * If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique\n     * name that describes the behavior. For example:\n     *\n     * - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain.\n     * - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote.\n     *\n     * NOTE: The string can be decoded by the standard\n     * https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`]\n     * JavaScript class.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function COUNTING_MODE() public pure virtual returns (string memory);\n\n    /**\n     * @notice module:core\n     * @dev Hashing function used to (re)build the proposal id from the proposal details..\n     */\n    function hashProposal(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public pure virtual returns (uint256);\n\n    /**\n     * @notice module:core\n     * @dev Current state of a proposal, following Compound's convention\n     */\n    function state(uint256 proposalId) public view virtual returns (ProposalState);\n\n    /**\n     * @notice module:core\n     * @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's\n     * ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the\n     * beginning of the following block.\n     */\n    function proposalSnapshot(uint256 proposalId) public view virtual returns (uint256);\n\n    /**\n     * @notice module:core\n     * @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote\n     * during this block.\n     */\n    function proposalDeadline(uint256 proposalId) public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to\n     * leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\n     */\n    function votingDelay() public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Delay, in number of blocks, between the vote start and vote ends.\n     *\n     * NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting\n     * duration compared to the voting delay.\n     */\n    function votingPeriod() public view virtual returns (uint256);\n\n    /**\n     * @notice module:user-config\n     * @dev Minimum number of cast voted required for a proposal to be successful.\n     *\n     * Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the\n     * quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\n     */\n    function quorum(uint256 blockNumber) public view virtual returns (uint256);\n\n    /**\n     * @notice module:reputation\n     * @dev Voting power of an `account` at a specific `blockNumber`.\n     *\n     * Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or\n     * multiple), {ERC20Votes} tokens.\n     */\n    function getVotes(address account, uint256 blockNumber) public view virtual returns (uint256);\n\n    /**\n     * @notice module:reputation\n     * @dev Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\n     */\n    function getVotesWithParams(\n        address account,\n        uint256 blockNumber,\n        bytes memory params\n    ) public view virtual returns (uint256);\n\n    /**\n     * @notice module:voting\n     * @dev Returns whether `account` has cast a vote on `proposalId`.\n     */\n    function hasVoted(uint256 proposalId, address account) public view virtual returns (bool);\n\n    /**\n     * @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends\n     * {IGovernor-votingPeriod} blocks after the voting starts.\n     *\n     * Emits a {ProposalCreated} event.\n     */\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public virtual returns (uint256 proposalId);\n\n    /**\n     * @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the\n     * deadline to be reached.\n     *\n     * Emits a {ProposalExecuted} event.\n     *\n     * Note: some module can modify the requirements for execution, for example by adding an additional timelock.\n     */\n    function execute(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) public payable virtual returns (uint256 proposalId);\n\n    /**\n     * @dev Cast a vote\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVote(uint256 proposalId, uint8 support) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVoteWithReason(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason and additional encoded parameters\n     *\n     * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\n     */\n    function castVoteWithReasonAndParams(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote using the user's cryptographic signature.\n     *\n     * Emits a {VoteCast} event.\n     */\n    function castVoteBySig(\n        uint256 proposalId,\n        uint8 support,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual returns (uint256 balance);\n\n    /**\n     * @dev Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature.\n     *\n     * Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\n     */\n    function castVoteWithReasonAndParamsBySig(\n        uint256 proposalId,\n        uint8 support,\n        string calldata reason,\n        bytes memory params,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) public virtual returns (uint256 balance);\n}\n"},"@openzeppelin/contracts/governance/TimelockController.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (governance/TimelockController.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../access/AccessControl.sol\";\nimport \"../token/ERC721/IERC721Receiver.sol\";\nimport \"../token/ERC1155/IERC1155Receiver.sol\";\nimport \"../utils/Address.sol\";\n\n/**\n * @dev Contract module which acts as a timelocked controller. When set as the\n * owner of an `Ownable` smart contract, it enforces a timelock on all\n * `onlyOwner` maintenance operations. This gives time for users of the\n * controlled contract to exit before a potentially dangerous maintenance\n * operation is applied.\n *\n * By default, this contract is self administered, meaning administration tasks\n * have to go through the timelock process. The proposer (resp executor) role\n * is in charge of proposing (resp executing) operations. A common use case is\n * to position this {TimelockController} as the owner of a smart contract, with\n * a multisig or a DAO as the sole proposer.\n *\n * _Available since v3.3._\n */\ncontract TimelockController is AccessControl, IERC721Receiver, IERC1155Receiver {\n    bytes32 public constant TIMELOCK_ADMIN_ROLE = keccak256(\"TIMELOCK_ADMIN_ROLE\");\n    bytes32 public constant PROPOSER_ROLE = keccak256(\"PROPOSER_ROLE\");\n    bytes32 public constant EXECUTOR_ROLE = keccak256(\"EXECUTOR_ROLE\");\n    bytes32 public constant CANCELLER_ROLE = keccak256(\"CANCELLER_ROLE\");\n    uint256 internal constant _DONE_TIMESTAMP = uint256(1);\n\n    mapping(bytes32 => uint256) private _timestamps;\n    uint256 private _minDelay;\n\n    /**\n     * @dev Emitted when a call is scheduled as part of operation `id`.\n     */\n    event CallScheduled(\n        bytes32 indexed id,\n        uint256 indexed index,\n        address target,\n        uint256 value,\n        bytes data,\n        bytes32 predecessor,\n        uint256 delay\n    );\n\n    /**\n     * @dev Emitted when a call is performed as part of operation `id`.\n     */\n    event CallExecuted(bytes32 indexed id, uint256 indexed index, address target, uint256 value, bytes data);\n\n    /**\n     * @dev Emitted when operation `id` is cancelled.\n     */\n    event Cancelled(bytes32 indexed id);\n\n    /**\n     * @dev Emitted when the minimum delay for future operations is modified.\n     */\n    event MinDelayChange(uint256 oldDuration, uint256 newDuration);\n\n    /**\n     * @dev Initializes the contract with the following parameters:\n     *\n     * - `minDelay`: initial minimum delay for operations\n     * - `proposers`: accounts to be granted proposer and canceller roles\n     * - `executors`: accounts to be granted executor role\n     * - `admin`: optional account to be granted admin role; disable with zero address\n     *\n     * IMPORTANT: The optional admin can aid with initial configuration of roles after deployment\n     * without being subject to delay, but this role should be subsequently renounced in favor of\n     * administration through timelocked proposals. Previous versions of this contract would assign\n     * this admin to the deployer automatically and should be renounced as well.\n     */\n    constructor(\n        uint256 minDelay,\n        address[] memory proposers,\n        address[] memory executors,\n        address admin\n    ) {\n        _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);\n        _setRoleAdmin(CANCELLER_ROLE, TIMELOCK_ADMIN_ROLE);\n\n        // self administration\n        _setupRole(TIMELOCK_ADMIN_ROLE, address(this));\n\n        // optional admin\n        if (admin != address(0)) {\n            _setupRole(TIMELOCK_ADMIN_ROLE, admin);\n        }\n\n        // register proposers and cancellers\n        for (uint256 i = 0; i < proposers.length; ++i) {\n            _setupRole(PROPOSER_ROLE, proposers[i]);\n            _setupRole(CANCELLER_ROLE, proposers[i]);\n        }\n\n        // register executors\n        for (uint256 i = 0; i < executors.length; ++i) {\n            _setupRole(EXECUTOR_ROLE, executors[i]);\n        }\n\n        _minDelay = minDelay;\n        emit MinDelayChange(0, minDelay);\n    }\n\n    /**\n     * @dev Modifier to make a function callable only by a certain role. In\n     * addition to checking the sender's role, `address(0)` 's role is also\n     * considered. Granting a role to `address(0)` is equivalent to enabling\n     * this role for everyone.\n     */\n    modifier onlyRoleOrOpenRole(bytes32 role) {\n        if (!hasRole(role, address(0))) {\n            _checkRole(role, _msgSender());\n        }\n        _;\n    }\n\n    /**\n     * @dev Contract might receive/hold ETH as part of the maintenance process.\n     */\n    receive() external payable {}\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, AccessControl) returns (bool) {\n        return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns whether an id correspond to a registered operation. This\n     * includes both Pending, Ready and Done operations.\n     */\n    function isOperation(bytes32 id) public view virtual returns (bool registered) {\n        return getTimestamp(id) > 0;\n    }\n\n    /**\n     * @dev Returns whether an operation is pending or not.\n     */\n    function isOperationPending(bytes32 id) public view virtual returns (bool pending) {\n        return getTimestamp(id) > _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns whether an operation is ready or not.\n     */\n    function isOperationReady(bytes32 id) public view virtual returns (bool ready) {\n        uint256 timestamp = getTimestamp(id);\n        return timestamp > _DONE_TIMESTAMP && timestamp <= block.timestamp;\n    }\n\n    /**\n     * @dev Returns whether an operation is done or not.\n     */\n    function isOperationDone(bytes32 id) public view virtual returns (bool done) {\n        return getTimestamp(id) == _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Returns the timestamp at with an operation becomes ready (0 for\n     * unset operations, 1 for done operations).\n     */\n    function getTimestamp(bytes32 id) public view virtual returns (uint256 timestamp) {\n        return _timestamps[id];\n    }\n\n    /**\n     * @dev Returns the minimum delay for an operation to become valid.\n     *\n     * This value can be changed by executing an operation that calls `updateDelay`.\n     */\n    function getMinDelay() public view virtual returns (uint256 duration) {\n        return _minDelay;\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a single\n     * transaction.\n     */\n    function hashOperation(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return keccak256(abi.encode(target, value, data, predecessor, salt));\n    }\n\n    /**\n     * @dev Returns the identifier of an operation containing a batch of\n     * transactions.\n     */\n    function hashOperationBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public pure virtual returns (bytes32 hash) {\n        return keccak256(abi.encode(targets, values, payloads, predecessor, salt));\n    }\n\n    /**\n     * @dev Schedule an operation containing a single transaction.\n     *\n     * Emits a {CallScheduled} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function schedule(\n        address target,\n        uint256 value,\n        bytes calldata data,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        bytes32 id = hashOperation(target, value, data, predecessor, salt);\n        _schedule(id, delay);\n        emit CallScheduled(id, 0, target, value, data, predecessor, delay);\n    }\n\n    /**\n     * @dev Schedule an operation containing a batch of transactions.\n     *\n     * Emits one {CallScheduled} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'proposer' role.\n     */\n    function scheduleBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt,\n        uint256 delay\n    ) public virtual onlyRole(PROPOSER_ROLE) {\n        require(targets.length == values.length, \"TimelockController: length mismatch\");\n        require(targets.length == payloads.length, \"TimelockController: length mismatch\");\n\n        bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt);\n        _schedule(id, delay);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            emit CallScheduled(id, i, targets[i], values[i], payloads[i], predecessor, delay);\n        }\n    }\n\n    /**\n     * @dev Schedule an operation that is to becomes valid after a given delay.\n     */\n    function _schedule(bytes32 id, uint256 delay) private {\n        require(!isOperation(id), \"TimelockController: operation already scheduled\");\n        require(delay >= getMinDelay(), \"TimelockController: insufficient delay\");\n        _timestamps[id] = block.timestamp + delay;\n    }\n\n    /**\n     * @dev Cancel an operation.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'canceller' role.\n     */\n    function cancel(bytes32 id) public virtual onlyRole(CANCELLER_ROLE) {\n        require(isOperationPending(id), \"TimelockController: operation cannot be cancelled\");\n        delete _timestamps[id];\n\n        emit Cancelled(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a single transaction.\n     *\n     * Emits a {CallExecuted} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    // This function can reenter, but it doesn't pose a risk because _afterCall checks that the proposal is pending,\n    // thus any modifications to the operation during reentrancy should be caught.\n    // slither-disable-next-line reentrancy-eth\n    function execute(\n        address target,\n        uint256 value,\n        bytes calldata payload,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        bytes32 id = hashOperation(target, value, payload, predecessor, salt);\n\n        _beforeCall(id, predecessor);\n        _execute(target, value, payload);\n        emit CallExecuted(id, 0, target, value, payload);\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an (ready) operation containing a batch of transactions.\n     *\n     * Emits one {CallExecuted} event per transaction in the batch.\n     *\n     * Requirements:\n     *\n     * - the caller must have the 'executor' role.\n     */\n    function executeBatch(\n        address[] calldata targets,\n        uint256[] calldata values,\n        bytes[] calldata payloads,\n        bytes32 predecessor,\n        bytes32 salt\n    ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {\n        require(targets.length == values.length, \"TimelockController: length mismatch\");\n        require(targets.length == payloads.length, \"TimelockController: length mismatch\");\n\n        bytes32 id = hashOperationBatch(targets, values, payloads, predecessor, salt);\n\n        _beforeCall(id, predecessor);\n        for (uint256 i = 0; i < targets.length; ++i) {\n            address target = targets[i];\n            uint256 value = values[i];\n            bytes calldata payload = payloads[i];\n            _execute(target, value, payload);\n            emit CallExecuted(id, i, target, value, payload);\n        }\n        _afterCall(id);\n    }\n\n    /**\n     * @dev Execute an operation's call.\n     */\n    function _execute(\n        address target,\n        uint256 value,\n        bytes calldata data\n    ) internal virtual {\n        (bool success, ) = target.call{value: value}(data);\n        require(success, \"TimelockController: underlying transaction reverted\");\n    }\n\n    /**\n     * @dev Checks before execution of an operation's calls.\n     */\n    function _beforeCall(bytes32 id, bytes32 predecessor) private view {\n        require(isOperationReady(id), \"TimelockController: operation is not ready\");\n        require(predecessor == bytes32(0) || isOperationDone(predecessor), \"TimelockController: missing dependency\");\n    }\n\n    /**\n     * @dev Checks after execution of an operation's calls.\n     */\n    function _afterCall(bytes32 id) private {\n        require(isOperationReady(id), \"TimelockController: operation is not ready\");\n        _timestamps[id] = _DONE_TIMESTAMP;\n    }\n\n    /**\n     * @dev Changes the minimum timelock duration for future operations.\n     *\n     * Emits a {MinDelayChange} event.\n     *\n     * Requirements:\n     *\n     * - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n     * an operation where the timelock is the target and the data is the ABI-encoded call to this function.\n     */\n    function updateDelay(uint256 newDelay) external virtual {\n        require(msg.sender == address(this), \"TimelockController: caller must be timelock\");\n        emit MinDelayChange(_minDelay, newDelay);\n        _minDelay = newDelay;\n    }\n\n    /**\n     * @dev See {IERC721Receiver-onERC721Received}.\n     */\n    function onERC721Received(\n        address,\n        address,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC721Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155Received}.\n     */\n    function onERC1155Received(\n        address,\n        address,\n        uint256,\n        uint256,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155Received.selector;\n    }\n\n    /**\n     * @dev See {IERC1155Receiver-onERC1155BatchReceived}.\n     */\n    function onERC1155BatchReceived(\n        address,\n        address,\n        uint256[] memory,\n        uint256[] memory,\n        bytes memory\n    ) public virtual override returns (bytes4) {\n        return this.onERC1155BatchReceived.selector;\n    }\n}\n"},"@openzeppelin/contracts/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/token/ERC1155/IERC1155Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev _Available since v3.1._\n */\ninterface IERC1155Receiver is IERC165 {\n    /**\n     * @dev Handles the receipt of a single ERC1155 token type. This function is\n     * called at the end of a `safeTransferFrom` after the balance has been updated.\n     *\n     * NOTE: To accept the transfer, this must return\n     * `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n     * (i.e. 0xf23a6e61, or its own function selector).\n     *\n     * @param operator The address which initiated the transfer (i.e. msg.sender)\n     * @param from The address which previously owned the token\n     * @param id The ID of the token being transferred\n     * @param value The amount of tokens being transferred\n     * @param data Additional data with no specified format\n     * @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed\n     */\n    function onERC1155Received(\n        address operator,\n        address from,\n        uint256 id,\n        uint256 value,\n        bytes calldata data\n    ) external returns (bytes4);\n\n    /**\n     * @dev Handles the receipt of a multiple ERC1155 token types. This function\n     * is called at the end of a `safeBatchTransferFrom` after the balances have\n     * been updated.\n     *\n     * NOTE: To accept the transfer(s), this must return\n     * `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n     * (i.e. 0xbc197c81, or its own function selector).\n     *\n     * @param operator The address which initiated the batch transfer (i.e. msg.sender)\n     * @param from The address which previously owned the token\n     * @param ids An array containing ids of each token being transferred (order and length must match values array)\n     * @param values An array containing amounts of each token being transferred (order and length must match ids array)\n     * @param data Additional data with no specified format\n     * @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed\n     */\n    function onERC1155BatchReceived(\n        address operator,\n        address from,\n        uint256[] calldata ids,\n        uint256[] calldata values,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/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/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/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n    using Address for address;\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _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        if (batchSize > 1) {\n            if (from != address(0)) {\n                _balances[from] -= batchSize;\n            }\n            if (to != address(0)) {\n                _balances[to] += batchSize;\n            }\n        }\n    }\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"},"@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/ERC721URIStorage.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/extensions/ERC721URIStorage.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../ERC721.sol\";\n\n/**\n * @dev ERC721 token with storage based token URI management.\n */\nabstract contract ERC721URIStorage is ERC721 {\n    using Strings for uint256;\n\n    // Optional mapping for token URIs\n    mapping(uint256 => string) private _tokenURIs;\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 _tokenURI = _tokenURIs[tokenId];\n        string memory base = _baseURI();\n\n        // If there is no base URI, return the token URI.\n        if (bytes(base).length == 0) {\n            return _tokenURI;\n        }\n        // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n        if (bytes(_tokenURI).length > 0) {\n            return string(abi.encodePacked(base, _tokenURI));\n        }\n\n        return super.tokenURI(tokenId);\n    }\n\n    /**\n     * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n        require(_exists(tokenId), \"ERC721URIStorage: URI set of nonexistent token\");\n        _tokenURIs[tokenId] = _tokenURI;\n    }\n\n    /**\n     * @dev See {ERC721-_burn}. This override additionally checks to see if a\n     * token-specific URI was set for the token, and if so, it deletes the token URI from\n     * the storage mapping.\n     */\n    function _burn(uint256 tokenId) internal virtual override {\n        super._burn(tokenId);\n\n        if (bytes(_tokenURIs[tokenId]).length != 0) {\n            delete _tokenURIs[tokenId];\n        }\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/Checkpoints.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.1) (utils/Checkpoints.sol)\n// This file was procedurally generated from scripts/generate/templates/Checkpoints.js.\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SafeCast.sol\";\n\n/**\n * @dev This library defines the `History` struct, for checkpointing values as they change at different points in\n * time, and later looking up past values by block number. See {Votes} as an example.\n *\n * To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new\n * checkpoint for the current transaction block using the {push} function.\n *\n * _Available since v4.5._\n */\nlibrary Checkpoints {\n    struct History {\n        Checkpoint[] _checkpoints;\n    }\n\n    struct Checkpoint {\n        uint32 _blockNumber;\n        uint224 _value;\n    }\n\n    /**\n     * @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n     * before it is returned, or zero otherwise. Because the number returned corresponds to that at the end of the\n     * block, the requested block number must be in the past, excluding the current block.\n     */\n    function getAtBlock(History storage self, uint256 blockNumber) internal view returns (uint256) {\n        require(blockNumber < block.number, \"Checkpoints: block not yet mined\");\n        uint32 key = SafeCast.toUint32(blockNumber);\n\n        uint256 len = self._checkpoints.length;\n        uint256 pos = _upperBinaryLookup(self._checkpoints, key, 0, len);\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n     * before it is returned, or zero otherwise. Similar to {upperLookup} but optimized for the case when the searched\n     * checkpoint is probably \"recent\", defined as being among the last sqrt(N) checkpoints where N is the number of\n     * checkpoints.\n     */\n    function getAtProbablyRecentBlock(History storage self, uint256 blockNumber) internal view returns (uint256) {\n        require(blockNumber < block.number, \"Checkpoints: block not yet mined\");\n        uint32 key = SafeCast.toUint32(blockNumber);\n\n        uint256 len = self._checkpoints.length;\n\n        uint256 low = 0;\n        uint256 high = len;\n\n        if (len > 5) {\n            uint256 mid = len - Math.sqrt(len);\n            if (key < _unsafeAccess(self._checkpoints, mid)._blockNumber) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n\n        uint256 pos = _upperBinaryLookup(self._checkpoints, key, low, high);\n\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Pushes a value onto a History so that it is stored as the checkpoint for the current block.\n     *\n     * Returns previous value and new value.\n     */\n    function push(History storage self, uint256 value) internal returns (uint256, uint256) {\n        return _insert(self._checkpoints, SafeCast.toUint32(block.number), SafeCast.toUint224(value));\n    }\n\n    /**\n     * @dev Pushes a value onto a History, by updating the latest value using binary operation `op`. The new value will\n     * be set to `op(latest, delta)`.\n     *\n     * Returns previous value and new value.\n     */\n    function push(\n        History storage self,\n        function(uint256, uint256) view returns (uint256) op,\n        uint256 delta\n    ) internal returns (uint256, uint256) {\n        return push(self, op(latest(self), delta));\n    }\n\n    /**\n     * @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints.\n     */\n    function latest(History storage self) internal view returns (uint224) {\n        uint256 pos = self._checkpoints.length;\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n     * in the most recent checkpoint.\n     */\n    function latestCheckpoint(History storage self)\n        internal\n        view\n        returns (\n            bool exists,\n            uint32 _blockNumber,\n            uint224 _value\n        )\n    {\n        uint256 pos = self._checkpoints.length;\n        if (pos == 0) {\n            return (false, 0, 0);\n        } else {\n            Checkpoint memory ckpt = _unsafeAccess(self._checkpoints, pos - 1);\n            return (true, ckpt._blockNumber, ckpt._value);\n        }\n    }\n\n    /**\n     * @dev Returns the number of checkpoint.\n     */\n    function length(History storage self) internal view returns (uint256) {\n        return self._checkpoints.length;\n    }\n\n    /**\n     * @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n     * or by updating the last one.\n     */\n    function _insert(\n        Checkpoint[] storage self,\n        uint32 key,\n        uint224 value\n    ) private returns (uint224, uint224) {\n        uint256 pos = self.length;\n\n        if (pos > 0) {\n            // Copying to memory is important here.\n            Checkpoint memory last = _unsafeAccess(self, pos - 1);\n\n            // Checkpoints keys must be increasing.\n            require(last._blockNumber <= key, \"Checkpoint: invalid key\");\n\n            // Update or push new checkpoint\n            if (last._blockNumber == key) {\n                _unsafeAccess(self, pos - 1)._value = value;\n            } else {\n                self.push(Checkpoint({_blockNumber: key, _value: value}));\n            }\n            return (last._value, value);\n        } else {\n            self.push(Checkpoint({_blockNumber: key, _value: value}));\n            return (0, value);\n        }\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _upperBinaryLookup(\n        Checkpoint[] storage self,\n        uint32 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._blockNumber > key) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n        return high;\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _lowerBinaryLookup(\n        Checkpoint[] storage self,\n        uint32 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._blockNumber < key) {\n                low = mid + 1;\n            } else {\n                high = mid;\n            }\n        }\n        return high;\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 self, uint256 pos) private pure returns (Checkpoint storage result) {\n        assembly {\n            mstore(0, self.slot)\n            result.slot := add(keccak256(0, 0x20), pos)\n        }\n    }\n\n    struct Trace224 {\n        Checkpoint224[] _checkpoints;\n    }\n\n    struct Checkpoint224 {\n        uint32 _key;\n        uint224 _value;\n    }\n\n    /**\n     * @dev Pushes a (`key`, `value`) pair into a Trace224 so that it is stored as the checkpoint.\n     *\n     * Returns previous value and new value.\n     */\n    function push(\n        Trace224 storage self,\n        uint32 key,\n        uint224 value\n    ) internal returns (uint224, uint224) {\n        return _insert(self._checkpoints, key, value);\n    }\n\n    /**\n     * @dev Returns the value in the oldest checkpoint with key greater or equal than the search key, or zero if there is none.\n     */\n    function lowerLookup(Trace224 storage self, uint32 key) internal view returns (uint224) {\n        uint256 len = self._checkpoints.length;\n        uint256 pos = _lowerBinaryLookup(self._checkpoints, key, 0, len);\n        return pos == len ? 0 : _unsafeAccess(self._checkpoints, pos)._value;\n    }\n\n    /**\n     * @dev Returns the value in the most recent checkpoint with key lower or equal than the search key.\n     */\n    function upperLookup(Trace224 storage self, uint32 key) internal view returns (uint224) {\n        uint256 len = self._checkpoints.length;\n        uint256 pos = _upperBinaryLookup(self._checkpoints, key, 0, len);\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints.\n     */\n    function latest(Trace224 storage self) internal view returns (uint224) {\n        uint256 pos = self._checkpoints.length;\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n     * in the most recent checkpoint.\n     */\n    function latestCheckpoint(Trace224 storage self)\n        internal\n        view\n        returns (\n            bool exists,\n            uint32 _key,\n            uint224 _value\n        )\n    {\n        uint256 pos = self._checkpoints.length;\n        if (pos == 0) {\n            return (false, 0, 0);\n        } else {\n            Checkpoint224 memory ckpt = _unsafeAccess(self._checkpoints, pos - 1);\n            return (true, ckpt._key, ckpt._value);\n        }\n    }\n\n    /**\n     * @dev Returns the number of checkpoint.\n     */\n    function length(Trace224 storage self) internal view returns (uint256) {\n        return self._checkpoints.length;\n    }\n\n    /**\n     * @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n     * or by updating the last one.\n     */\n    function _insert(\n        Checkpoint224[] storage self,\n        uint32 key,\n        uint224 value\n    ) private returns (uint224, uint224) {\n        uint256 pos = self.length;\n\n        if (pos > 0) {\n            // Copying to memory is important here.\n            Checkpoint224 memory last = _unsafeAccess(self, pos - 1);\n\n            // Checkpoints keys must be increasing.\n            require(last._key <= key, \"Checkpoint: invalid key\");\n\n            // Update or push new checkpoint\n            if (last._key == key) {\n                _unsafeAccess(self, pos - 1)._value = value;\n            } else {\n                self.push(Checkpoint224({_key: key, _value: value}));\n            }\n            return (last._value, value);\n        } else {\n            self.push(Checkpoint224({_key: key, _value: value}));\n            return (0, value);\n        }\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _upperBinaryLookup(\n        Checkpoint224[] storage self,\n        uint32 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._key > key) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n        return high;\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _lowerBinaryLookup(\n        Checkpoint224[] storage self,\n        uint32 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._key < key) {\n                low = mid + 1;\n            } else {\n                high = mid;\n            }\n        }\n        return high;\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(Checkpoint224[] storage self, uint256 pos)\n        private\n        pure\n        returns (Checkpoint224 storage result)\n    {\n        assembly {\n            mstore(0, self.slot)\n            result.slot := add(keccak256(0, 0x20), pos)\n        }\n    }\n\n    struct Trace160 {\n        Checkpoint160[] _checkpoints;\n    }\n\n    struct Checkpoint160 {\n        uint96 _key;\n        uint160 _value;\n    }\n\n    /**\n     * @dev Pushes a (`key`, `value`) pair into a Trace160 so that it is stored as the checkpoint.\n     *\n     * Returns previous value and new value.\n     */\n    function push(\n        Trace160 storage self,\n        uint96 key,\n        uint160 value\n    ) internal returns (uint160, uint160) {\n        return _insert(self._checkpoints, key, value);\n    }\n\n    /**\n     * @dev Returns the value in the oldest checkpoint with key greater or equal than the search key, or zero if there is none.\n     */\n    function lowerLookup(Trace160 storage self, uint96 key) internal view returns (uint160) {\n        uint256 len = self._checkpoints.length;\n        uint256 pos = _lowerBinaryLookup(self._checkpoints, key, 0, len);\n        return pos == len ? 0 : _unsafeAccess(self._checkpoints, pos)._value;\n    }\n\n    /**\n     * @dev Returns the value in the most recent checkpoint with key lower or equal than the search key.\n     */\n    function upperLookup(Trace160 storage self, uint96 key) internal view returns (uint160) {\n        uint256 len = self._checkpoints.length;\n        uint256 pos = _upperBinaryLookup(self._checkpoints, key, 0, len);\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints.\n     */\n    function latest(Trace160 storage self) internal view returns (uint160) {\n        uint256 pos = self._checkpoints.length;\n        return pos == 0 ? 0 : _unsafeAccess(self._checkpoints, pos - 1)._value;\n    }\n\n    /**\n     * @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n     * in the most recent checkpoint.\n     */\n    function latestCheckpoint(Trace160 storage self)\n        internal\n        view\n        returns (\n            bool exists,\n            uint96 _key,\n            uint160 _value\n        )\n    {\n        uint256 pos = self._checkpoints.length;\n        if (pos == 0) {\n            return (false, 0, 0);\n        } else {\n            Checkpoint160 memory ckpt = _unsafeAccess(self._checkpoints, pos - 1);\n            return (true, ckpt._key, ckpt._value);\n        }\n    }\n\n    /**\n     * @dev Returns the number of checkpoint.\n     */\n    function length(Trace160 storage self) internal view returns (uint256) {\n        return self._checkpoints.length;\n    }\n\n    /**\n     * @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n     * or by updating the last one.\n     */\n    function _insert(\n        Checkpoint160[] storage self,\n        uint96 key,\n        uint160 value\n    ) private returns (uint160, uint160) {\n        uint256 pos = self.length;\n\n        if (pos > 0) {\n            // Copying to memory is important here.\n            Checkpoint160 memory last = _unsafeAccess(self, pos - 1);\n\n            // Checkpoints keys must be increasing.\n            require(last._key <= key, \"Checkpoint: invalid key\");\n\n            // Update or push new checkpoint\n            if (last._key == key) {\n                _unsafeAccess(self, pos - 1)._value = value;\n            } else {\n                self.push(Checkpoint160({_key: key, _value: value}));\n            }\n            return (last._value, value);\n        } else {\n            self.push(Checkpoint160({_key: key, _value: value}));\n            return (0, value);\n        }\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _upperBinaryLookup(\n        Checkpoint160[] storage self,\n        uint96 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._key > key) {\n                high = mid;\n            } else {\n                low = mid + 1;\n            }\n        }\n        return high;\n    }\n\n    /**\n     * @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n     * `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n     *\n     * WARNING: `high` should not be greater than the array's length.\n     */\n    function _lowerBinaryLookup(\n        Checkpoint160[] storage self,\n        uint96 key,\n        uint256 low,\n        uint256 high\n    ) private view returns (uint256) {\n        while (low < high) {\n            uint256 mid = Math.average(low, high);\n            if (_unsafeAccess(self, mid)._key < key) {\n                low = mid + 1;\n            } else {\n                high = mid;\n            }\n        }\n        return high;\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(Checkpoint160[] storage self, uint256 pos)\n        private\n        pure\n        returns (Checkpoint160 storage result)\n    {\n        assembly {\n            mstore(0, self.slot)\n            result.slot := add(keccak256(0, 0x20), pos)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n}\n"},"@openzeppelin/contracts/utils/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/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/DoubleEndedQueue.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (utils/structs/DoubleEndedQueue.sol)\npragma solidity ^0.8.4;\n\nimport \"../math/SafeCast.sol\";\n\n/**\n * @dev A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of\n * the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and\n * FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that\n * the existing queue contents are left in storage.\n *\n * The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be\n * used in storage, and not in memory.\n * ```\n * DoubleEndedQueue.Bytes32Deque queue;\n * ```\n *\n * _Available since v4.6._\n */\nlibrary DoubleEndedQueue {\n    /**\n     * @dev An operation (e.g. {front}) couldn't be completed due to the queue being empty.\n     */\n    error Empty();\n\n    /**\n     * @dev An operation (e.g. {at}) couldn't be completed due to an index being out of bounds.\n     */\n    error OutOfBounds();\n\n    /**\n     * @dev Indices are signed integers because the queue can grow in any direction. They are 128 bits so begin and end\n     * are packed in a single storage slot for efficient access. Since the items are added one at a time we can safely\n     * assume that these 128-bit indices will not overflow, and use unchecked arithmetic.\n     *\n     * Struct members have an underscore prefix indicating that they are \"private\" and should not be read or written to\n     * directly. Use the functions provided below instead. Modifying the struct manually may violate assumptions and\n     * lead to unexpected behavior.\n     *\n     * Indices are in the range [begin, end) which means the first item is at data[begin] and the last item is at\n     * data[end - 1].\n     */\n    struct Bytes32Deque {\n        int128 _begin;\n        int128 _end;\n        mapping(int128 => bytes32) _data;\n    }\n\n    /**\n     * @dev Inserts an item at the end of the queue.\n     */\n    function pushBack(Bytes32Deque storage deque, bytes32 value) internal {\n        int128 backIndex = deque._end;\n        deque._data[backIndex] = value;\n        unchecked {\n            deque._end = backIndex + 1;\n        }\n    }\n\n    /**\n     * @dev Removes the item at the end of the queue and returns it.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function popBack(Bytes32Deque storage deque) internal returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 backIndex;\n        unchecked {\n            backIndex = deque._end - 1;\n        }\n        value = deque._data[backIndex];\n        delete deque._data[backIndex];\n        deque._end = backIndex;\n    }\n\n    /**\n     * @dev Inserts an item at the beginning of the queue.\n     */\n    function pushFront(Bytes32Deque storage deque, bytes32 value) internal {\n        int128 frontIndex;\n        unchecked {\n            frontIndex = deque._begin - 1;\n        }\n        deque._data[frontIndex] = value;\n        deque._begin = frontIndex;\n    }\n\n    /**\n     * @dev Removes the item at the beginning of the queue and returns it.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function popFront(Bytes32Deque storage deque) internal returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 frontIndex = deque._begin;\n        value = deque._data[frontIndex];\n        delete deque._data[frontIndex];\n        unchecked {\n            deque._begin = frontIndex + 1;\n        }\n    }\n\n    /**\n     * @dev Returns the item at the beginning of the queue.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function front(Bytes32Deque storage deque) internal view returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 frontIndex = deque._begin;\n        return deque._data[frontIndex];\n    }\n\n    /**\n     * @dev Returns the item at the end of the queue.\n     *\n     * Reverts with `Empty` if the queue is empty.\n     */\n    function back(Bytes32Deque storage deque) internal view returns (bytes32 value) {\n        if (empty(deque)) revert Empty();\n        int128 backIndex;\n        unchecked {\n            backIndex = deque._end - 1;\n        }\n        return deque._data[backIndex];\n    }\n\n    /**\n     * @dev Return the item at a position in the queue given by `index`, with the first item at 0 and last item at\n     * `length(deque) - 1`.\n     *\n     * Reverts with `OutOfBounds` if the index is out of bounds.\n     */\n    function at(Bytes32Deque storage deque, uint256 index) internal view returns (bytes32 value) {\n        // int256(deque._begin) is a safe upcast\n        int128 idx = SafeCast.toInt128(int256(deque._begin) + SafeCast.toInt256(index));\n        if (idx >= deque._end) revert OutOfBounds();\n        return deque._data[idx];\n    }\n\n    /**\n     * @dev Resets the queue back to being empty.\n     *\n     * NOTE: The current items are left behind in storage. This does not affect the functioning of the queue, but misses\n     * out on potential gas refunds.\n     */\n    function clear(Bytes32Deque storage deque) internal {\n        deque._begin = 0;\n        deque._end = 0;\n    }\n\n    /**\n     * @dev Returns the number of items in the queue.\n     */\n    function length(Bytes32Deque storage deque) internal view returns (uint256) {\n        // The interface preserves the invariant that begin <= end so we assume this will not overflow.\n        // We also assume there are at most int256.max items in the queue.\n        unchecked {\n            return uint256(int256(deque._end) - int256(deque._begin));\n        }\n    }\n\n    /**\n     * @dev Returns true if the queue is empty.\n     */\n    function empty(Bytes32Deque storage deque) internal view returns (bool) {\n        return deque._end <= deque._begin;\n    }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableMap.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/structs/EnumerableMap.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableMap.js.\n\npragma solidity ^0.8.0;\n\nimport \"./EnumerableSet.sol\";\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n *     // Declare a set state variable\n *     EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * The following map types are supported:\n *\n * - `uint256 -> address` (`UintToAddressMap`) since v3.0.0\n * - `address -> uint256` (`AddressToUintMap`) since v4.6.0\n * - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0\n * - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0\n * - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0\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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableMap.\n * ====\n */\nlibrary EnumerableMap {\n    using EnumerableSet for EnumerableSet.Bytes32Set;\n\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Map type with\n    // bytes32 keys and values.\n    // The Map implementation uses private functions, and user-facing\n    // implementations (such as Uint256ToAddressMap) are just wrappers around\n    // the underlying Map.\n    // This means that we can only create new EnumerableMaps for types that fit\n    // in bytes32.\n\n    struct Bytes32ToBytes32Map {\n        // Storage of keys\n        EnumerableSet.Bytes32Set _keys;\n        mapping(bytes32 => bytes32) _values;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        Bytes32ToBytes32Map storage map,\n        bytes32 key,\n        bytes32 value\n    ) internal returns (bool) {\n        map._values[key] = value;\n        return map._keys.add(key);\n    }\n\n    /**\n     * @dev Removes a key-value pair from a map. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(Bytes32ToBytes32Map storage map, bytes32 key) internal returns (bool) {\n        delete map._values[key];\n        return map._keys.remove(key);\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool) {\n        return map._keys.contains(key);\n    }\n\n    /**\n     * @dev Returns the number of key-value pairs in the map. O(1).\n     */\n    function length(Bytes32ToBytes32Map storage map) internal view returns (uint256) {\n        return map._keys.length();\n    }\n\n    /**\n     * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n     *\n     * Note that there are no guarantees on the ordering of entries inside the\n     * array, and it may change when more entries are added or removed.\n     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32ToBytes32Map storage map, uint256 index) internal view returns (bytes32, bytes32) {\n        bytes32 key = map._keys.at(index);\n        return (key, map._values[key]);\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bool, bytes32) {\n        bytes32 value = map._values[key];\n        if (value == bytes32(0)) {\n            return (contains(map, key), bytes32(0));\n        } else {\n            return (true, value);\n        }\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(Bytes32ToBytes32Map storage map, bytes32 key) internal view returns (bytes32) {\n        bytes32 value = map._values[key];\n        require(value != 0 || contains(map, key), \"EnumerableMap: nonexistent key\");\n        return value;\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        Bytes32ToBytes32Map storage map,\n        bytes32 key,\n        string memory errorMessage\n    ) internal view returns (bytes32) {\n        bytes32 value = map._values[key];\n        require(value != 0 || contains(map, key), errorMessage);\n        return value;\n    }\n\n    // UintToUintMap\n\n    struct UintToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        UintToUintMap storage map,\n        uint256 key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(key), bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(UintToUintMap storage map, uint256 key) internal returns (bool) {\n        return remove(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(UintToUintMap storage map, uint256 key) internal view returns (bool) {\n        return contains(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(UintToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintToUintMap storage map, uint256 index) internal view returns (uint256, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (uint256(key), uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(UintToUintMap storage map, uint256 key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(key));\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(UintToUintMap storage map, uint256 key) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(key)));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        UintToUintMap storage map,\n        uint256 key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(key), errorMessage));\n    }\n\n    // UintToAddressMap\n\n    struct UintToAddressMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        UintToAddressMap storage map,\n        uint256 key,\n        address value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n        return remove(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n        return contains(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(UintToAddressMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (uint256(key), address(uint160(uint256(value))));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(key));\n        return (success, address(uint160(uint256(value))));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n        return address(uint160(uint256(get(map._inner, bytes32(key)))));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        UintToAddressMap storage map,\n        uint256 key,\n        string memory errorMessage\n    ) internal view returns (address) {\n        return address(uint160(uint256(get(map._inner, bytes32(key), errorMessage))));\n    }\n\n    // AddressToUintMap\n\n    struct AddressToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        AddressToUintMap storage map,\n        address key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, bytes32(uint256(uint160(key))), bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(AddressToUintMap storage map, address key) internal returns (bool) {\n        return remove(map._inner, bytes32(uint256(uint160(key))));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(AddressToUintMap storage map, address key) internal view returns (bool) {\n        return contains(map._inner, bytes32(uint256(uint160(key))));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(AddressToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(AddressToUintMap storage map, uint256 index) internal view returns (address, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (address(uint160(uint256(key))), uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(AddressToUintMap storage map, address key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, bytes32(uint256(uint160(key))));\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(AddressToUintMap storage map, address key) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(uint256(uint160(key)))));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        AddressToUintMap storage map,\n        address key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, bytes32(uint256(uint160(key))), errorMessage));\n    }\n\n    // Bytes32ToUintMap\n\n    struct Bytes32ToUintMap {\n        Bytes32ToBytes32Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(\n        Bytes32ToUintMap storage map,\n        bytes32 key,\n        uint256 value\n    ) internal returns (bool) {\n        return set(map._inner, key, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(Bytes32ToUintMap storage map, bytes32 key) internal returns (bool) {\n        return remove(map._inner, key);\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool) {\n        return contains(map._inner, key);\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(Bytes32ToUintMap storage map) internal view returns (uint256) {\n        return length(map._inner);\n    }\n\n    /**\n     * @dev Returns the element 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     *\n     * Requirements:\n     *\n     * - `index` must be strictly less than {length}.\n     */\n    function at(Bytes32ToUintMap storage map, uint256 index) internal view returns (bytes32, uint256) {\n        (bytes32 key, bytes32 value) = at(map._inner, index);\n        return (key, uint256(value));\n    }\n\n    /**\n     * @dev Tries to returns the value associated with `key`. O(1).\n     * Does not revert if `key` is not in the map.\n     */\n    function tryGet(Bytes32ToUintMap storage map, bytes32 key) internal view returns (bool, uint256) {\n        (bool success, bytes32 value) = tryGet(map._inner, key);\n        return (success, uint256(value));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`. O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(Bytes32ToUintMap storage map, bytes32 key) internal view returns (uint256) {\n        return uint256(get(map._inner, key));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryGet}.\n     */\n    function get(\n        Bytes32ToUintMap storage map,\n        bytes32 key,\n        string memory errorMessage\n    ) internal view returns (uint256) {\n        return uint256(get(map._inner, key, errorMessage));\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"},"@openzeppelin/contracts/utils/Timers.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Timers.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Tooling for timepoints, timers and delays\n */\nlibrary Timers {\n    struct Timestamp {\n        uint64 _deadline;\n    }\n\n    function getDeadline(Timestamp memory timer) internal pure returns (uint64) {\n        return timer._deadline;\n    }\n\n    function setDeadline(Timestamp storage timer, uint64 timestamp) internal {\n        timer._deadline = timestamp;\n    }\n\n    function reset(Timestamp storage timer) internal {\n        timer._deadline = 0;\n    }\n\n    function isUnset(Timestamp memory timer) internal pure returns (bool) {\n        return timer._deadline == 0;\n    }\n\n    function isStarted(Timestamp memory timer) internal pure returns (bool) {\n        return timer._deadline > 0;\n    }\n\n    function isPending(Timestamp memory timer) internal view returns (bool) {\n        return timer._deadline > block.timestamp;\n    }\n\n    function isExpired(Timestamp memory timer) internal view returns (bool) {\n        return isStarted(timer) && timer._deadline <= block.timestamp;\n    }\n\n    struct BlockNumber {\n        uint64 _deadline;\n    }\n\n    function getDeadline(BlockNumber memory timer) internal pure returns (uint64) {\n        return timer._deadline;\n    }\n\n    function setDeadline(BlockNumber storage timer, uint64 timestamp) internal {\n        timer._deadline = timestamp;\n    }\n\n    function reset(BlockNumber storage timer) internal {\n        timer._deadline = 0;\n    }\n\n    function isUnset(BlockNumber memory timer) internal pure returns (bool) {\n        return timer._deadline == 0;\n    }\n\n    function isStarted(BlockNumber memory timer) internal pure returns (bool) {\n        return timer._deadline > 0;\n    }\n\n    function isPending(BlockNumber memory timer) internal view returns (bool) {\n        return timer._deadline > block.number;\n    }\n\n    function isExpired(BlockNumber memory timer) internal view returns (bool) {\n        return isStarted(timer) && timer._deadline <= block.number;\n    }\n}\n"},"contracts/common/access/HubControllable.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\nimport \"../libraries/Errors.sol\";\n\nabstract contract HubControllable {\n    address public immutable HUB;\n\n    modifier onlyHub() {\n        if (msg.sender != HUB) revert Errors.NotHub();\n        _;\n    }\n\n    constructor(address hub) {\n        if (hub == address(0)) revert Errors.InitParamsInvalid();\n        HUB = hub;\n    }\n}\n"},"contracts/common/access/HubControllableUpgradeable.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\n\nimport \"../libraries/Errors.sol\";\n\nabstract contract HubControllableUpgradeable is Initializable, OwnableUpgradeable {\n    address internal HUB;\n\n    modifier onlyHub() {\n        if (msg.sender != HUB) revert Errors.NotHub();\n        _;\n    }\n\n    function __HubControllable_init(address hub) public onlyInitializing {\n        __Ownable_init();\n        setHub(hub);\n    }\n\n    function setHub(address hub) public onlyOwner {\n        if (hub == address(0)) revert Errors.InitParamsInvalid();\n        HUB = hub;\n    }\n}\n"},"contracts/common/access/Whitelistable.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\nimport \"../interfaces/IWhitelistable.sol\";\nimport \"../libraries/Errors.sol\";\n\nabstract contract Whitelistable is IWhitelistable, Ownable {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    EnumerableSet.AddressSet private _whitelist;\n\n    modifier onlyWhitelisted() {\n        if (!_whitelist.contains(msg.sender)) revert Errors.NotWhitelisted();\n        _;\n    }\n\n    function getWhitelistCount() external view returns (uint256) {\n        return _whitelist.length();\n    }\n\n    function getWhitelistMember(uint256 index) external view returns (address) {\n        return _whitelist.at(index);\n    }\n\n    function isWhitelisted(address account) public view virtual returns (bool) {\n        return _whitelist.contains(account);\n    }\n\n    function addToWhitelist(address account) public virtual onlyOwner {\n        _whitelist.add(account);\n    }\n\n    function removeFromWhitelist(address account) external onlyOwner {\n        _whitelist.remove(account);\n    }\n}\n"},"contracts/common/interfaces/ICertificateNFT.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface ICertificateNFT is IERC721 {\n    function safeMint(address to, string memory uri) external returns (uint256);\n\n    function transferOwnership(address newOwner) external;\n}\n"},"contracts/common/interfaces/IEnergyWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\ninterface IEnergyWallet {\n    function totalEnergyOf(uint256 profileId) external view returns (uint256);\n\n    function freeEnergyOf(uint256 profileId) external view returns (uint256);\n\n    function allocatedEnergyOf(uint256 profileId) external view returns (uint256);\n\n    function receivedEnergyOf(uint256 profileId) external view returns (uint256);\n\n    function energizedBy(uint256 profileId, uint256 index) external view returns (uint256, uint256);\n\n    function energizersOf(uint256 profileId, uint256 index) external view returns (uint256, uint256);\n\n    function totalEnergizedBy(uint256 profileId) external view returns (uint256);\n\n    function totalEnergizersOf(uint256 profileId) external view returns (uint256);\n\n    function giveEnergy(uint256 from, uint256 to, uint256 amount) external;\n\n    function removeEnergy(uint256 from, uint256 to, uint256 amount) external;\n\n    function createEnergyFor(uint256 profileId, uint256 amount) external;\n\n    function destroyEnergyFor(uint256 profileId, uint256 amount) external;\n}\n"},"contracts/common/interfaces/IMy3SecHub.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport {DataTypes} from \"../libraries/DataTypes.sol\";\n\ninterface IMy3SecHub {\n    //=============================================================================\n    // PROFILE\n    //=============================================================================\n    function getDefaultProfile(address account) external view returns (DataTypes.ProfileView memory);\n\n    function getProfileAccount(uint256 profileId) external view returns (address);\n\n    function getProfile(uint256 profileId) external view returns (DataTypes.ProfileView memory);\n\n    function setDefaultProfile(uint256 profileId) external;\n\n    function createProfile(DataTypes.CreateProfile calldata args) external returns (uint256);\n\n    function updateProfile(uint256 profileId, DataTypes.UpdateProfile calldata args) external;\n\n    function giveEnergyTo(uint256 profileId, uint256 amount) external;\n\n    function removeEnergyFrom(uint256 profileId, uint256 amount) external;\n\n    //=============================================================================\n    // ORGANIZATION\n    //=============================================================================\n\n    function getOrganizationCount() external view returns (uint256);\n\n    function getOrganization(uint256 index) external view returns (address);\n\n    function hasWithdrawn(address organizationAddress, uint256 taskId, uint256 profileId) external view returns (bool);\n\n    function createOrganization(string calldata metadataURI) external returns (address);\n\n    function registerOrganization(address organization) external;\n\n    function joinOrganization(address organizationAddress) external;\n\n    function leaveOrganization(address organizationAddress) external;\n\n    function logTime(address organizationAddress, uint256 taskId, uint256 time) external;\n\n    function withdraw(address organizationAddress, uint256 taskId) external;\n\n    //=============================================================================\n    // CERTIFICATE\n    //=============================================================================\n\n    function issueCertificate(uint256 profileId, string memory uri) external;\n\n    function issueCertificate(address organizationAddress, uint256 profileId, string memory uri) external;\n\n    //=============================================================================\n    // EMITTERS\n    //=============================================================================\n\n    function emitPendingMemberApproved(address organization, uint256 profileId) external;\n\n    function emitPendingMemberRejected(address organization, uint256 profileId) external;\n\n    function emitProjectCreated(address organization, uint256 projectId) external;\n\n    function emitProjectUpdated(address organization, uint256 projectId) external;\n\n    function emitProjectMemberAdded(address organization, uint256 projectId, uint256 profileId) external;\n\n    function emitProjectMemberRemoved(address organization, uint256 projectId, uint256 profileId) external;\n\n    function emitTaskCreated(address organization, uint256 projectId, uint256 taskId) external;\n\n    function emitTaskUpdated(address organization, uint256 taskId) external;\n\n    function emitTaskMemberAdded(address organization, uint256 taskId, uint256 profileId) external;\n\n    function emitTaskMemberRemoved(address organization, uint256 taskId, uint256 profileId) external;\n}\n"},"contracts/common/interfaces/IMy3SecProfiles.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\";\n\ninterface IMy3SecProfiles is IERC721Upgradeable {\n    function getDefaultProfileId(address account) external view returns (uint256);\n\n    function setDefaultProfile(address account, uint256 profileId) external;\n\n    function createProfile(address to, string memory uri) external returns (uint256);\n\n    function updateProfile(uint256 profileId, string memory uri) external;\n\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"contracts/common/interfaces/IMy3SecToken.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface IMy3SecToken is IERC20 {}\n"},"contracts/common/interfaces/IOrganization.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"../interfaces/IWhitelistable.sol\";\nimport \"../libraries/DataTypes.sol\";\n\ninterface IOrganization is IWhitelistable {\n    function getMetadataURI() external view returns (string memory);\n\n    function getMemberCount() external view returns (uint256);\n\n    function getMember(uint256 index) external view returns (uint256);\n\n    function isMember(uint256 profileId) external view returns (bool);\n\n    function getPendingMemberCount() external view returns (uint256);\n\n    function getPendingMember(uint256 index) external view returns (uint256);\n\n    function isPendingMember(uint256 profileId) external view returns (bool);\n\n    function setMetadataURI(string memory metadataURI) external;\n\n    function join(uint256 profileId) external;\n\n    function leave(uint256 profileId) external;\n\n    function approvePendingMember(uint256 profileId) external;\n\n    function rejectPendingMember(uint256 profileId) external;\n\n    //=============================================================================\n    // PROJECT\n    //=============================================================================\n\n    function getProjectCount() external view returns (uint256);\n\n    function getProject(uint256 index) external view returns (DataTypes.ProjectView memory);\n\n    function getProjectMemberCount(uint256 projectId) external view returns (uint256);\n\n    function getProjectMember(uint256 projectId, uint256 index) external view returns (uint256);\n\n    function isProjectMember(uint256 projectId, uint256 profileId) external view returns (bool);\n\n    function createProject(DataTypes.CreateProject calldata args) external returns (uint256);\n\n    function updateProject(uint256 projectId, DataTypes.UpdateProject calldata args) external;\n\n    function addProjectMember(uint256 projectId, uint256 profileId) external;\n\n    function removeProjectMember(uint256 projectId, uint256 profileId) external;\n\n    //=============================================================================\n    // TASK\n    //=============================================================================\n\n    function getTaskCount(uint256 projectId) external view returns (uint256);\n\n    function getTask(uint256 projectId, uint256 index) external view returns (DataTypes.TaskView memory);\n\n    function getTask(uint256 taskId) external view returns (DataTypes.TaskView memory);\n\n    function getTaskMemberCount(uint256 taskId) external view returns (uint256);\n\n    function getTaskMember(uint256 taskId, uint256 index) external view returns (uint256);\n\n    function isTaskMember(uint256 taskId, uint256 profileId) external view returns (bool);\n\n    function getTaskLoggedTimeCount(uint256 taskId) external view returns (uint256);\n\n    function getTaskLoggedTime(uint256 taskId, uint256 index) external view returns (uint256, uint256);\n\n    function getTaskLoggedTimeOfProfile(uint256 taskId, uint256 profileId) external view returns (uint256);\n\n    function createTask(uint256 projectId, DataTypes.CreateTask calldata args) external returns (uint256);\n\n    function updateTask(uint256 taskId, DataTypes.UpdateTask calldata args) external;\n\n    function addTaskMember(uint256 taskId, uint256 profileId) external;\n\n    function removeTaskMember(uint256 taskId, uint256 profileId) external;\n\n    function updateTaskTime(uint256 projectId, uint256 taskId, uint256 time) external;\n\n    //=============================================================================\n    // OVERRIDES\n    //=============================================================================\n\n    function transferOwnership(address newOwner) external;\n}\n"},"contracts/common/interfaces/ISkillRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"../libraries/DataTypes.sol\";\n\ninterface ISkillRegistry {\n    function getSkillCount() external view returns (uint256);\n\n    function getSkill(uint256 index) external view returns (DataTypes.SkillView memory);\n\n    function getBaseURI() external view returns (string memory);\n\n    function setBaseURI(string memory baseURI) external;\n\n    function createSkill(DataTypes.CreateSkill calldata args) external;\n\n    function updateSkill(uint256 id, DataTypes.UpdateSkill calldata args) external;\n}\n"},"contracts/common/interfaces/ISkillWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\ninterface ISkillWallet {\n    function getSkillCount(uint256 profileID) external view returns (uint256);\n\n    function getSkill(uint256 profileID, uint256 index) external view returns (uint256, uint256);\n\n    function recordExperience(uint256 profileID, uint256 skillID, uint256 amount) external;\n}\n"},"contracts/common/interfaces/ITimeWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\ninterface ITimeWallet {\n    function spendTimeFor(uint256 profileId, uint256 time) external;\n}\n"},"contracts/common/interfaces/IWhitelistable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\ninterface IWhitelistable {\n    function getWhitelistCount() external view returns (uint256);\n\n    function getWhitelistMember(uint256 index) external view returns (address);\n\n    function isWhitelisted(address account) external view returns (bool);\n\n    function addToWhitelist(address account) external;\n\n    function removeFromWhitelist(address account) external;\n}\n"},"contracts/common/libraries/Constants.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nlibrary Constants {\n    uint16 internal constant PROFILE_INITIAL_ENERGY = 10;\n    uint256 internal constant TIME_WALLET_SLOT_SIZE = 1 days;\n    uint256 internal constant DAO_VOTING_DELAY = 1 days;\n    uint256 internal constant DAO_VOTING_PERIOD = 7 days;\n    uint256 internal constant DAO_PROPOSAL_THRESHOLD = 0;\n    uint256 internal constant DAO_QUORUM = 4;\n    uint256 internal constant DAO_TIMELOCK_DELAY = 1 days;\n}\n"},"contracts/common/libraries/DataTypes.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\nlibrary DataTypes {\n    struct CreateProfile {\n        string metadataURI;\n    }\n\n    struct UpdateProfile {\n        string metadataURI;\n    }\n\n    struct ProfileView {\n        uint256 id;\n        string metadataURI;\n    }\n\n    enum ProjectStatus {\n        NOT_STARTED,\n        IN_PROGRESS,\n        COMPLETED,\n        CANCELED\n    }\n\n    struct CreateProject {\n        string metadataURI;\n    }\n\n    struct UpdateProject {\n        string metadataURI;\n        ProjectStatus status;\n    }\n\n    struct Project {\n        uint256 id;\n        string metadataURI;\n        ProjectStatus status;\n        EnumerableSet.UintSet members;\n        uint256[] tasks;\n    }\n\n    struct ProjectView {\n        uint256 id;\n        string metadataURI;\n        ProjectStatus status;\n        uint256 taskCount;\n    }\n\n    enum TaskStatus {\n        NOT_STARTED,\n        IN_PROGRESS,\n        COMPLETED,\n        CANCELED\n    }\n\n    struct CreateTask {\n        string metadataURI;\n        uint256[] skills;\n    }\n\n    struct UpdateTask {\n        string metadataURI;\n        TaskStatus status;\n        uint256[] skills;\n    }\n\n    struct Task {\n        uint256 id;\n        string metadataURI;\n        TaskStatus status;\n        uint256[] skills;\n        EnumerableSet.UintSet members;\n        EnumerableMap.UintToUintMap loggedTime;\n    }\n\n    struct TaskView {\n        uint256 id;\n        string metadataURI;\n        TaskStatus status;\n        uint256[] skills;\n    }\n\n    struct CreateSkill {\n        string metadataURI;\n    }\n\n    struct UpdateSkill {\n        string metadataURI;\n    }\n\n    struct SkillView {\n        uint256 id;\n        string metadataURI;\n    }\n}\n"},"contracts/common/libraries/Errors.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nlibrary Errors {\n    error InvalidContract();\n    error IndexOutOfBounds();\n    error InitParamsInvalid();\n    error NotHub();\n    error NotGovernance();\n    error NotWhitelisted();\n    error NotProfileOwner();\n    error NotRegistered();\n    error CallerNotOrganization();\n    error AlreadyRegistered();\n    error AlreadyMember();\n    error NotMember();\n    error NotPendingMember();\n    error ExceededLoggableTime();\n    error SkillNotFound();\n    error NotCompleted();\n    error AlreadyCompleted();\n    error AlreadyWithdrawn();\n}\n"},"contracts/common/libraries/Events.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nlibrary Events {\n    event ProfileCreated(uint256 indexed profileId, address indexed owner);\n    event EnergyGiven(uint256 indexed fromProfileId, uint256 indexed toProfileId, uint256 amount);\n    event EnergyRemoved(uint256 indexed fromProfileId, uint256 indexed toProfileId, uint256 amount);\n    event OrganizationRegistered(address indexed organization);\n    event OrganizationJoined(address indexed organization, uint256 indexed profileId);\n    event OrganizationLeft(address indexed organization, uint256 indexed profileId);\n    event PendingMemberApproved(address indexed organization, uint256 indexed profileId);\n    event PendingMemberRejected(address indexed organization, uint256 indexed profileId);\n    event ProjectCreated(address indexed organization, uint256 indexed projectId);\n    event ProjectUpdated(address indexed organization, uint256 indexed projectId);\n    event ProjectMemberAdded(address indexed organization, uint256 indexed projectId, uint256 indexed profileId);\n    event ProjectMemberRemoved(address indexed organization, uint256 indexed projectId, uint256 indexed profileId);\n    event TaskCreated(address indexed organization, uint256 indexed projectId, uint256 indexed taskId);\n    event TaskUpdated(address indexed organization, uint256 indexed taskId);\n    event TaskMemberAdded(address indexed organization, uint256 indexed taskId, uint256 indexed profileId);\n    event TaskMemberRemoved(address indexed organization, uint256 indexed taskId, uint256 indexed profileId);\n    event TimeLogged(uint256 indexed profileId, uint256 time);\n    event ExperienceWithdrawn(address indexed organization, uint256 indexed taskId, uint256 indexed profileId);\n    event SkillCreated(uint256 indexed skillId);\n    event CertificateIssued(address from, uint256 indexed profileId, uint256 indexed certificateId);\n}\n"},"contracts/governance/My3SecGovernance.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/governance/Governor.sol\";\nimport \"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\";\nimport \"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\";\nimport \"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\";\nimport \"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\";\nimport \"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\";\n\nimport \"../common/libraries/Constants.sol\";\n\ncontract My3SecGovernance is\n    Governor,\n    GovernorSettings,\n    GovernorCountingSimple,\n    GovernorVotes,\n    GovernorVotesQuorumFraction,\n    GovernorTimelockControl\n{\n    constructor(\n        IVotes _token,\n        TimelockController _timelock\n    )\n        Governor(\"My3Sec Governance\")\n        GovernorSettings(Constants.DAO_VOTING_DELAY, Constants.DAO_VOTING_PERIOD, Constants.DAO_PROPOSAL_THRESHOLD)\n        GovernorVotes(_token)\n        GovernorVotesQuorumFraction(Constants.DAO_QUORUM)\n        GovernorTimelockControl(_timelock)\n    {}\n\n    // The following functions are overrides required by Solidity.\n\n    function votingDelay() public view override(IGovernor, GovernorSettings) returns (uint256) {\n        return super.votingDelay();\n    }\n\n    function votingPeriod() public view override(IGovernor, GovernorSettings) returns (uint256) {\n        return super.votingPeriod();\n    }\n\n    function quorum(\n        uint256 blockNumber\n    ) public view override(IGovernor, GovernorVotesQuorumFraction) returns (uint256) {\n        return super.quorum(blockNumber);\n    }\n\n    function state(uint256 proposalId) public view override(Governor, GovernorTimelockControl) returns (ProposalState) {\n        return super.state(proposalId);\n    }\n\n    function propose(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        string memory description\n    ) public override(Governor, IGovernor) returns (uint256) {\n        return super.propose(targets, values, calldatas, description);\n    }\n\n    function proposalThreshold() public view override(Governor, GovernorSettings) returns (uint256) {\n        return super.proposalThreshold();\n    }\n\n    function _execute(\n        uint256 proposalId,\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal override(Governor, GovernorTimelockControl) {\n        super._execute(proposalId, targets, values, calldatas, descriptionHash);\n    }\n\n    function _cancel(\n        address[] memory targets,\n        uint256[] memory values,\n        bytes[] memory calldatas,\n        bytes32 descriptionHash\n    ) internal override(Governor, GovernorTimelockControl) returns (uint256) {\n        return super._cancel(targets, values, calldatas, descriptionHash);\n    }\n\n    function _executor() internal view override(Governor, GovernorTimelockControl) returns (address) {\n        return super._executor();\n    }\n\n    function supportsInterface(\n        bytes4 interfaceId\n    ) public view override(Governor, GovernorTimelockControl) returns (bool) {\n        return super.supportsInterface(interfaceId);\n    }\n}\n"},"contracts/governance/My3SecToken.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol\";\n\nimport \"../common/access/HubControllable.sol\";\n\n/**\n * @title My3SecToken contract\n * @dev This is the implementation of the ERC20 My3Sec Token.\n *\n * The token is initially owned by the deployer address that can mint tokens to create the initial\n * distribution. For convenience, an initial supply can be passed in the constructor that will be\n * assigned to the deployer.\n *\n * The My3Sec rewards system (to be defined) should be added as a minter to distribute rewards to the users.\n */\ncontract My3SecToken is ERC20, ERC20Burnable, ERC20Permit, ERC20Votes, HubControllable {\n    /**\n     * @dev My3Sec Token Contract Constructor.\n     * @param initialSupply Initial supply of M3S\n     */\n    constructor(\n        address hub,\n        uint256 initialSupply\n    ) ERC20(\"My3Sec Token\", \"M3S\") ERC20Permit(\"My3Sec Token\") HubControllable(hub) {\n        _mint(msg.sender, initialSupply * 10 ** decimals());\n    }\n\n    /**\n     * Mint new tokens.\n     * @param to Address to send the newly minted tokens\n     * @param amount Amount of tokens to mint\n     */\n    function mint(address to, uint256 amount) public onlyHub {\n        _mint(to, amount);\n    }\n\n    // The following functions are overrides required by Solidity.\n\n    function _afterTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Votes) {\n        super._afterTokenTransfer(from, to, amount);\n    }\n\n    function _mint(address to, uint256 amount) internal override(ERC20, ERC20Votes) {\n        super._mint(to, amount);\n    }\n\n    function _burn(address account, uint256 amount) internal override(ERC20, ERC20Votes) {\n        super._burn(account, amount);\n    }\n}\n"},"contracts/governance/SkillRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\nimport \"../common/interfaces/ISkillRegistry.sol\";\nimport \"../common/libraries/DataTypes.sol\";\nimport \"../common/libraries/Events.sol\";\nimport \"../common/libraries/Errors.sol\";\n\ncontract SkillRegistry is ISkillRegistry, Ownable {\n    using Strings for uint256;\n\n    string[] internal _skills;\n    string internal _baseURI;\n\n    modifier baseURINotEmpty(string memory baseURI) {\n        if (bytes(baseURI).length < 1) {\n            revert Errors.InitParamsInvalid();\n        }\n        _;\n    }\n\n    modifier skillExists(uint256 id) {\n        if (_skills.length < 1 || id > _skills.length - 1) {\n            revert Errors.SkillNotFound();\n        }\n        _;\n    }\n\n    constructor(string memory baseURI) baseURINotEmpty(baseURI) {\n        _baseURI = baseURI;\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function getSkillCount() external view returns (uint256) {\n        return _skills.length;\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function getSkill(uint256 index) external view skillExists(index) returns (DataTypes.SkillView memory) {\n        string memory metadataURI = _skills[index];\n        if (bytes(metadataURI).length > 1) {\n            return DataTypes.SkillView(index, metadataURI);\n        }\n\n        return DataTypes.SkillView(index, string(abi.encodePacked(_baseURI, index.toString())));\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function getBaseURI() external view returns (string memory) {\n        return _baseURI;\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function setBaseURI(string memory baseURI) external onlyOwner baseURINotEmpty(baseURI) {\n        _baseURI = baseURI;\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function createSkill(DataTypes.CreateSkill calldata args) external onlyOwner {\n        _skills.push(args.metadataURI);\n        uint256 id = _skills.length - 1;\n        emit Events.SkillCreated(id);\n    }\n\n    /// @inheritdoc ISkillRegistry\n    function updateSkill(uint256 id, DataTypes.UpdateSkill calldata args) external onlyOwner skillExists(id) {\n        _skills[id] = args.metadataURI;\n    }\n}\n"},"contracts/governance/Timelock.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/governance/TimelockController.sol\";\n\nimport \"../common/libraries/Constants.sol\";\n\ncontract Timelock is TimelockController {\n    constructor(\n        address[] memory proposers,\n        address[] memory executors\n    ) TimelockController(Constants.DAO_TIMELOCK_DELAY, proposers, executors, msg.sender) {}\n}\n"},"contracts/My3SecHub.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\n\nimport \"./common/interfaces/IMy3SecHub.sol\";\nimport \"./common/interfaces/ISkillRegistry.sol\";\nimport \"./common/interfaces/ICertificateNFT.sol\";\nimport \"./common/interfaces/IMy3SecProfiles.sol\";\nimport \"./common/interfaces/IEnergyWallet.sol\";\nimport \"./common/interfaces/ITimeWallet.sol\";\nimport \"./common/interfaces/ISkillWallet.sol\";\nimport \"./common/interfaces/IOrganization.sol\";\nimport \"./common/libraries/Constants.sol\";\nimport \"./common/libraries/DataTypes.sol\";\nimport \"./common/libraries/Errors.sol\";\nimport \"./common/libraries/Events.sol\";\n\nimport \"./organizations/OrganizationFactory.sol\";\n\ncontract My3SecHub is IMy3SecHub, OwnableUpgradeable {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    address internal _governanceTimelockContractAddress;\n\n    OrganizationFactory internal _organizationFactory;\n    ISkillRegistry internal _skillRegistry;\n    ICertificateNFT internal _certificateNFT;\n    IMy3SecProfiles internal _my3SecProfiles;\n    IEnergyWallet internal _energyWallet;\n    ITimeWallet internal _timeWallet;\n    ISkillWallet internal _skillWallet;\n\n    EnumerableSet.AddressSet internal _organizations;\n\n    // Org => TaskId => profileId\n    mapping(address => mapping(uint256 => uint256)) rewards;\n\n    modifier organizationRegistered(address organizationAddress) {\n        if (!_organizations.contains(organizationAddress)) revert Errors.NotRegistered();\n        _;\n    }\n\n    modifier onlyRegisteredOrganizationCaller() {\n        if (!_organizations.contains(msg.sender)) revert Errors.CallerNotOrganization();\n        _;\n    }\n\n    function initialize() public initializer {\n        __Ownable_init();\n    }\n\n    function setGovernanceTimelockContractAddress(address contractAddress) external onlyOwner {\n        _governanceTimelockContractAddress = contractAddress;\n    }\n\n    function setOrganizationFactoryContract(address contractAddress) external onlyOwner {\n        _organizationFactory = OrganizationFactory(contractAddress);\n    }\n\n    function setSkillRegistryContract(address contractAddress) external onlyOwner {\n        _skillRegistry = ISkillRegistry(contractAddress);\n    }\n\n    function setCertificateNFTContract(address contractAddress) external onlyOwner {\n        _certificateNFT = ICertificateNFT(contractAddress);\n    }\n\n    function setMy3SecProfilesContract(address contractAddress) external onlyOwner {\n        _my3SecProfiles = IMy3SecProfiles(contractAddress);\n    }\n\n    function setEnergyWalletContract(address contractAddress) external onlyOwner {\n        _energyWallet = IEnergyWallet(contractAddress);\n    }\n\n    function setTimeWalletContract(address contractAddress) external onlyOwner {\n        _timeWallet = ITimeWallet(contractAddress);\n    }\n\n    function setSkillWalletContract(address contractAddress) external onlyOwner {\n        _skillWallet = ISkillWallet(contractAddress);\n    }\n\n    //=============================================================================\n    // PROFILE\n    //=============================================================================\n\n    /// @inheritdoc IMy3SecHub\n    function getDefaultProfile(address account) external view override returns (DataTypes.ProfileView memory) {\n        uint256 profileId = _my3SecProfiles.getDefaultProfileId(account);\n        return getProfile(profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function getProfileAccount(uint256 profileId) public view override returns (address) {\n        return _my3SecProfiles.ownerOf(profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function getProfile(uint256 profileId) public view override returns (DataTypes.ProfileView memory) {\n        string memory uri = _my3SecProfiles.tokenURI(profileId);\n        DataTypes.ProfileView memory profile = DataTypes.ProfileView(profileId, uri);\n        return profile;\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function setDefaultProfile(uint256 profileId) external override {\n        _my3SecProfiles.setDefaultProfile(msg.sender, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function createProfile(DataTypes.CreateProfile calldata args) external override returns (uint256) {\n        uint256 profileId = _my3SecProfiles.createProfile(msg.sender, args.metadataURI);\n        _energyWallet.createEnergyFor(profileId, Constants.PROFILE_INITIAL_ENERGY);\n\n        emit Events.ProfileCreated(profileId, msg.sender);\n        return profileId;\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function updateProfile(uint256 profileId, DataTypes.UpdateProfile calldata args) external {\n        bool isProfileOwner = msg.sender == getProfileAccount(profileId);\n        if (!isProfileOwner) revert Errors.NotProfileOwner();\n        _my3SecProfiles.updateProfile(profileId, args.metadataURI);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function giveEnergyTo(uint256 profileId, uint256 amount) external override {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        _energyWallet.giveEnergy(senderProfileId, profileId, amount);\n        emit Events.EnergyGiven(senderProfileId, profileId, amount);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function removeEnergyFrom(uint256 profileId, uint256 amount) external override {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        _energyWallet.removeEnergy(profileId, senderProfileId, amount);\n        emit Events.EnergyRemoved(profileId, senderProfileId, amount);\n    }\n\n    //=============================================================================\n    // ORGANIZATION\n    //=============================================================================\n\n    /// @inheritdoc IMy3SecHub\n    function getOrganizationCount() public view override returns (uint256) {\n        return _organizations.length();\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function getOrganization(uint256 index) external view override returns (address) {\n        if (index < 0 || index >= getOrganizationCount()) revert Errors.IndexOutOfBounds();\n        return _organizations.at(index);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function hasWithdrawn(address organizationAddress, uint256 taskId, uint256 profileId) external view returns (bool) {\n        return rewards[organizationAddress][taskId] == profileId;\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function createOrganization(string calldata metadataURI) external returns (address) {\n        address organizationAddress = _organizationFactory.createOrganization(address(this), metadataURI);\n        IOrganization organization = IOrganization(organizationAddress);\n        organization.addToWhitelist(msg.sender);\n        organization.transferOwnership(msg.sender);\n\n        _organizations.add(organizationAddress);\n        emit Events.OrganizationRegistered(organizationAddress);\n\n        return organizationAddress;\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function registerOrganization(address organizationAddress) external override {\n        if (_organizations.contains(organizationAddress)) revert Errors.AlreadyRegistered();\n\n        // 1. Check if the address corresponds to a deployed contract\n        uint256 codeSize;\n        assembly {\n            codeSize := extcodesize(organizationAddress)\n        }\n        if (codeSize == 0) revert Errors.InvalidContract();\n\n        // 2. Check if the organization contract complies with the required interface\n        if (!_isOrganizationContract(organizationAddress)) revert Errors.InvalidContract();\n        IOrganization organization = IOrganization(organizationAddress);\n\n        // 3. Check if the sender is whitelisted in the organization\n        if (!organization.isWhitelisted(msg.sender)) revert Errors.NotWhitelisted();\n\n        _organizations.add(organizationAddress);\n        emit Events.OrganizationRegistered(address(organization));\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function joinOrganization(address organizationAddress) external override {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        IOrganization organization = IOrganization(organizationAddress);\n        organization.join(senderProfileId);\n        emit Events.OrganizationJoined(organizationAddress, senderProfileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function leaveOrganization(address organizationAddress) external override {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        IOrganization organization = IOrganization(organizationAddress);\n        organization.leave(senderProfileId);\n        emit Events.OrganizationLeft(organizationAddress, senderProfileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function logTime(\n        address organizationAddress,\n        uint256 taskId,\n        uint256 time\n    ) external override organizationRegistered(organizationAddress) {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        IOrganization organization = IOrganization(organizationAddress);\n\n        // Use the time for today; reverts if the time is not available\n        _timeWallet.spendTimeFor(senderProfileId, time);\n\n        organization.updateTaskTime(senderProfileId, taskId, time);\n\n        emit Events.TimeLogged(senderProfileId, time);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function withdraw(address organizationAddress, uint256 taskId) external {\n        uint256 senderProfileId = _my3SecProfiles.getDefaultProfileId(msg.sender);\n        IOrganization organization = IOrganization(organizationAddress);\n\n        if (organization.isTaskMember(taskId, senderProfileId) != true) revert Errors.NotMember();\n\n        DataTypes.TaskView memory task = organization.getTask(taskId);\n\n        if (task.status != DataTypes.TaskStatus.COMPLETED) revert Errors.NotCompleted();\n\n        if (rewards[organizationAddress][taskId] != 0) revert Errors.AlreadyWithdrawn();\n        rewards[organizationAddress][taskId] = senderProfileId;\n\n        uint256 skillCount = task.skills.length;\n        for (uint256 i = 0; i < skillCount; i++) {\n            uint256 time = organization.getTaskLoggedTimeOfProfile(taskId, senderProfileId);\n            _skillWallet.recordExperience(senderProfileId, task.skills[i], time / 1 hours);\n        }\n        emit Events.ExperienceWithdrawn(organizationAddress, taskId, senderProfileId);\n    }\n\n    function _isOrganizationContract(address organization) internal view returns (bool) {\n        try IOrganization(organization).getMemberCount() returns (uint256) {\n            return true;\n        } catch {\n            return false;\n        }\n    }\n\n    //=============================================================================\n    // CERTIFICATE\n    //=============================================================================\n\n    /// @inheritdoc IMy3SecHub\n    function issueCertificate(uint256 profileId, string memory uri) external {\n        if (msg.sender != _governanceTimelockContractAddress) revert Errors.NotGovernance();\n        address account = getProfileAccount(profileId);\n        uint256 certificateId = _certificateNFT.safeMint(account, uri);\n        emit Events.CertificateIssued(msg.sender, profileId, certificateId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function issueCertificate(\n        address organizationAddress,\n        uint256 profileId,\n        string memory uri\n    ) external organizationRegistered(organizationAddress) {\n        bool isManager = IOrganization(organizationAddress).isWhitelisted(msg.sender);\n        if (!isManager) revert Errors.NotWhitelisted();\n        address account = getProfileAccount(profileId);\n        uint256 certificateId = _certificateNFT.safeMint(account, uri);\n        emit Events.CertificateIssued(organizationAddress, profileId, certificateId);\n    }\n\n    //=============================================================================\n    // EMITTERS\n    //=============================================================================\n\n    /// @inheritdoc IMy3SecHub\n    function emitPendingMemberApproved(\n        address organization,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.PendingMemberApproved(organization, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitPendingMemberRejected(\n        address organization,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.PendingMemberRejected(organization, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitProjectCreated(address organization, uint256 projectId) external onlyRegisteredOrganizationCaller {\n        emit Events.ProjectCreated(organization, projectId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitProjectUpdated(address organization, uint256 projectId) external onlyRegisteredOrganizationCaller {\n        emit Events.ProjectUpdated(organization, projectId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitProjectMemberAdded(\n        address organization,\n        uint256 projectId,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.ProjectMemberAdded(organization, projectId, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitProjectMemberRemoved(\n        address organization,\n        uint256 projectId,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.ProjectMemberRemoved(organization, projectId, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitTaskCreated(\n        address organization,\n        uint256 projectId,\n        uint256 taskId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.TaskCreated(organization, projectId, taskId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitTaskUpdated(address organization, uint256 taskId) external onlyRegisteredOrganizationCaller {\n        emit Events.TaskUpdated(organization, taskId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitTaskMemberAdded(\n        address organization,\n        uint256 taskId,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.TaskMemberAdded(organization, taskId, profileId);\n    }\n\n    /// @inheritdoc IMy3SecHub\n    function emitTaskMemberRemoved(\n        address organization,\n        uint256 taskId,\n        uint256 profileId\n    ) external onlyRegisteredOrganizationCaller {\n        emit Events.TaskMemberRemoved(organization, taskId, profileId);\n    }\n}\n"},"contracts/organizations/CertificateNFT.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol\";\n\ncontract CertificateNFT is ERC721, ERC721Enumerable, ERC721URIStorage, Ownable {\n    uint256 private _tokenIdCounter;\n\n    constructor() ERC721(\"My3Sec Certificates\", \"M3SC\") {}\n\n    function safeMint(address to, string memory uri) external onlyOwner returns (uint256) {\n        uint256 tokenId = _tokenIdCounter;\n        _tokenIdCounter++;\n        _safeMint(to, tokenId);\n        _setTokenURI(tokenId, uri);\n        return tokenId;\n    }\n\n    // The following functions are overrides required by Solidity.\n\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 tokenId,\n        uint256 batchSize\n    ) internal override(ERC721, ERC721Enumerable) {\n        super._beforeTokenTransfer(from, to, tokenId, batchSize);\n\n        // Allow minting process, but disallow all subsequent transfers\n        require(from == address(0), \"CertificateNFT: This token cannot be transferred once minted\");\n    }\n\n    function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {\n        super._burn(tokenId);\n    }\n\n    function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) {\n        return super.tokenURI(tokenId);\n    }\n\n    function supportsInterface(bytes4 interfaceId) public view override(ERC721, ERC721Enumerable) returns (bool) {\n        return super.supportsInterface(interfaceId);\n    }\n}\n"},"contracts/organizations/Organization.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\";\n\nimport \"../common/access/HubControllable.sol\";\nimport \"../common/access/Whitelistable.sol\";\nimport \"../common/interfaces/IMy3SecHub.sol\";\nimport \"../common/interfaces/IOrganization.sol\";\nimport \"../common/libraries/DataTypes.sol\";\nimport \"../common/libraries/Events.sol\";\nimport \"../common/libraries/Errors.sol\";\n\ncontract Organization is IOrganization, HubControllable, Whitelistable {\n    using EnumerableMap for EnumerableMap.UintToUintMap;\n    using EnumerableSet for EnumerableSet.UintSet;\n\n    string internal _metadataURI;\n\n    EnumerableSet.UintSet internal _members;\n    EnumerableSet.UintSet internal _pendingMembers;\n\n    DataTypes.Project[] internal _projects;\n    DataTypes.Task[] internal _tasks;\n\n    modifier taskNotCompleted(uint256 taskId) {\n        if (_tasks[taskId].status == DataTypes.TaskStatus.COMPLETED) revert Errors.AlreadyCompleted();\n        _;\n    }\n\n    modifier projectExists(uint256 projectId) {\n        if (projectId >= _projects.length) revert Errors.NotRegistered();\n        _;\n    }\n\n    modifier taskExists(uint256 taskId) {\n        if (taskId >= _tasks.length) revert Errors.NotRegistered();\n        _;\n    }\n\n    constructor(address hub, string memory metadataURI) HubControllable(hub) {\n        _metadataURI = metadataURI;\n    }\n\n    /// @inheritdoc IOrganization\n    function getMetadataURI() external view virtual override returns (string memory) {\n        return _metadataURI;\n    }\n\n    /// @inheritdoc IOrganization\n    function getMemberCount() external view virtual override returns (uint256) {\n        return _members.length();\n    }\n\n    /// @inheritdoc IOrganization\n    function getMember(uint256 index) external view virtual override returns (uint256) {\n        return _members.at(index);\n    }\n\n    /// @inheritdoc IOrganization\n    function isMember(uint256 profileId) public view virtual override returns (bool) {\n        return _members.contains(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function getPendingMemberCount() external view virtual override returns (uint256) {\n        return _pendingMembers.length();\n    }\n\n    /// @inheritdoc IOrganization\n    function getPendingMember(uint256 index) external view virtual override returns (uint256) {\n        return _pendingMembers.at(index);\n    }\n\n    /// @inheritdoc IOrganization\n    function isPendingMember(uint256 profileId) public view virtual override returns (bool) {\n        return _pendingMembers.contains(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function setMetadataURI(string memory metadataURI) external virtual override onlyWhitelisted {\n        _metadataURI = metadataURI;\n    }\n\n    /// @inheritdoc IOrganization\n    function join(uint256 profileId) external virtual override onlyHub {\n        if (_members.contains(profileId)) revert Errors.AlreadyMember();\n        _pendingMembers.add(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function leave(uint256 profileId) external virtual override onlyHub {\n        if (_pendingMembers.contains(profileId)) {\n            _pendingMembers.remove(profileId);\n            return;\n        }\n\n        if (_members.contains(profileId)) {\n            _members.remove(profileId);\n            return;\n        }\n\n        revert Errors.NotMember();\n    }\n\n    /// @inheritdoc IOrganization\n    function approvePendingMember(uint256 profileId) external virtual override onlyWhitelisted {\n        if (!_pendingMembers.contains(profileId)) revert Errors.NotPendingMember();\n        _pendingMembers.remove(profileId);\n        _members.add(profileId);\n        IMy3SecHub(HUB).emitPendingMemberApproved(address(this), profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function rejectPendingMember(uint256 profileId) external virtual override onlyWhitelisted {\n        if (!_pendingMembers.contains(profileId)) revert Errors.NotPendingMember();\n        _pendingMembers.remove(profileId);\n        IMy3SecHub(HUB).emitPendingMemberRejected(address(this), profileId);\n    }\n\n    //=============================================================================\n    // PROJECT\n    //=============================================================================\n\n    /// @inheritdoc IOrganization\n    function getProjectCount() external view returns (uint256) {\n        return _projects.length;\n    }\n\n    /// @inheritdoc IOrganization\n    function getProject(uint256 index) external view projectExists(index) returns (DataTypes.ProjectView memory) {\n        DataTypes.Project storage project = _projects[index];\n        DataTypes.ProjectView memory projectView = DataTypes.ProjectView({\n            id: project.id,\n            metadataURI: project.metadataURI,\n            status: project.status,\n            taskCount: project.tasks.length\n        });\n        return projectView;\n    }\n\n    /// @inheritdoc IOrganization\n    function getProjectMemberCount(uint256 projectId) external view projectExists(projectId) returns (uint256) {\n        return _projects[projectId].members.length();\n    }\n\n    /// @inheritdoc IOrganization\n    function getProjectMember(\n        uint256 projectId,\n        uint256 index\n    ) external view projectExists(projectId) returns (uint256) {\n        return _projects[projectId].members.at(index);\n    }\n\n    function isProjectMember(uint256 projectId, uint256 profileId) public view projectExists(projectId) returns (bool) {\n        return _projects[projectId].members.contains(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function createProject(DataTypes.CreateProject calldata args) external onlyWhitelisted returns (uint256) {\n        uint256 newProjectId = _projects.length;\n        _projects.push();\n        DataTypes.Project storage project = _projects[newProjectId];\n        project.id = newProjectId;\n        project.metadataURI = args.metadataURI;\n        project.status = DataTypes.ProjectStatus.NOT_STARTED;\n        IMy3SecHub(HUB).emitProjectCreated(address(this), newProjectId);\n        return newProjectId;\n    }\n\n    /// @inheritdoc IOrganization\n    function updateProject(\n        uint256 projectId,\n        DataTypes.UpdateProject calldata args\n    ) external projectExists(projectId) onlyWhitelisted {\n        _projects[projectId].metadataURI = args.metadataURI;\n        _projects[projectId].status = args.status;\n        IMy3SecHub(HUB).emitProjectUpdated(address(this), projectId);\n    }\n\n    /// @inheritdoc IOrganization\n    function addProjectMember(uint256 projectId, uint256 profileId) external projectExists(projectId) onlyWhitelisted {\n        _projects[projectId].members.add(profileId);\n        IMy3SecHub(HUB).emitProjectMemberAdded(address(this), projectId, profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function removeProjectMember(\n        uint256 projectId,\n        uint256 profileId\n    ) external projectExists(projectId) onlyWhitelisted {\n        _projects[projectId].members.remove(profileId);\n        IMy3SecHub(HUB).emitProjectMemberRemoved(address(this), projectId, profileId);\n    }\n\n    //=============================================================================\n    // TASK\n    //=============================================================================\n\n    /// @inheritdoc IOrganization\n    function getTaskCount(uint256 projectId) external view projectExists(projectId) returns (uint256) {\n        return _projects[projectId].tasks.length;\n    }\n\n    /// @inheritdoc IOrganization\n    function getTask(\n        uint256 projectId,\n        uint256 index\n    ) external view projectExists(projectId) returns (DataTypes.TaskView memory) {\n        uint256 taskId = _projects[projectId].tasks[index];\n        DataTypes.Task storage task = _tasks[taskId];\n\n        DataTypes.TaskView memory taskView = DataTypes.TaskView({\n            id: task.id,\n            metadataURI: task.metadataURI,\n            status: task.status,\n            skills: task.skills\n        });\n        return taskView;\n    }\n\n    /// @inheritdoc IOrganization\n    function getTask(uint256 taskId) external view taskExists(taskId) returns (DataTypes.TaskView memory) {\n        DataTypes.Task storage task = _tasks[taskId];\n\n        DataTypes.TaskView memory taskView = DataTypes.TaskView({\n            id: task.id,\n            metadataURI: task.metadataURI,\n            status: task.status,\n            skills: task.skills\n        });\n        return taskView;\n    }\n\n    /// @inheritdoc IOrganization\n    function getTaskMemberCount(uint256 taskId) external view taskExists(taskId) returns (uint256) {\n        return _tasks[taskId].members.length();\n    }\n\n    /// @inheritdoc IOrganization\n    function getTaskMember(uint256 taskId, uint256 index) external view taskExists(taskId) returns (uint256) {\n        return _tasks[taskId].members.at(index);\n    }\n\n    /// @inheritdoc IOrganization\n    function isTaskMember(uint256 taskId, uint256 profileId) public view taskExists(taskId) returns (bool) {\n        return _tasks[taskId].members.contains(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function getTaskLoggedTimeCount(uint256 taskId) external view taskExists(taskId) returns (uint256) {\n        return _tasks[taskId].loggedTime.length();\n    }\n\n    /// @inheritdoc IOrganization\n    function getTaskLoggedTime(\n        uint256 taskId,\n        uint256 index\n    ) external view taskExists(taskId) returns (uint256, uint256) {\n        return _tasks[taskId].loggedTime.at(index);\n    }\n\n    /// @inheritdoc IOrganization\n    function getTaskLoggedTimeOfProfile(\n        uint256 taskId,\n        uint256 profileId\n    ) external view taskExists(taskId) returns (uint256) {\n        return _tasks[taskId].loggedTime.get(profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function createTask(\n        uint256 projectId,\n        DataTypes.CreateTask calldata args\n    ) external projectExists(projectId) onlyWhitelisted returns (uint256) {\n        uint256 newTaskId = _tasks.length;\n        _tasks.push();\n        DataTypes.Task storage task = _tasks[newTaskId];\n        task.id = newTaskId;\n        task.metadataURI = args.metadataURI;\n        task.status = DataTypes.TaskStatus.NOT_STARTED;\n        task.skills = args.skills;\n\n        _projects[projectId].tasks.push(newTaskId);\n        IMy3SecHub(HUB).emitTaskCreated(address(this), projectId, newTaskId);\n        return newTaskId;\n    }\n\n    /// @inheritdoc IOrganization\n    function updateTask(\n        uint256 taskId,\n        DataTypes.UpdateTask calldata args\n    ) external taskExists(taskId) taskNotCompleted(taskId) onlyWhitelisted {\n        _tasks[taskId].metadataURI = args.metadataURI;\n        _tasks[taskId].status = args.status;\n        _tasks[taskId].skills = args.skills;\n        IMy3SecHub(HUB).emitTaskUpdated(address(this), taskId);\n    }\n\n    /// @inheritdoc IOrganization\n    function addTaskMember(\n        uint256 taskId,\n        uint256 profileId\n    ) external taskExists(taskId) taskNotCompleted(taskId) onlyWhitelisted {\n        _tasks[taskId].members.add(profileId);\n        IMy3SecHub(HUB).emitTaskMemberAdded(address(this), taskId, profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function removeTaskMember(\n        uint256 taskId,\n        uint256 profileId\n    ) external taskExists(taskId) taskNotCompleted(taskId) onlyWhitelisted {\n        _tasks[taskId].members.remove(profileId);\n        IMy3SecHub(HUB).emitTaskMemberRemoved(address(this), taskId, profileId);\n    }\n\n    /// @inheritdoc IOrganization\n    function updateTaskTime(\n        uint256 profileId,\n        uint256 taskId,\n        uint256 time\n    ) external taskExists(taskId) taskNotCompleted(taskId) onlyHub {\n        if (!isTaskMember(taskId, profileId)) revert Errors.NotMember();\n\n        if (!_tasks[taskId].loggedTime.contains(profileId)) {\n            _tasks[taskId].loggedTime.set(profileId, time);\n        } else {\n            uint256 currentTime = _tasks[taskId].loggedTime.get(profileId);\n            _tasks[taskId].loggedTime.set(profileId, currentTime + time);\n        }\n    }\n\n    //=============================================================================\n    // OVERRIDES\n    //=============================================================================\n\n    function transferOwnership(address newOwner) public override(IOrganization, Ownable) {\n        super.transferOwnership(newOwner);\n    }\n}\n"},"contracts/organizations/OrganizationFactory.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"../common/interfaces/IOrganization.sol\";\n\nimport \"../organizations/Organization.sol\";\n\ncontract OrganizationFactory {\n    function createOrganization(address hub, string calldata metadataURI) external returns (address) {\n        IOrganization organization = new Organization(hub, metadataURI);\n        organization.transferOwnership(msg.sender);\n        return address(organization);\n    }\n}\n"},"contracts/profiles/EnergyWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\";\n\nimport \"../common/access/HubControllableUpgradeable.sol\";\nimport \"../common/interfaces/IEnergyWallet.sol\";\n\n/**\n * @title EnergyWallet contract\n * @dev This is the implementation of the Energy Wallet.\n */\ncontract EnergyWallet is IEnergyWallet, HubControllableUpgradeable {\n    using EnumerableMapUpgradeable for EnumerableMapUpgradeable.UintToUintMap;\n\n    mapping(uint256 => uint256) private _totalEnergy;\n    mapping(uint256 => uint256) private _allocatedEnergy;\n    mapping(uint256 => uint256) private _receivedEnergy;\n    mapping(uint256 => EnumerableMapUpgradeable.UintToUintMap) private _energyAllocationMap;\n    mapping(uint256 => EnumerableMapUpgradeable.UintToUintMap) private _reverseEnergyAllocationMap;\n\n    function initialize(address hub) public initializer {\n        __HubControllable_init(hub);\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function totalEnergyOf(uint256 profileId) external view override returns (uint256) {\n        return _totalEnergy[profileId];\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function freeEnergyOf(uint256 profileId) public view override returns (uint256) {\n        return _totalEnergy[profileId] - _allocatedEnergy[profileId];\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function allocatedEnergyOf(uint256 profileId) external view override returns (uint256) {\n        return _allocatedEnergy[profileId];\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function receivedEnergyOf(uint256 profileId) external view override returns (uint256) {\n        return _receivedEnergy[profileId];\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function energizedBy(uint256 profileId, uint256 index) external view override returns (uint256, uint256) {\n        return _energyAllocationMap[profileId].at(index);\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function energizersOf(uint256 profileId, uint256 index) external view override returns (uint256, uint256) {\n        return _reverseEnergyAllocationMap[profileId].at(index);\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function totalEnergizedBy(uint256 profileId) external view returns (uint256) {\n        return _energyAllocationMap[profileId].length();\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function totalEnergizersOf(uint256 profileId) external view returns (uint256) {\n        return _reverseEnergyAllocationMap[profileId].length();\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function giveEnergy(uint256 from, uint256 to, uint256 amount) external override onlyHub {\n        require(to != from, \"Cannot give energy to yourself\");\n        require(amount <= freeEnergyOf(from), \"Insufficient energy\");\n\n        _allocatedEnergy[from] += amount;\n        (, uint256 currentAllocatedEnergy) = _energyAllocationMap[from].tryGet(to);\n        uint256 nextAllocatedEnergy = currentAllocatedEnergy + amount;\n        _energyAllocationMap[from].set(to, nextAllocatedEnergy);\n        _reverseEnergyAllocationMap[to].set(from, nextAllocatedEnergy);\n\n        _receivedEnergy[to] += amount;\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function removeEnergy(uint256 from, uint256 to, uint256 amount) external override onlyHub {\n        require(_energyAllocationMap[to].contains(from), \"Profile not referenced\");\n        require(amount <= _energyAllocationMap[to].get(from), \"Exceeded given energy\");\n\n        _receivedEnergy[from] -= amount;\n        uint256 nextAllocatedEnergy = _energyAllocationMap[to].get(from) - amount;\n        _energyAllocationMap[to].set(from, nextAllocatedEnergy);\n        _reverseEnergyAllocationMap[from].set(to, nextAllocatedEnergy);\n\n        _allocatedEnergy[to] -= amount;\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function createEnergyFor(uint256 profileId, uint256 amount) external override onlyHub {\n        _totalEnergy[profileId] += amount;\n    }\n\n    /// @inheritdoc IEnergyWallet\n    function destroyEnergyFor(uint256 profileId, uint256 amount) external override onlyHub {\n        require(amount <= freeEnergyOf(profileId), \"Exceeded free energy\");\n        require(amount <= _totalEnergy[profileId], \"Exceeded total energy\");\n        _totalEnergy[profileId] -= amount;\n    }\n}\n"},"contracts/profiles/My3SecProfiles.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\";\nimport \"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol\";\n\nimport \"../common/access/HubControllableUpgradeable.sol\";\nimport \"../common/interfaces/IMy3SecProfiles.sol\";\nimport \"../common/libraries/Errors.sol\";\n\ncontract My3SecProfiles is\n    IMy3SecProfiles,\n    HubControllableUpgradeable,\n    ERC721Upgradeable,\n    ERC721EnumerableUpgradeable,\n    ERC721URIStorageUpgradeable\n{\n    uint256 private _tokenIdCounter;\n    mapping(address => uint256) private _defaultProfileByAddress;\n\n    function initialize(address hub) public initializer {\n        __ERC721_init(\"My3Sec Profiles\", \"M3SP\");\n        __ERC721Enumerable_init();\n        __ERC721URIStorage_init();\n        __HubControllable_init(hub);\n    }\n\n    /// @inheritdoc IMy3SecProfiles\n    function getDefaultProfileId(address account) external view override returns (uint256) {\n        return _defaultProfileByAddress[account];\n    }\n\n    /// @inheritdoc IMy3SecProfiles\n    function setDefaultProfile(address account, uint256 profileId) external override onlyHub {\n        _setDefaultProfile(account, profileId);\n    }\n\n    /// @inheritdoc IMy3SecProfiles\n    function createProfile(address to, string memory uri) external override onlyHub returns (uint256) {\n        uint256 tokenId = ++_tokenIdCounter;\n        _safeMint(to, tokenId);\n        _setTokenURI(tokenId, uri);\n        bool isFirstProfile = balanceOf(to) == 1;\n        if (isFirstProfile) {\n            _setDefaultProfile(to, tokenId);\n        }\n        return tokenId;\n    }\n\n    /// @inheritdoc IMy3SecProfiles\n    function updateProfile(uint256 profileId, string memory uri) external onlyHub {\n        _setTokenURI(profileId, uri);\n    }\n\n    function _setDefaultProfile(address account, uint256 profileId) internal {\n        if (profileId > 0 && account != ownerOf(profileId)) revert Errors.NotProfileOwner();\n        _defaultProfileByAddress[account] = profileId;\n    }\n\n    function _beforeTokenTransfer(\n        address from,\n        address to,\n        uint256 tokenId,\n        uint256 batchSize\n    ) internal override(ERC721Upgradeable, ERC721EnumerableUpgradeable) {\n        if (_defaultProfileByAddress[from] == tokenId) {\n            _defaultProfileByAddress[from] = 0;\n        }\n\n        super._beforeTokenTransfer(from, to, tokenId, batchSize);\n    }\n\n    function _burn(uint256 tokenId) internal override(ERC721Upgradeable, ERC721URIStorageUpgradeable) {\n        super._burn(tokenId);\n    }\n\n    function tokenURI(\n        uint256 tokenId\n    ) public view override(ERC721Upgradeable, ERC721URIStorageUpgradeable, IMy3SecProfiles) returns (string memory) {\n        return super.tokenURI(tokenId);\n    }\n\n    function supportsInterface(\n        bytes4 interfaceId\n    ) public view override(ERC721EnumerableUpgradeable, ERC721Upgradeable, IERC165Upgradeable) returns (bool) {\n        return super.supportsInterface(interfaceId);\n    }\n}\n"},"contracts/profiles/SkillWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\";\n\nimport \"../common/access/HubControllableUpgradeable.sol\";\nimport \"../common/interfaces/ISkillWallet.sol\";\n\ncontract SkillWallet is ISkillWallet, HubControllableUpgradeable {\n    using EnumerableMapUpgradeable for EnumerableMapUpgradeable.UintToUintMap;\n\n    // ProfileID => EnumerableMap(SkillID => Experience)\n    mapping(uint256 => EnumerableMapUpgradeable.UintToUintMap) private _skillMap;\n\n    function initialize(address hub) public initializer {\n        __HubControllable_init(hub);\n    }\n\n    /// @inheritdoc ISkillWallet\n    function getSkillCount(uint256 profileID) external view override returns (uint256) {\n        EnumerableMapUpgradeable.UintToUintMap storage map = _skillMap[profileID];\n        return map.length();\n    }\n\n    /// @inheritdoc ISkillWallet\n    function getSkill(uint256 profileID, uint256 index) external view override returns (uint256, uint256) {\n        EnumerableMapUpgradeable.UintToUintMap storage map = _skillMap[profileID];\n        return map.at(index);\n    }\n\n    /// @inheritdoc ISkillWallet\n    function recordExperience(uint256 profileID, uint256 skillID, uint256 amount) external override onlyHub {\n        EnumerableMapUpgradeable.UintToUintMap storage map = _skillMap[profileID];\n        (, uint256 currentExperience) = map.tryGet(skillID);\n        map.set(skillID, currentExperience + amount);\n    }\n}\n"},"contracts/profiles/TimeWallet.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\nimport \"../common/access/HubControllableUpgradeable.sol\";\nimport \"../common/interfaces/ITimeWallet.sol\";\nimport \"../common/libraries/Constants.sol\";\nimport \"../common/libraries/Errors.sol\";\n\ncontract TimeWallet is ITimeWallet, HubControllableUpgradeable {\n    mapping(uint256 => uint256) internal _lastTimeSlot;\n    mapping(uint256 => uint256) internal _totalTimeSinceLastTimeSlot;\n\n    function initialize(address hub) public initializer {\n        __HubControllable_init(hub);\n    }\n\n    function spendTimeFor(uint256 profileId, uint256 time) external override onlyHub {\n        if (time >= Constants.TIME_WALLET_SLOT_SIZE) revert Errors.ExceededLoggableTime();\n\n        // Get the current day from the genesis block\n        uint256 currentDay = block.timestamp / Constants.TIME_WALLET_SLOT_SIZE;\n\n        // If the user hasn't logged any hours today or it's a new day\n        if (_lastTimeSlot[profileId] < currentDay) {\n            _lastTimeSlot[profileId] = currentDay;\n            _totalTimeSinceLastTimeSlot[profileId] = time;\n        } else {\n            if (_totalTimeSinceLastTimeSlot[profileId] + time > Constants.TIME_WALLET_SLOT_SIZE)\n                revert Errors.ExceededLoggableTime();\n            _totalTimeSinceLastTimeSlot[profileId] += time;\n        }\n    }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200,"details":{"yul":true}},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","storageLayout"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"Initializable":[300],"OwnableUpgradeable":[131]},"id":132,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:0"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":132,"sourceUnit":2308,"src":"127:41:0","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":132,"sourceUnit":301,"src":"169:42:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Initializable","nameLocations":["748:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"748:13:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"748:13:0"},{"baseName":{"id":7,"name":"ContextUpgradeable","nameLocations":["763:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":2307,"src":"763:18:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"763:18:0"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"213:494:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n 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":131,"linearizedBaseContracts":[131,2307,300],"name":"OwnableUpgradeable","nameLocation":"726:18:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10,"mutability":"mutable","name":"_owner","nameLocation":"804:6:0","nodeType":"VariableDeclaration","scope":131,"src":"788:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"788:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":16,"name":"OwnershipTransferred","nameLocation":"823:20:0","nodeType":"EventDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"860:13:0","nodeType":"VariableDeclaration","scope":16,"src":"844:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11,"name":"address","nodeType":"ElementaryTypeName","src":"844:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"891:8:0","nodeType":"VariableDeclaration","scope":16,"src":"875:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"875:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:57:0"},"src":"817:84:0"},{"body":{"id":25,"nodeType":"Block","src":"1055:43:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"1065:24:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24,"nodeType":"ExpressionStatement","src":"1065:26:0"}]},"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"907:91:0","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":26,"implemented":true,"kind":"function","modifiers":[{"id":20,"kind":"modifierInvocation","modifierName":{"id":19,"name":"onlyInitializing","nameLocations":["1038:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"1038:16:0"},"nodeType":"ModifierInvocation","src":"1038:16:0"}],"name":"__Ownable_init","nameLocation":"1012:14:0","nodeType":"FunctionDefinition","parameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"1026:2:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[],"src":"1055:0:0"},"scope":131,"src":"1003:95:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":36,"nodeType":"Block","src":"1166:49:0","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":32,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"1195:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":33,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":31,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"1176:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":34,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1176:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35,"nodeType":"ExpressionStatement","src":"1176:32:0"}]},"id":37,"implemented":true,"kind":"function","modifiers":[{"id":29,"kind":"modifierInvocation","modifierName":{"id":28,"name":"onlyInitializing","nameLocations":["1149:16:0"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"1149:16:0"},"nodeType":"ModifierInvocation","src":"1149:16:0"}],"name":"__Ownable_init_unchained","nameLocation":"1113:24:0","nodeType":"FunctionDefinition","parameters":{"id":27,"nodeType":"ParameterList","parameters":[],"src":"1137:2:0"},"returnParameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"1166:0:0"},"scope":131,"src":"1104:111:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":44,"nodeType":"Block","src":"1324:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":40,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"1334:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42,"nodeType":"ExpressionStatement","src":"1334:13:0"},{"id":43,"nodeType":"PlaceholderStatement","src":"1357:1:0"}]},"documentation":{"id":38,"nodeType":"StructuredDocumentation","src":"1221:77:0","text":" @dev Throws if called by any account other than the owner."},"id":45,"name":"onlyOwner","nameLocation":"1312:9:0","nodeType":"ModifierDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"1321:2:0"},"src":"1303:62:0","virtual":false,"visibility":"internal"},{"body":{"id":53,"nodeType":"Block","src":"1496:30:0","statements":[{"expression":{"id":51,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"1513:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50,"id":52,"nodeType":"Return","src":"1506:13:0"}]},"documentation":{"id":46,"nodeType":"StructuredDocumentation","src":"1371:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":54,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1450:5:0","nodeType":"FunctionDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[],"src":"1455:2:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54,"src":"1487:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1486:9:0"},"scope":131,"src":"1441:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":67,"nodeType":"Block","src":"1644:85:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":59,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"1662:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":61,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"1673:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1662:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":64,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1687:34:0","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":58,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1654:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":65,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66,"nodeType":"ExpressionStatement","src":"1654:68:0"}]},"documentation":{"id":55,"nodeType":"StructuredDocumentation","src":"1532:62:0","text":" @dev Throws if the sender is not the owner."},"id":68,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1608:11:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[],"src":"1619:2:0"},"returnParameters":{"id":57,"nodeType":"ParameterList","parameters":[],"src":"1644:0:0"},"scope":131,"src":"1599:130:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":81,"nodeType":"Block","src":"2125:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":77,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2154:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:0","typeDescriptions":{}}},"id":78,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"2135:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"ExpressionStatement","src":"2135:30:0"}]},"documentation":{"id":69,"nodeType":"StructuredDocumentation","src":"1735:331:0","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":82,"implemented":true,"kind":"function","modifiers":[{"id":72,"kind":"modifierInvocation","modifierName":{"id":71,"name":"onlyOwner","nameLocations":["2115:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2115:9:0"},"nodeType":"ModifierInvocation","src":"2115:9:0"}],"name":"renounceOwnership","nameLocation":"2080:17:0","nodeType":"FunctionDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"2097:2:0"},"returnParameters":{"id":73,"nodeType":"ParameterList","parameters":[],"src":"2125:0:0"},"scope":131,"src":"2071:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":104,"nodeType":"Block","src":"2391:128:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"2409:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":93,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2421:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"2421:7:0","typeDescriptions":{}}},"id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2409:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":97,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2433:40:0","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":90,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2401:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2401:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99,"nodeType":"ExpressionStatement","src":"2401:73:0"},{"expression":{"arguments":[{"id":101,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"2503:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"2484:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":103,"nodeType":"ExpressionStatement","src":"2484:28:0"}]},"documentation":{"id":83,"nodeType":"StructuredDocumentation","src":"2178:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":105,"implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2381:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2381:9:0"},"nodeType":"ModifierInvocation","src":"2381:9:0"}],"name":"transferOwnership","nameLocation":"2330:17:0","nodeType":"FunctionDefinition","parameters":{"id":86,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85,"mutability":"mutable","name":"newOwner","nameLocation":"2356:8:0","nodeType":"VariableDeclaration","scope":105,"src":"2348:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:18:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2391:0:0"},"scope":131,"src":"2321:198:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":124,"nodeType":"Block","src":"2736:124:0","statements":[{"assignments":[112],"declarations":[{"constant":false,"id":112,"mutability":"mutable","name":"oldOwner","nameLocation":"2754:8:0","nodeType":"VariableDeclaration","scope":124,"src":"2746:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":111,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":114,"initialValue":{"id":113,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"2765:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2746:25:0"},{"expression":{"id":117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":115,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":116,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2790:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2781:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":118,"nodeType":"ExpressionStatement","src":"2781:17:0"},{"eventCall":{"arguments":[{"id":120,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2834:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2844:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":119,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"2813:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2813:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"EmitStatement","src":"2808:45:0"}]},"documentation":{"id":106,"nodeType":"StructuredDocumentation","src":"2525:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2682:18:0","nodeType":"FunctionDefinition","parameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"newOwner","nameLocation":"2709:8:0","nodeType":"VariableDeclaration","scope":125,"src":"2701:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2700:18:0"},"returnParameters":{"id":110,"nodeType":"ParameterList","parameters":[],"src":"2736:0:0"},"scope":131,"src":"2673:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2866:254:0","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":130,"mutability":"mutable","name":"__gap","nameLocation":"3145:5:0","nodeType":"VariableDeclaration","scope":131,"src":"3125:25:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":127,"name":"uint256","nodeType":"ElementaryTypeName","src":"3125:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":129,"length":{"hexValue":"3439","id":128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3133:2:0","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"3125:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":132,"src":"708:2445:0","usedErrors":[]}],"src":"102:3052:0"},"id":0},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"Initializable":[300]},"id":301,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":133,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:1"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":134,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":301,"sourceUnit":2266,"src":"138:44:1","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":135,"nodeType":"StructuredDocumentation","src":"184:2198:1","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":300,"linearizedBaseContracts":[300],"name":"Initializable","nameLocation":"2401:13:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"2421:109:1","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":138,"mutability":"mutable","name":"_initialized","nameLocation":"2549:12:1","nodeType":"VariableDeclaration","scope":300,"src":"2535:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":137,"name":"uint8","nodeType":"ElementaryTypeName","src":"2535:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":139,"nodeType":"StructuredDocumentation","src":"2568:91:1","text":" @dev Indicates that the contract is in the process of being initialized."},"id":141,"mutability":"mutable","name":"_initializing","nameLocation":"2677:13:1","nodeType":"VariableDeclaration","scope":300,"src":"2664:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":140,"name":"bool","nodeType":"ElementaryTypeName","src":"2664:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":142,"nodeType":"StructuredDocumentation","src":"2697:90:1","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","id":146,"name":"Initialized","nameLocation":"2798:11:1","nodeType":"EventDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":144,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2816:7:1","nodeType":"VariableDeclaration","scope":146,"src":"2810:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":143,"name":"uint8","nodeType":"ElementaryTypeName","src":"2810:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2809:15:1"},"src":"2792:33:1"},{"body":{"id":201,"nodeType":"Block","src":"3258:483:1","statements":[{"assignments":[150],"declarations":[{"constant":false,"id":150,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3273:14:1","nodeType":"VariableDeclaration","scope":201,"src":"3268:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":149,"name":"bool","nodeType":"ElementaryTypeName","src":"3268:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":153,"initialValue":{"id":152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3290:14:1","subExpression":{"id":151,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"3291:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3268:36:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":155,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"3336:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":156,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"3354:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3354:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3336:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3335:36:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3376:45:1","subExpression":{"arguments":[{"arguments":[{"id":165,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3415:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$300","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$300","typeString":"contract Initializable"}],"id":164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3407:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":163,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:1","typeDescriptions":{}}},"id":166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3407:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":161,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"3377:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$2265_$","typeString":"type(library AddressUpgradeable)"}},"id":162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3396:10:1","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":1999,"src":"3377:29:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":169,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"3425:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3441:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3425:17:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3376:66:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":173,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3375:68:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3335:108:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3457:48:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":154,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3314:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:201:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":177,"nodeType":"ExpressionStatement","src":"3314:201:1"},{"expression":{"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":178,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"3525:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3540:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3525:16:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":181,"nodeType":"ExpressionStatement","src":"3525:16:1"},{"condition":{"id":182,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"3555:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":188,"nodeType":"IfStatement","src":"3551:65:1","trueBody":{"id":187,"nodeType":"Block","src":"3571:45:1","statements":[{"expression":{"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":183,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"3585:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3601:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3585:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":186,"nodeType":"ExpressionStatement","src":"3585:20:1"}]}},{"id":189,"nodeType":"PlaceholderStatement","src":"3625:1:1"},{"condition":{"id":190,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150,"src":"3640:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":200,"nodeType":"IfStatement","src":"3636:99:1","trueBody":{"id":199,"nodeType":"Block","src":"3656:79:1","statements":[{"expression":{"id":193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":191,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"3670:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3686:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3670:21:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":194,"nodeType":"ExpressionStatement","src":"3670:21:1"},{"eventCall":{"arguments":[{"hexValue":"31","id":196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3722:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":195,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"3710:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3710:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":198,"nodeType":"EmitStatement","src":"3705:19:1"}]}}]},"documentation":{"id":147,"nodeType":"StructuredDocumentation","src":"2831:399:1","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"id":202,"name":"initializer","nameLocation":"3244:11:1","nodeType":"ModifierDefinition","parameters":{"id":148,"nodeType":"ParameterList","parameters":[],"src":"3255:2:1"},"src":"3235:506:1","virtual":false,"visibility":"internal"},{"body":{"id":234,"nodeType":"Block","src":"4852:255:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4870:14:1","subExpression":{"id":208,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"4871:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":210,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"4888:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":211,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"4903:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4888:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4870:40:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:48:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":207,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4862:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:99:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"ExpressionStatement","src":"4862:99:1"},{"expression":{"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":217,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"4971:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":218,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"4986:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4971:22:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":220,"nodeType":"ExpressionStatement","src":"4971:22:1"},{"expression":{"id":223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":221,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"5003:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5019:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5003:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":224,"nodeType":"ExpressionStatement","src":"5003:20:1"},{"id":225,"nodeType":"PlaceholderStatement","src":"5033:1:1"},{"expression":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":226,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"5044:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5060:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5044:21:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":229,"nodeType":"ExpressionStatement","src":"5044:21:1"},{"eventCall":{"arguments":[{"id":231,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"5092:7:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":230,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"5080:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5080:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":233,"nodeType":"EmitStatement","src":"5075:25:1"}]},"documentation":{"id":203,"nodeType":"StructuredDocumentation","src":"3747:1062:1","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":235,"name":"reinitializer","nameLocation":"4823:13:1","nodeType":"ModifierDefinition","parameters":{"id":206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"version","nameLocation":"4843:7:1","nodeType":"VariableDeclaration","scope":235,"src":"4837:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":204,"name":"uint8","nodeType":"ElementaryTypeName","src":"4837:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4836:15:1"},"src":"4814:293:1","virtual":false,"visibility":"internal"},{"body":{"id":244,"nodeType":"Block","src":"5345:97:1","statements":[{"expression":{"arguments":[{"id":239,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"5363:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5378:45:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":238,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5355:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5355:69:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":242,"nodeType":"ExpressionStatement","src":"5355:69:1"},{"id":243,"nodeType":"PlaceholderStatement","src":"5434:1:1"}]},"documentation":{"id":236,"nodeType":"StructuredDocumentation","src":"5113:199:1","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":245,"name":"onlyInitializing","nameLocation":"5326:16:1","nodeType":"ModifierDefinition","parameters":{"id":237,"nodeType":"ParameterList","parameters":[],"src":"5342:2:1"},"src":"5317:125:1","virtual":false,"visibility":"internal"},{"body":{"id":280,"nodeType":"Block","src":"5977:230:1","statements":[{"expression":{"arguments":[{"id":251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5995:14:1","subExpression":{"id":250,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"5996:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6011:41:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5987:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5987:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"ExpressionStatement","src":"5987:66:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":255,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"6067:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6087:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":257,"name":"uint8","nodeType":"ElementaryTypeName","src":"6087:5:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":256,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6082:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6082:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6094:3:1","memberName":"max","nodeType":"MemberAccess","src":"6082:15:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6067:30:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":279,"nodeType":"IfStatement","src":"6063:138:1","trueBody":{"id":278,"nodeType":"Block","src":"6099:102:1","statements":[{"expression":{"id":268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":262,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"6113:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":264,"name":"uint8","nodeType":"ElementaryTypeName","src":"6133:5:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":263,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6128:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6140:3:1","memberName":"max","nodeType":"MemberAccess","src":"6128:15:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6113:30:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":269,"nodeType":"ExpressionStatement","src":"6113:30:1"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6179:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":272,"name":"uint8","nodeType":"ElementaryTypeName","src":"6179:5:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":271,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6174:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6186:3:1","memberName":"max","nodeType":"MemberAccess","src":"6174:15:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":270,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"6162:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6162:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":277,"nodeType":"EmitStatement","src":"6157:33:1"}]}}]},"documentation":{"id":246,"nodeType":"StructuredDocumentation","src":"5448:475:1","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":281,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5937:20:1","nodeType":"FunctionDefinition","parameters":{"id":247,"nodeType":"ParameterList","parameters":[],"src":"5957:2:1"},"returnParameters":{"id":248,"nodeType":"ParameterList","parameters":[],"src":"5977:0:1"},"scope":300,"src":"5928:279:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":289,"nodeType":"Block","src":"6381:36:1","statements":[{"expression":{"id":287,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"6398:12:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":286,"id":288,"nodeType":"Return","src":"6391:19:1"}]},"documentation":{"id":282,"nodeType":"StructuredDocumentation","src":"6213:99:1","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":290,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6326:22:1","nodeType":"FunctionDefinition","parameters":{"id":283,"nodeType":"ParameterList","parameters":[],"src":"6348:2:1"},"returnParameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":290,"src":"6374:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":284,"name":"uint8","nodeType":"ElementaryTypeName","src":"6374:5:1","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6373:7:1"},"scope":300,"src":"6317:100:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":298,"nodeType":"Block","src":"6589:37:1","statements":[{"expression":{"id":296,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":141,"src":"6606:13:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":295,"id":297,"nodeType":"Return","src":"6599:20:1"}]},"documentation":{"id":291,"nodeType":"StructuredDocumentation","src":"6423:105:1","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":299,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6542:15:1","nodeType":"FunctionDefinition","parameters":{"id":292,"nodeType":"ParameterList","parameters":[],"src":"6557:2:1"},"returnParameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":299,"src":"6583:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":293,"name":"bool","nodeType":"ElementaryTypeName","src":"6583:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6582:6:1"},"scope":300,"src":"6533:93:1","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":301,"src":"2383:4245:1","usedErrors":[]}],"src":"113:6516:1"},"id":1},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"ERC165Upgradeable":[2526],"ERC721Upgradeable":[1270],"IERC165Upgradeable":[2538],"IERC721MetadataUpgradeable":[1981],"IERC721ReceiverUpgradeable":[1288],"IERC721Upgradeable":[1404],"Initializable":[300],"MathUpgradeable":[3403],"StringsUpgradeable":[2482]},"id":1271,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":302,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:2"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"./IERC721Upgradeable.sol","id":303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":1405,"src":"132:34:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol","file":"./IERC721ReceiverUpgradeable.sol","id":304,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":1289,"src":"167:42:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","file":"./extensions/IERC721MetadataUpgradeable.sol","id":305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":1982,"src":"210:53:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","id":306,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":2266,"src":"264:44:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../../utils/ContextUpgradeable.sol","id":307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":2308,"src":"309:44:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol","file":"../../utils/StringsUpgradeable.sol","id":308,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":2483,"src":"354:44:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","file":"../../utils/introspection/ERC165Upgradeable.sol","id":309,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":2527,"src":"399:57:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":310,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1271,"sourceUnit":301,"src":"457:45:2","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":312,"name":"Initializable","nameLocations":["781:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"781:13:2"},"id":313,"nodeType":"InheritanceSpecifier","src":"781:13:2"},{"baseName":{"id":314,"name":"ContextUpgradeable","nameLocations":["796:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":2307,"src":"796:18:2"},"id":315,"nodeType":"InheritanceSpecifier","src":"796:18:2"},{"baseName":{"id":316,"name":"ERC165Upgradeable","nameLocations":["816:17:2"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"816:17:2"},"id":317,"nodeType":"InheritanceSpecifier","src":"816:17:2"},{"baseName":{"id":318,"name":"IERC721Upgradeable","nameLocations":["835:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":1404,"src":"835:18:2"},"id":319,"nodeType":"InheritanceSpecifier","src":"835:18:2"},{"baseName":{"id":320,"name":"IERC721MetadataUpgradeable","nameLocations":["855:26:2"],"nodeType":"IdentifierPath","referencedDeclaration":1981,"src":"855:26:2"},"id":321,"nodeType":"InheritanceSpecifier","src":"855:26:2"}],"canonicalName":"ERC721Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":311,"nodeType":"StructuredDocumentation","src":"504:246:2","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":1270,"linearizedBaseContracts":[1270,1981,1404,2526,2538,2307,300],"name":"ERC721Upgradeable","nameLocation":"760:17:2","nodeType":"ContractDefinition","nodes":[{"global":false,"id":324,"libraryName":{"id":322,"name":"AddressUpgradeable","nameLocations":["894:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":2265,"src":"894:18:2"},"nodeType":"UsingForDirective","src":"888:37:2","typeName":{"id":323,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":327,"libraryName":{"id":325,"name":"StringsUpgradeable","nameLocations":["936:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"936:18:2"},"nodeType":"UsingForDirective","src":"930:37:2","typeName":{"id":326,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":329,"mutability":"mutable","name":"_name","nameLocation":"1006:5:2","nodeType":"VariableDeclaration","scope":1270,"src":"991:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":328,"name":"string","nodeType":"ElementaryTypeName","src":"991:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":331,"mutability":"mutable","name":"_symbol","nameLocation":"1053:7:2","nodeType":"VariableDeclaration","scope":1270,"src":"1038:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":330,"name":"string","nodeType":"ElementaryTypeName","src":"1038:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":335,"mutability":"mutable","name":"_owners","nameLocation":"1149:7:2","nodeType":"VariableDeclaration","scope":1270,"src":"1113:43:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":334,"keyType":{"id":332,"name":"uint256","nodeType":"ElementaryTypeName","src":"1121:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1113:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"1132:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":339,"mutability":"mutable","name":"_balances","nameLocation":"1243:9:2","nodeType":"VariableDeclaration","scope":1270,"src":"1207:45:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":338,"keyType":{"id":336,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1207:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":343,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1344:15:2","nodeType":"VariableDeclaration","scope":1270,"src":"1308:51:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":342,"keyType":{"id":340,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1308:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":341,"name":"address","nodeType":"ElementaryTypeName","src":"1327:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":349,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1467:18:2","nodeType":"VariableDeclaration","scope":1270,"src":"1414:71:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":348,"keyType":{"id":344,"name":"address","nodeType":"ElementaryTypeName","src":"1422:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1414:44:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":347,"keyType":{"id":345,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1433:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":346,"name":"bool","nodeType":"ElementaryTypeName","src":"1452:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":364,"nodeType":"Block","src":"1698:56:2","statements":[{"expression":{"arguments":[{"id":360,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"1732:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":361,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"1739:7:2","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"}],"id":359,"name":"__ERC721_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":383,"src":"1708:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":363,"nodeType":"ExpressionStatement","src":"1708:39:2"}]},"documentation":{"id":350,"nodeType":"StructuredDocumentation","src":"1492:108:2","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":365,"implemented":true,"kind":"function","modifiers":[{"id":357,"kind":"modifierInvocation","modifierName":{"id":356,"name":"onlyInitializing","nameLocations":["1681:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"1681:16:2"},"nodeType":"ModifierInvocation","src":"1681:16:2"}],"name":"__ERC721_init","nameLocation":"1614:13:2","nodeType":"FunctionDefinition","parameters":{"id":355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":352,"mutability":"mutable","name":"name_","nameLocation":"1642:5:2","nodeType":"VariableDeclaration","scope":365,"src":"1628:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":351,"name":"string","nodeType":"ElementaryTypeName","src":"1628:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":354,"mutability":"mutable","name":"symbol_","nameLocation":"1663:7:2","nodeType":"VariableDeclaration","scope":365,"src":"1649:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":353,"name":"string","nodeType":"ElementaryTypeName","src":"1649:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1627:44:2"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[],"src":"1698:0:2"},"scope":1270,"src":"1605:149:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":382,"nodeType":"Block","src":"1863:57:2","statements":[{"expression":{"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":374,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":329,"src":"1873:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":375,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"1881:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1873:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":377,"nodeType":"ExpressionStatement","src":"1873:13:2"},{"expression":{"id":380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":378,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":331,"src":"1896:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":379,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":369,"src":"1906:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1896:17:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":381,"nodeType":"ExpressionStatement","src":"1896:17:2"}]},"id":383,"implemented":true,"kind":"function","modifiers":[{"id":372,"kind":"modifierInvocation","modifierName":{"id":371,"name":"onlyInitializing","nameLocations":["1846:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"1846:16:2"},"nodeType":"ModifierInvocation","src":"1846:16:2"}],"name":"__ERC721_init_unchained","nameLocation":"1769:23:2","nodeType":"FunctionDefinition","parameters":{"id":370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":367,"mutability":"mutable","name":"name_","nameLocation":"1807:5:2","nodeType":"VariableDeclaration","scope":383,"src":"1793:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":366,"name":"string","nodeType":"ElementaryTypeName","src":"1793:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":369,"mutability":"mutable","name":"symbol_","nameLocation":"1828:7:2","nodeType":"VariableDeclaration","scope":383,"src":"1814:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":368,"name":"string","nodeType":"ElementaryTypeName","src":"1814:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1792:44:2"},"returnParameters":{"id":373,"nodeType":"ParameterList","parameters":[],"src":"1863:0:2"},"scope":1270,"src":"1760:160:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2520,2537],"body":{"id":413,"nodeType":"Block","src":"2117:214:2","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":394,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":386,"src":"2146:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":396,"name":"IERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1404,"src":"2166:18:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$1404_$","typeString":"type(contract IERC721Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Upgradeable_$1404_$","typeString":"type(contract IERC721Upgradeable)"}],"id":395,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2161:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2161:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Upgradeable_$1404","typeString":"type(contract IERC721Upgradeable)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2186:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"2161:36:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2146:51:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":400,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":386,"src":"2213:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":402,"name":"IERC721MetadataUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"2233:26:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$1981_$","typeString":"type(contract IERC721MetadataUpgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721MetadataUpgradeable_$1981_$","typeString":"type(contract IERC721MetadataUpgradeable)"}],"id":401,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2228:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721MetadataUpgradeable_$1981","typeString":"type(contract IERC721MetadataUpgradeable)"}},"id":404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2261:11:2","memberName":"interfaceId","nodeType":"MemberAccess","src":"2228:44:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2213:59:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2146:126:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":409,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":386,"src":"2312:11:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":407,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2288:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Upgradeable_$1270_$","typeString":"type(contract super ERC721Upgradeable)"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2294:17:2","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2520,"src":"2288:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2146:178:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":393,"id":412,"nodeType":"Return","src":"2127:197:2"}]},"documentation":{"id":384,"nodeType":"StructuredDocumentation","src":"1926:56:2","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":414,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1996:17:2","nodeType":"FunctionDefinition","overrides":{"id":390,"nodeType":"OverrideSpecifier","overrides":[{"id":388,"name":"ERC165Upgradeable","nameLocations":["2063:17:2"],"nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"2063:17:2"},{"id":389,"name":"IERC165Upgradeable","nameLocations":["2082:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":2538,"src":"2082:18:2"}],"src":"2054:47:2"},"parameters":{"id":387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":386,"mutability":"mutable","name":"interfaceId","nameLocation":"2021:11:2","nodeType":"VariableDeclaration","scope":414,"src":"2014:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":385,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2014:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2013:20:2"},"returnParameters":{"id":393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":414,"src":"2111:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":391,"name":"bool","nodeType":"ElementaryTypeName","src":"2111:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2110:6:2"},"scope":1270,"src":"1987:344:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1329],"body":{"id":437,"nodeType":"Block","src":"2471:123:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":424,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2489:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2506:1:2","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":426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2498:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"2498:7:2","typeDescriptions":{}}},"id":428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2498:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2489:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2510:43:2","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":423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2481:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2481:73:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":432,"nodeType":"ExpressionStatement","src":"2481:73:2"},{"expression":{"baseExpression":{"id":433,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"2571:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":435,"indexExpression":{"id":434,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2581:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2571:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":422,"id":436,"nodeType":"Return","src":"2564:23:2"}]},"documentation":{"id":415,"nodeType":"StructuredDocumentation","src":"2337:48:2","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":438,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2399:9:2","nodeType":"FunctionDefinition","overrides":{"id":419,"nodeType":"OverrideSpecifier","overrides":[],"src":"2444:8:2"},"parameters":{"id":418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":417,"mutability":"mutable","name":"owner","nameLocation":"2417:5:2","nodeType":"VariableDeclaration","scope":438,"src":"2409:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":416,"name":"address","nodeType":"ElementaryTypeName","src":"2409:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2408:15:2"},"returnParameters":{"id":422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":438,"src":"2462:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2461:9:2"},"scope":1270,"src":"2390:204:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1337],"body":{"id":465,"nodeType":"Block","src":"2732:138:2","statements":[{"assignments":[448],"declarations":[{"constant":false,"id":448,"mutability":"mutable","name":"owner","nameLocation":"2750:5:2","nodeType":"VariableDeclaration","scope":465,"src":"2742:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":447,"name":"address","nodeType":"ElementaryTypeName","src":"2742:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":452,"initialValue":{"arguments":[{"id":450,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":441,"src":"2767:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":449,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"2758:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2758:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2742:33:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":454,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"2793:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2810:1:2","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":456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2802:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":455,"name":"address","nodeType":"ElementaryTypeName","src":"2802:7:2","typeDescriptions":{}}},"id":458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2802:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2793:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2814:26:2","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":453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2785:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":462,"nodeType":"ExpressionStatement","src":"2785:56:2"},{"expression":{"id":463,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":448,"src":"2858:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":446,"id":464,"nodeType":"Return","src":"2851:12:2"}]},"documentation":{"id":439,"nodeType":"StructuredDocumentation","src":"2600:46:2","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":466,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2660:7:2","nodeType":"FunctionDefinition","overrides":{"id":443,"nodeType":"OverrideSpecifier","overrides":[],"src":"2705:8:2"},"parameters":{"id":442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":441,"mutability":"mutable","name":"tokenId","nameLocation":"2676:7:2","nodeType":"VariableDeclaration","scope":466,"src":"2668:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":440,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:17:2"},"returnParameters":{"id":446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":466,"src":"2723:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":444,"name":"address","nodeType":"ElementaryTypeName","src":"2723:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2722:9:2"},"scope":1270,"src":"2651:219:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1966],"body":{"id":475,"nodeType":"Block","src":"3001:29:2","statements":[{"expression":{"id":473,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":329,"src":"3018:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":472,"id":474,"nodeType":"Return","src":"3011:12:2"}]},"documentation":{"id":467,"nodeType":"StructuredDocumentation","src":"2876:51:2","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":476,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2941:4:2","nodeType":"FunctionDefinition","overrides":{"id":469,"nodeType":"OverrideSpecifier","overrides":[],"src":"2968:8:2"},"parameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"2945:2:2"},"returnParameters":{"id":472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":476,"src":"2986:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":470,"name":"string","nodeType":"ElementaryTypeName","src":"2986:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2985:15:2"},"scope":1270,"src":"2932:98:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1972],"body":{"id":485,"nodeType":"Block","src":"3165:31:2","statements":[{"expression":{"id":483,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":331,"src":"3182:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":482,"id":484,"nodeType":"Return","src":"3175:14:2"}]},"documentation":{"id":477,"nodeType":"StructuredDocumentation","src":"3036:53:2","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":486,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"3103:6:2","nodeType":"FunctionDefinition","overrides":{"id":479,"nodeType":"OverrideSpecifier","overrides":[],"src":"3132:8:2"},"parameters":{"id":478,"nodeType":"ParameterList","parameters":[],"src":"3109:2:2"},"returnParameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":486,"src":"3150:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":480,"name":"string","nodeType":"ElementaryTypeName","src":"3150:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3149:15:2"},"scope":1270,"src":"3094:102:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1980],"body":{"id":524,"nodeType":"Block","src":"3350:188:2","statements":[{"expression":{"arguments":[{"id":496,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"3375:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":495,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"3360:14:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3360:23:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":498,"nodeType":"ExpressionStatement","src":"3360:23:2"},{"assignments":[500],"declarations":[{"constant":false,"id":500,"mutability":"mutable","name":"baseURI","nameLocation":"3408:7:2","nodeType":"VariableDeclaration","scope":524,"src":"3394:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":499,"name":"string","nodeType":"ElementaryTypeName","src":"3394:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":503,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":501,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"3418:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3394:34:2"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":506,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"3451:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3445:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":504,"name":"bytes","nodeType":"ElementaryTypeName","src":"3445:5:2","typeDescriptions":{}}},"id":507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3460:6:2","memberName":"length","nodeType":"MemberAccess","src":"3445:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3469:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3445:25:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3529:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3445:86:2","trueExpression":{"arguments":[{"arguments":[{"id":515,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"3497:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":516,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"3506:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3514:8:2","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2365,"src":"3506:16:2","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":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3506:18:2","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":513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3480:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3484:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"3480:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3480:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3473:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":511,"name":"string","nodeType":"ElementaryTypeName","src":"3473:6:2","typeDescriptions":{}}},"id":520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3473:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":494,"id":523,"nodeType":"Return","src":"3438:93:2"}]},"documentation":{"id":487,"nodeType":"StructuredDocumentation","src":"3202:55:2","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":525,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"3271:8:2","nodeType":"FunctionDefinition","overrides":{"id":491,"nodeType":"OverrideSpecifier","overrides":[],"src":"3317:8:2"},"parameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":489,"mutability":"mutable","name":"tokenId","nameLocation":"3288:7:2","nodeType":"VariableDeclaration","scope":525,"src":"3280:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":488,"name":"uint256","nodeType":"ElementaryTypeName","src":"3280:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3279:17:2"},"returnParameters":{"id":494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":525,"src":"3335:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":492,"name":"string","nodeType":"ElementaryTypeName","src":"3335:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3334:15:2"},"scope":1270,"src":"3262:276:2","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":533,"nodeType":"Block","src":"3846:26:2","statements":[{"expression":{"hexValue":"","id":531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3863:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":530,"id":532,"nodeType":"Return","src":"3856:9:2"}]},"documentation":{"id":526,"nodeType":"StructuredDocumentation","src":"3544:231:2","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":534,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3789:8:2","nodeType":"FunctionDefinition","parameters":{"id":527,"nodeType":"ParameterList","parameters":[],"src":"3797:2:2"},"returnParameters":{"id":530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":534,"src":"3831:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":528,"name":"string","nodeType":"ElementaryTypeName","src":"3831:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3830:15:2"},"scope":1270,"src":"3780:92:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1377],"body":{"id":576,"nodeType":"Block","src":"3999:347:2","statements":[{"assignments":[544],"declarations":[{"constant":false,"id":544,"mutability":"mutable","name":"owner","nameLocation":"4017:5:2","nodeType":"VariableDeclaration","scope":576,"src":"4009:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":543,"name":"address","nodeType":"ElementaryTypeName","src":"4009:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":549,"initialValue":{"arguments":[{"id":547,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"4051:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":545,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"4025:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"4025:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4009:50:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":551,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":537,"src":"4077:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":552,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"4083:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4077:11:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4090:35:2","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":550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4069:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":556,"nodeType":"ExpressionStatement","src":"4069:57:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":558,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"4158:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":560,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"4174:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4158:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":563,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":544,"src":"4200:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":564,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"4207:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4207:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":562,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"4183:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4183:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4158:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","id":568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4234:63:2","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":557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4137:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4137:170:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":570,"nodeType":"ExpressionStatement","src":"4137:170:2"},{"expression":{"arguments":[{"id":572,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":537,"src":"4327:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":573,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":539,"src":"4331:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":571,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"4318:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4318:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":575,"nodeType":"ExpressionStatement","src":"4318:21:2"}]},"documentation":{"id":535,"nodeType":"StructuredDocumentation","src":"3878:46:2","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":577,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3938:7:2","nodeType":"FunctionDefinition","overrides":{"id":541,"nodeType":"OverrideSpecifier","overrides":[],"src":"3990:8:2"},"parameters":{"id":540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":537,"mutability":"mutable","name":"to","nameLocation":"3954:2:2","nodeType":"VariableDeclaration","scope":577,"src":"3946:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":536,"name":"address","nodeType":"ElementaryTypeName","src":"3946:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":539,"mutability":"mutable","name":"tokenId","nameLocation":"3966:7:2","nodeType":"VariableDeclaration","scope":577,"src":"3958:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":538,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3945:29:2"},"returnParameters":{"id":542,"nodeType":"ParameterList","parameters":[],"src":"3999:0:2"},"scope":1270,"src":"3929:417:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1393],"body":{"id":594,"nodeType":"Block","src":"4492:82:2","statements":[{"expression":{"arguments":[{"id":587,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"4517:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":586,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"4502:14:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4502:23:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":589,"nodeType":"ExpressionStatement","src":"4502:23:2"},{"expression":{"baseExpression":{"id":590,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"4543:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":592,"indexExpression":{"id":591,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":580,"src":"4559:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4543:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":585,"id":593,"nodeType":"Return","src":"4536:31:2"}]},"documentation":{"id":578,"nodeType":"StructuredDocumentation","src":"4352:50:2","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":595,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4416:11:2","nodeType":"FunctionDefinition","overrides":{"id":582,"nodeType":"OverrideSpecifier","overrides":[],"src":"4465:8:2"},"parameters":{"id":581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":580,"mutability":"mutable","name":"tokenId","nameLocation":"4436:7:2","nodeType":"VariableDeclaration","scope":595,"src":"4428:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":579,"name":"uint256","nodeType":"ElementaryTypeName","src":"4428:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4427:17:2"},"returnParameters":{"id":585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":595,"src":"4483:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":583,"name":"address","nodeType":"ElementaryTypeName","src":"4483:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4482:9:2"},"scope":1270,"src":"4407:167:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1385],"body":{"id":611,"nodeType":"Block","src":"4725:69:2","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":605,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"4754:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":607,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":598,"src":"4768:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":608,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"4778:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":604,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"4735:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":610,"nodeType":"ExpressionStatement","src":"4735:52:2"}]},"documentation":{"id":596,"nodeType":"StructuredDocumentation","src":"4580:56:2","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":612,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4650:17:2","nodeType":"FunctionDefinition","overrides":{"id":602,"nodeType":"OverrideSpecifier","overrides":[],"src":"4716:8:2"},"parameters":{"id":601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":598,"mutability":"mutable","name":"operator","nameLocation":"4676:8:2","nodeType":"VariableDeclaration","scope":612,"src":"4668:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":597,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":600,"mutability":"mutable","name":"approved","nameLocation":"4691:8:2","nodeType":"VariableDeclaration","scope":612,"src":"4686:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":599,"name":"bool","nodeType":"ElementaryTypeName","src":"4686:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4667:33:2"},"returnParameters":{"id":603,"nodeType":"ParameterList","parameters":[],"src":"4725:0:2"},"scope":1270,"src":"4641:153:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1403],"body":{"id":629,"nodeType":"Block","src":"4963:59:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":623,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"4980:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":625,"indexExpression":{"id":624,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4999:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4980:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":627,"indexExpression":{"id":626,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"5006:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4980:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":622,"id":628,"nodeType":"Return","src":"4973:42:2"}]},"documentation":{"id":613,"nodeType":"StructuredDocumentation","src":"4800:55:2","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":630,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4869:16:2","nodeType":"FunctionDefinition","overrides":{"id":619,"nodeType":"OverrideSpecifier","overrides":[],"src":"4939:8:2"},"parameters":{"id":618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":615,"mutability":"mutable","name":"owner","nameLocation":"4894:5:2","nodeType":"VariableDeclaration","scope":630,"src":"4886:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":614,"name":"address","nodeType":"ElementaryTypeName","src":"4886:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":617,"mutability":"mutable","name":"operator","nameLocation":"4909:8:2","nodeType":"VariableDeclaration","scope":630,"src":"4901:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":616,"name":"address","nodeType":"ElementaryTypeName","src":"4901:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4885:33:2"},"returnParameters":{"id":622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":630,"src":"4957:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":620,"name":"bool","nodeType":"ElementaryTypeName","src":"4957:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4956:6:2"},"scope":1270,"src":"4860:162:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1369],"body":{"id":656,"nodeType":"Block","src":"5203:207:2","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":643,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"5292:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5292:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":645,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"5306:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":642,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"5273:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5273:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5316:47:2","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":641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5265:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5265:99:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":649,"nodeType":"ExpressionStatement","src":"5265:99:2"},{"expression":{"arguments":[{"id":651,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":633,"src":"5385:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":652,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"5391:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":653,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":637,"src":"5395:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":650,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"5375:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":655,"nodeType":"ExpressionStatement","src":"5375:28:2"}]},"documentation":{"id":631,"nodeType":"StructuredDocumentation","src":"5028:51:2","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":657,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5093:12:2","nodeType":"FunctionDefinition","overrides":{"id":639,"nodeType":"OverrideSpecifier","overrides":[],"src":"5194:8:2"},"parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":633,"mutability":"mutable","name":"from","nameLocation":"5123:4:2","nodeType":"VariableDeclaration","scope":657,"src":"5115:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":632,"name":"address","nodeType":"ElementaryTypeName","src":"5115:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":635,"mutability":"mutable","name":"to","nameLocation":"5145:2:2","nodeType":"VariableDeclaration","scope":657,"src":"5137:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":634,"name":"address","nodeType":"ElementaryTypeName","src":"5137:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":637,"mutability":"mutable","name":"tokenId","nameLocation":"5165:7:2","nodeType":"VariableDeclaration","scope":657,"src":"5157:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":636,"name":"uint256","nodeType":"ElementaryTypeName","src":"5157:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5105:73:2"},"returnParameters":{"id":640,"nodeType":"ParameterList","parameters":[],"src":"5203:0:2"},"scope":1270,"src":"5084:326:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1359],"body":{"id":675,"nodeType":"Block","src":"5599:56:2","statements":[{"expression":{"arguments":[{"id":669,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"5626:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":670,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":662,"src":"5632:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":671,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":664,"src":"5636:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5645:2:2","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":668,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[676,706],"referencedDeclaration":706,"src":"5609:16:2","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":673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5609:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":674,"nodeType":"ExpressionStatement","src":"5609:39:2"}]},"documentation":{"id":658,"nodeType":"StructuredDocumentation","src":"5416:55:2","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":676,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5485:16:2","nodeType":"FunctionDefinition","overrides":{"id":666,"nodeType":"OverrideSpecifier","overrides":[],"src":"5590:8:2"},"parameters":{"id":665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":660,"mutability":"mutable","name":"from","nameLocation":"5519:4:2","nodeType":"VariableDeclaration","scope":676,"src":"5511:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":659,"name":"address","nodeType":"ElementaryTypeName","src":"5511:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":662,"mutability":"mutable","name":"to","nameLocation":"5541:2:2","nodeType":"VariableDeclaration","scope":676,"src":"5533:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":661,"name":"address","nodeType":"ElementaryTypeName","src":"5533:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":664,"mutability":"mutable","name":"tokenId","nameLocation":"5561:7:2","nodeType":"VariableDeclaration","scope":676,"src":"5553:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":663,"name":"uint256","nodeType":"ElementaryTypeName","src":"5553:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5501:73:2"},"returnParameters":{"id":667,"nodeType":"ParameterList","parameters":[],"src":"5599:0:2"},"scope":1270,"src":"5476:179:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1349],"body":{"id":705,"nodeType":"Block","src":"5871:164:2","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":691,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"5908:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5908:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":693,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"5922:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":690,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"5889:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5889:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5932:47:2","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":689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5881:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5881:99:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":697,"nodeType":"ExpressionStatement","src":"5881:99:2"},{"expression":{"arguments":[{"id":699,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"6004:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":700,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"6010:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":701,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"6014:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":702,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"6023:4:2","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":698,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":735,"src":"5990:13:2","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":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5990:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":704,"nodeType":"ExpressionStatement","src":"5990:38:2"}]},"documentation":{"id":677,"nodeType":"StructuredDocumentation","src":"5661:55:2","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":706,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5730:16:2","nodeType":"FunctionDefinition","overrides":{"id":687,"nodeType":"OverrideSpecifier","overrides":[],"src":"5862:8:2"},"parameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"from","nameLocation":"5764:4:2","nodeType":"VariableDeclaration","scope":706,"src":"5756:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":678,"name":"address","nodeType":"ElementaryTypeName","src":"5756:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"to","nameLocation":"5786:2:2","nodeType":"VariableDeclaration","scope":706,"src":"5778:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":680,"name":"address","nodeType":"ElementaryTypeName","src":"5778:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":683,"mutability":"mutable","name":"tokenId","nameLocation":"5806:7:2","nodeType":"VariableDeclaration","scope":706,"src":"5798:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":682,"name":"uint256","nodeType":"ElementaryTypeName","src":"5798:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":685,"mutability":"mutable","name":"data","nameLocation":"5836:4:2","nodeType":"VariableDeclaration","scope":706,"src":"5823:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":684,"name":"bytes","nodeType":"ElementaryTypeName","src":"5823:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5746:100:2"},"returnParameters":{"id":688,"nodeType":"ParameterList","parameters":[],"src":"5871:0:2"},"scope":1270,"src":"5721:314:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":734,"nodeType":"Block","src":"7036:165:2","statements":[{"expression":{"arguments":[{"id":719,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"7056:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":720,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"7062:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":721,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"7066:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":718,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"7046:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7046:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":723,"nodeType":"ExpressionStatement","src":"7046:28:2"},{"expression":{"arguments":[{"arguments":[{"id":726,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"7115:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":727,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"7121:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":728,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"7125:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":729,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"7134:4:2","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":725,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"7092:22:2","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":730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7092:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7141:52:2","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":724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7084:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7084:110:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":733,"nodeType":"ExpressionStatement","src":"7084:110:2"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"6041:850:2","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":735,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6905:13:2","nodeType":"FunctionDefinition","parameters":{"id":716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"from","nameLocation":"6936:4:2","nodeType":"VariableDeclaration","scope":735,"src":"6928:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"6928:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"to","nameLocation":"6958:2:2","nodeType":"VariableDeclaration","scope":735,"src":"6950:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":710,"name":"address","nodeType":"ElementaryTypeName","src":"6950:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":713,"mutability":"mutable","name":"tokenId","nameLocation":"6978:7:2","nodeType":"VariableDeclaration","scope":735,"src":"6970:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":712,"name":"uint256","nodeType":"ElementaryTypeName","src":"6970:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":715,"mutability":"mutable","name":"data","nameLocation":"7008:4:2","nodeType":"VariableDeclaration","scope":735,"src":"6995:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":714,"name":"bytes","nodeType":"ElementaryTypeName","src":"6995:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6918:100:2"},"returnParameters":{"id":717,"nodeType":"ParameterList","parameters":[],"src":"7036:0:2"},"scope":1270,"src":"6896:305:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":747,"nodeType":"Block","src":"7385:40:2","statements":[{"expression":{"baseExpression":{"id":743,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":335,"src":"7402:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":745,"indexExpression":{"id":744,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"7410:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7402:16:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":742,"id":746,"nodeType":"Return","src":"7395:23:2"}]},"documentation":{"id":736,"nodeType":"StructuredDocumentation","src":"7207:98:2","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist"},"id":748,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"7319:8:2","nodeType":"FunctionDefinition","parameters":{"id":739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":738,"mutability":"mutable","name":"tokenId","nameLocation":"7336:7:2","nodeType":"VariableDeclaration","scope":748,"src":"7328:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":737,"name":"uint256","nodeType":"ElementaryTypeName","src":"7328:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7327:17:2"},"returnParameters":{"id":742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":748,"src":"7376:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":740,"name":"address","nodeType":"ElementaryTypeName","src":"7376:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7375:9:2"},"scope":1270,"src":"7310:115:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":765,"nodeType":"Block","src":"7799:55:2","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":757,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":751,"src":"7825:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":756,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"7816:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7816:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7845:1:2","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":760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7837:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":759,"name":"address","nodeType":"ElementaryTypeName","src":"7837:7:2","typeDescriptions":{}}},"id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7816:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":755,"id":764,"nodeType":"Return","src":"7809:38:2"}]},"documentation":{"id":749,"nodeType":"StructuredDocumentation","src":"7431:292:2","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":766,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7737:7:2","nodeType":"FunctionDefinition","parameters":{"id":752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":751,"mutability":"mutable","name":"tokenId","nameLocation":"7753:7:2","nodeType":"VariableDeclaration","scope":766,"src":"7745:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":750,"name":"uint256","nodeType":"ElementaryTypeName","src":"7745:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7744:17:2"},"returnParameters":{"id":755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":766,"src":"7793:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":753,"name":"bool","nodeType":"ElementaryTypeName","src":"7793:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7792:6:2"},"scope":1270,"src":"7728:126:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":799,"nodeType":"Block","src":"8111:173:2","statements":[{"assignments":[777],"declarations":[{"constant":false,"id":777,"mutability":"mutable","name":"owner","nameLocation":"8129:5:2","nodeType":"VariableDeclaration","scope":799,"src":"8121:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"8121:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":782,"initialValue":{"arguments":[{"id":780,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":771,"src":"8163:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":778,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"8137:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8155:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"8137:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8137:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8121:50:2"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":783,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8189:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":784,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"8200:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8189:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":787,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":777,"src":"8226:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":788,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8233:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":786,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"8209:16:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8209:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8189:52:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":792,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":771,"src":"8257:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":791,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"8245:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8245:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":794,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8269:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8245:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8189:87:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":797,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8188:89:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":775,"id":798,"nodeType":"Return","src":"8181:96:2"}]},"documentation":{"id":767,"nodeType":"StructuredDocumentation","src":"7860:147:2","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":800,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"8021:18:2","nodeType":"FunctionDefinition","parameters":{"id":772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":769,"mutability":"mutable","name":"spender","nameLocation":"8048:7:2","nodeType":"VariableDeclaration","scope":800,"src":"8040:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":768,"name":"address","nodeType":"ElementaryTypeName","src":"8040:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":771,"mutability":"mutable","name":"tokenId","nameLocation":"8065:7:2","nodeType":"VariableDeclaration","scope":800,"src":"8057:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":770,"name":"uint256","nodeType":"ElementaryTypeName","src":"8057:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8039:34:2"},"returnParameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":800,"src":"8105:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":773,"name":"bool","nodeType":"ElementaryTypeName","src":"8105:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8104:6:2"},"scope":1270,"src":"8012:272:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"8679:43:2","statements":[{"expression":{"arguments":[{"id":809,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"8699:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":810,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"8703:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8712:2:2","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":808,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[815,844],"referencedDeclaration":844,"src":"8689:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8689:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":813,"nodeType":"ExpressionStatement","src":"8689:26:2"}]},"documentation":{"id":801,"nodeType":"StructuredDocumentation","src":"8290:319:2","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":815,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8623:9:2","nodeType":"FunctionDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":803,"mutability":"mutable","name":"to","nameLocation":"8641:2:2","nodeType":"VariableDeclaration","scope":815,"src":"8633:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":802,"name":"address","nodeType":"ElementaryTypeName","src":"8633:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":805,"mutability":"mutable","name":"tokenId","nameLocation":"8653:7:2","nodeType":"VariableDeclaration","scope":815,"src":"8645:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":804,"name":"uint256","nodeType":"ElementaryTypeName","src":"8645:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8632:29:2"},"returnParameters":{"id":807,"nodeType":"ParameterList","parameters":[],"src":"8679:0:2"},"scope":1270,"src":"8614:108:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":843,"nodeType":"Block","src":"9057:195:2","statements":[{"expression":{"arguments":[{"id":826,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"9073:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":827,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"9077:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":825,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"9067:5:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9067:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"9067:18:2"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9147:1:2","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":833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9139:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":832,"name":"address","nodeType":"ElementaryTypeName","src":"9139:7:2","typeDescriptions":{}}},"id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":836,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"9151:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":837,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"9155:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":838,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"9164:4:2","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":831,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"9116:22:2","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":839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9116:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9183:52:2","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":830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9095:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9095:150:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":842,"nodeType":"ExpressionStatement","src":"9095:150:2"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"8728:210:2","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":844,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8952:9:2","nodeType":"FunctionDefinition","parameters":{"id":823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"to","nameLocation":"8979:2:2","nodeType":"VariableDeclaration","scope":844,"src":"8971:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":817,"name":"address","nodeType":"ElementaryTypeName","src":"8971:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":820,"mutability":"mutable","name":"tokenId","nameLocation":"8999:7:2","nodeType":"VariableDeclaration","scope":844,"src":"8991:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":819,"name":"uint256","nodeType":"ElementaryTypeName","src":"8991:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":822,"mutability":"mutable","name":"data","nameLocation":"9029:4:2","nodeType":"VariableDeclaration","scope":844,"src":"9016:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":821,"name":"bytes","nodeType":"ElementaryTypeName","src":"9016:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8961:78:2"},"returnParameters":{"id":824,"nodeType":"ParameterList","parameters":[],"src":"9057:0:2"},"scope":1270,"src":"8943:309:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":920,"nodeType":"Block","src":"9635:859:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":853,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"9653:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9667:1:2","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":855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9659:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":854,"name":"address","nodeType":"ElementaryTypeName","src":"9659:7:2","typeDescriptions":{}}},"id":857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9659:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9653:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9671:34:2","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":852,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9645:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":861,"nodeType":"ExpressionStatement","src":"9645:61:2"},{"expression":{"arguments":[{"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9724:17:2","subExpression":{"arguments":[{"id":864,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"9733:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":863,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"9725:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9725:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9743:30:2","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":862,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9716:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9716:58:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":869,"nodeType":"ExpressionStatement","src":"9716:58:2"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9814:1:2","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":872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9806:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":871,"name":"address","nodeType":"ElementaryTypeName","src":"9806:7:2","typeDescriptions":{}}},"id":874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9806:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":875,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"9818:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":876,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"9822:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9831:1:2","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":870,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"9785:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9785:48:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":879,"nodeType":"ExpressionStatement","src":"9785:48:2"},{"expression":{"arguments":[{"id":884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9928:17:2","subExpression":{"arguments":[{"id":882,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"9937:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":881,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"9929:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9929:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9947:30:2","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":880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9920:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9920:58:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":887,"nodeType":"ExpressionStatement","src":"9920:58:2"},{"id":894,"nodeType":"UncheckedBlock","src":"9989:360:2","statements":[{"expression":{"id":892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":888,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"10320:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":890,"indexExpression":{"id":889,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"10330:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10320:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10337:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10320:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":893,"nodeType":"ExpressionStatement","src":"10320:18:2"}]},{"expression":{"id":899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":895,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":335,"src":"10359:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":897,"indexExpression":{"id":896,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"10367:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10359:16:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":898,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"10378:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10359:21:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":900,"nodeType":"ExpressionStatement","src":"10359:21:2"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10413:1:2","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":903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10405:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":902,"name":"address","nodeType":"ElementaryTypeName","src":"10405:7:2","typeDescriptions":{}}},"id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10405:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":906,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"10417:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":907,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"10421:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":901,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"10396:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10396:33:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":909,"nodeType":"EmitStatement","src":"10391:38:2"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10468:1:2","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":912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10460:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":911,"name":"address","nodeType":"ElementaryTypeName","src":"10460:7:2","typeDescriptions":{}}},"id":914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10460:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":915,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":847,"src":"10472:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":916,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":849,"src":"10476:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10485:1:2","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":910,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"10440:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10440:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":919,"nodeType":"ExpressionStatement","src":"10440:47:2"}]},"documentation":{"id":845,"nodeType":"StructuredDocumentation","src":"9258:311:2","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":921,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9583:5:2","nodeType":"FunctionDefinition","parameters":{"id":850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":847,"mutability":"mutable","name":"to","nameLocation":"9597:2:2","nodeType":"VariableDeclaration","scope":921,"src":"9589:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":846,"name":"address","nodeType":"ElementaryTypeName","src":"9589:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":849,"mutability":"mutable","name":"tokenId","nameLocation":"9609:7:2","nodeType":"VariableDeclaration","scope":921,"src":"9601:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":848,"name":"uint256","nodeType":"ElementaryTypeName","src":"9601:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9588:29:2"},"returnParameters":{"id":851,"nodeType":"ParameterList","parameters":[],"src":"9635:0:2"},"scope":1270,"src":"9574:920:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":987,"nodeType":"Block","src":"10869:735:2","statements":[{"assignments":[928],"declarations":[{"constant":false,"id":928,"mutability":"mutable","name":"owner","nameLocation":"10887:5:2","nodeType":"VariableDeclaration","scope":987,"src":"10879:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"10879:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":933,"initialValue":{"arguments":[{"id":931,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"10921:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":929,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"10895:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10913:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"10895:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10895:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10879:50:2"},{"expression":{"arguments":[{"id":935,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"10961:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10976:1:2","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":937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10968:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":936,"name":"address","nodeType":"ElementaryTypeName","src":"10968:7:2","typeDescriptions":{}}},"id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10968:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":940,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"10980:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10989:1:2","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":934,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"10940:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10940:51:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":943,"nodeType":"ExpressionStatement","src":"10940:51:2"},{"expression":{"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":944,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"11093:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":947,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"11127:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":945,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"11101:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11119:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"11101:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11101:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11093:42:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":950,"nodeType":"ExpressionStatement","src":"11093:42:2"},{"expression":{"id":954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11173:31:2","subExpression":{"baseExpression":{"id":951,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"11180:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":953,"indexExpression":{"id":952,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"11196:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11180:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":955,"nodeType":"ExpressionStatement","src":"11173:31:2"},{"id":962,"nodeType":"UncheckedBlock","src":"11215:237:2","statements":[{"expression":{"id":960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":956,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"11420:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":958,"indexExpression":{"id":957,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"11430:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11420:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11440:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11420:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":961,"nodeType":"ExpressionStatement","src":"11420:21:2"}]},{"expression":{"id":966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11461:23:2","subExpression":{"baseExpression":{"id":963,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":335,"src":"11468:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":965,"indexExpression":{"id":964,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"11476:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11468:16:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":967,"nodeType":"ExpressionStatement","src":"11461:23:2"},{"eventCall":{"arguments":[{"id":969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"11509:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11524:1:2","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":971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11516:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":970,"name":"address","nodeType":"ElementaryTypeName","src":"11516:7:2","typeDescriptions":{}}},"id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11516:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":974,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"11528:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":968,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"11500:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":976,"nodeType":"EmitStatement","src":"11495:41:2"},{"expression":{"arguments":[{"id":978,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"11567:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11582:1:2","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":980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11574:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":979,"name":"address","nodeType":"ElementaryTypeName","src":"11574:7:2","typeDescriptions":{}}},"id":982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":983,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":924,"src":"11586:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11595:1:2","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":977,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"11547:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11547:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":986,"nodeType":"ExpressionStatement","src":"11547:50:2"}]},"documentation":{"id":922,"nodeType":"StructuredDocumentation","src":"10500:315:2","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":988,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10829:5:2","nodeType":"FunctionDefinition","parameters":{"id":925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"tokenId","nameLocation":"10843:7:2","nodeType":"VariableDeclaration","scope":988,"src":"10835:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":923,"name":"uint256","nodeType":"ElementaryTypeName","src":"10835:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10834:17:2"},"returnParameters":{"id":926,"nodeType":"ParameterList","parameters":[],"src":"10869:0:2"},"scope":1270,"src":"10820:784:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1072,"nodeType":"Block","src":"12037:1146:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1001,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"12081:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":999,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"12055:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12073:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"12055:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12055:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1003,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"12093:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12055:42:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12099:39:2","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":998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12047:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12047:92:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1007,"nodeType":"ExpressionStatement","src":"12047:92:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1009,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"12157:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12171:1:2","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":1011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12163:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1010,"name":"address","nodeType":"ElementaryTypeName","src":"12163:7:2","typeDescriptions":{}}},"id":1013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12163:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12157:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":1015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12175:38:2","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":1008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12149:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12149:65:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1017,"nodeType":"ExpressionStatement","src":"12149:65:2"},{"expression":{"arguments":[{"id":1019,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"12246:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1020,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"12252:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1021,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"12256:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12265:1:2","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":1018,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"12225:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12225:42:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1024,"nodeType":"ExpressionStatement","src":"12225:42:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1028,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"12393:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1026,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"12367:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12385:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"12367:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12367:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1030,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"12405:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12367:42:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12411:39:2","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":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12359:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12359:92:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1034,"nodeType":"ExpressionStatement","src":"12359:92:2"},{"expression":{"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12513:31:2","subExpression":{"baseExpression":{"id":1035,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"12520:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1037,"indexExpression":{"id":1036,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"12536:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12520:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1039,"nodeType":"ExpressionStatement","src":"12513:31:2"},{"id":1052,"nodeType":"UncheckedBlock","src":"12555:496:2","statements":[{"expression":{"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1040,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"12988:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1042,"indexExpression":{"id":1041,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"12998:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12988:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13007:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12988:20:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1045,"nodeType":"ExpressionStatement","src":"12988:20:2"},{"expression":{"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1046,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"13022:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1048,"indexExpression":{"id":1047,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"13032:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13022:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13039:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13022:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1051,"nodeType":"ExpressionStatement","src":"13022:18:2"}]},{"expression":{"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1053,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":335,"src":"13060:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1055,"indexExpression":{"id":1054,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"13068:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13060:16:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1056,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"13079:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13060:21:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1058,"nodeType":"ExpressionStatement","src":"13060:21:2"},{"eventCall":{"arguments":[{"id":1060,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"13106:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1061,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"13112:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1062,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"13116:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1059,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"13097:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13097:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1064,"nodeType":"EmitStatement","src":"13092:32:2"},{"expression":{"arguments":[{"id":1066,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"13155:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1067,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"13161:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1068,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":995,"src":"13165:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13174:1:2","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":1065,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1264,"src":"13135:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13135:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1071,"nodeType":"ExpressionStatement","src":"13135:41:2"}]},"documentation":{"id":989,"nodeType":"StructuredDocumentation","src":"11610:313:2","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":1073,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"11937:9:2","nodeType":"FunctionDefinition","parameters":{"id":996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":991,"mutability":"mutable","name":"from","nameLocation":"11964:4:2","nodeType":"VariableDeclaration","scope":1073,"src":"11956:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":990,"name":"address","nodeType":"ElementaryTypeName","src":"11956:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":993,"mutability":"mutable","name":"to","nameLocation":"11986:2:2","nodeType":"VariableDeclaration","scope":1073,"src":"11978:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":992,"name":"address","nodeType":"ElementaryTypeName","src":"11978:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":995,"mutability":"mutable","name":"tokenId","nameLocation":"12006:7:2","nodeType":"VariableDeclaration","scope":1073,"src":"11998:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":994,"name":"uint256","nodeType":"ElementaryTypeName","src":"11998:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11946:73:2"},"returnParameters":{"id":997,"nodeType":"ParameterList","parameters":[],"src":"12037:0:2"},"scope":1270,"src":"11928:1255:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1096,"nodeType":"Block","src":"13359:118:2","statements":[{"expression":{"id":1085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1081,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":343,"src":"13369:15:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1083,"indexExpression":{"id":1082,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"13385:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13369:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1084,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"13396:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13369:29:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1086,"nodeType":"ExpressionStatement","src":"13369:29:2"},{"eventCall":{"arguments":[{"arguments":[{"id":1090,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"13448:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1088,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"13422:17:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13440:7:2","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":466,"src":"13422:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13422:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1092,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"13458:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1093,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"13462:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1087,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"13413:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13413:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1095,"nodeType":"EmitStatement","src":"13408:62:2"}]},"documentation":{"id":1074,"nodeType":"StructuredDocumentation","src":"13189:101:2","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":1097,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"13304:8:2","nodeType":"FunctionDefinition","parameters":{"id":1079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1076,"mutability":"mutable","name":"to","nameLocation":"13321:2:2","nodeType":"VariableDeclaration","scope":1097,"src":"13313:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1075,"name":"address","nodeType":"ElementaryTypeName","src":"13313:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"tokenId","nameLocation":"13333:7:2","nodeType":"VariableDeclaration","scope":1097,"src":"13325:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1077,"name":"uint256","nodeType":"ElementaryTypeName","src":"13325:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13312:29:2"},"returnParameters":{"id":1080,"nodeType":"ParameterList","parameters":[],"src":"13359:0:2"},"scope":1270,"src":"13295:182:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1128,"nodeType":"Block","src":"13736:184:2","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1108,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"13754:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1109,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"13763:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13754:17:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":1111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13773:27:2","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":1107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13746:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13746:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1113,"nodeType":"ExpressionStatement","src":"13746:55:2"},{"expression":{"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1114,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"13811:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1117,"indexExpression":{"id":1115,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"13830:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13811:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1118,"indexExpression":{"id":1116,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"13837:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13811:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1119,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"13849:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13811:46:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1121,"nodeType":"ExpressionStatement","src":"13811:46:2"},{"eventCall":{"arguments":[{"id":1123,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"13887:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1124,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1102,"src":"13894:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1125,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"13904:8:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1122,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"13872:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13872:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1127,"nodeType":"EmitStatement","src":"13867:46:2"}]},"documentation":{"id":1098,"nodeType":"StructuredDocumentation","src":"13483:125:2","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":1129,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13622:18:2","nodeType":"FunctionDefinition","parameters":{"id":1105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"mutability":"mutable","name":"owner","nameLocation":"13658:5:2","nodeType":"VariableDeclaration","scope":1129,"src":"13650:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"13650:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"mutability":"mutable","name":"operator","nameLocation":"13681:8:2","nodeType":"VariableDeclaration","scope":1129,"src":"13673:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1101,"name":"address","nodeType":"ElementaryTypeName","src":"13673:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1104,"mutability":"mutable","name":"approved","nameLocation":"13704:8:2","nodeType":"VariableDeclaration","scope":1129,"src":"13699:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1103,"name":"bool","nodeType":"ElementaryTypeName","src":"13699:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13640:78:2"},"returnParameters":{"id":1106,"nodeType":"ParameterList","parameters":[],"src":"13736:0:2"},"scope":1270,"src":"13613:307:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1142,"nodeType":"Block","src":"14067:70:2","statements":[{"expression":{"arguments":[{"arguments":[{"id":1137,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1132,"src":"14093:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1136,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"14085:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14085:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":1139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14103:26:2","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":1135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14077:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14077:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"ExpressionStatement","src":"14077:53:2"}]},"documentation":{"id":1130,"nodeType":"StructuredDocumentation","src":"13926:73:2","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":1143,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"14013:14:2","nodeType":"FunctionDefinition","parameters":{"id":1133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"mutability":"mutable","name":"tokenId","nameLocation":"14036:7:2","nodeType":"VariableDeclaration","scope":1143,"src":"14028:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1131,"name":"uint256","nodeType":"ElementaryTypeName","src":"14028:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14027:17:2"},"returnParameters":{"id":1134,"nodeType":"ParameterList","parameters":[],"src":"14067:0:2"},"scope":1270,"src":"14004:133:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1204,"nodeType":"Block","src":"14844:698:2","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1157,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"14858:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14861:10:2","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":1999,"src":"14858:13:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14858:15:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1202,"nodeType":"Block","src":"15500:36:2","statements":[{"expression":{"hexValue":"74727565","id":1200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15521:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1156,"id":1201,"nodeType":"Return","src":"15514:11:2"}]},"id":1203,"nodeType":"IfStatement","src":"14854:682:2","trueBody":{"id":1199,"nodeType":"Block","src":"14875:619:2","statements":[{"clauses":[{"block":{"id":1179,"nodeType":"Block","src":"15000:102:2","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1173,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"15025:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":1174,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"15035:26:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$1288_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":1175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15062:16:2","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1287,"src":"15035:43:2","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721ReceiverUpgradeable.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15079:8:2","memberName":"selector","nodeType":"MemberAccess","src":"15035:52:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"15025:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1156,"id":1178,"nodeType":"Return","src":"15018:69:2"}]},"errorName":"","id":1180,"nodeType":"TryCatchClause","parameters":{"id":1172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1171,"mutability":"mutable","name":"retval","nameLocation":"14992:6:2","nodeType":"VariableDeclaration","scope":1180,"src":"14985:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1170,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14985:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14984:15:2"},"src":"14976:126:2"},{"block":{"id":1196,"nodeType":"Block","src":"15131:353:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1184,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"15153:6:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15160:6:2","memberName":"length","nodeType":"MemberAccess","src":"15153:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15170:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15153:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1194,"nodeType":"Block","src":"15280:190:2","statements":[{"AST":{"nodeType":"YulBlock","src":"15366:86:2","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15403:2:2","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"15407:6:2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15399:3:2"},"nodeType":"YulFunctionCall","src":"15399:15:2"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"15422:6:2"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15416:5:2"},"nodeType":"YulFunctionCall","src":"15416:13:2"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15392:6:2"},"nodeType":"YulFunctionCall","src":"15392:38:2"},"nodeType":"YulExpressionStatement","src":"15392:38:2"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":1182,"isOffset":false,"isSlot":false,"src":"15407:6:2","valueSize":1},{"declaration":1182,"isOffset":false,"isSlot":false,"src":"15422:6:2","valueSize":1}],"id":1193,"nodeType":"InlineAssembly","src":"15357:95:2"}]},"id":1195,"nodeType":"IfStatement","src":"15149:321:2","trueBody":{"id":1192,"nodeType":"Block","src":"15173:101:2","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15202:52:2","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":1188,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"15195:6:2","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15195:60:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1191,"nodeType":"ExpressionStatement","src":"15195:60:2"}]}}]},"errorName":"","id":1197,"nodeType":"TryCatchClause","parameters":{"id":1183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1182,"mutability":"mutable","name":"reason","nameLocation":"15123:6:2","nodeType":"VariableDeclaration","scope":1197,"src":"15110:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1181,"name":"bytes","nodeType":"ElementaryTypeName","src":"15110:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15109:21:2"},"src":"15103:381:2"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1164,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2292,"src":"14941:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14941:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1166,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"14955:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1167,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"14961:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1168,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1152,"src":"14970:4:2","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":1161,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"14920:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1160,"name":"IERC721ReceiverUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"14893:26:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721ReceiverUpgradeable_$1288_$","typeString":"type(contract IERC721ReceiverUpgradeable)"}},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14893:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721ReceiverUpgradeable_$1288","typeString":"contract IERC721ReceiverUpgradeable"}},"id":1163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14924:16:2","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1287,"src":"14893:47:2","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":1169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14893:82:2","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1198,"nodeType":"TryStatement","src":"14889:595:2"}]}}]},"documentation":{"id":1144,"nodeType":"StructuredDocumentation","src":"14143:541:2","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":1205,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"14698:22:2","nodeType":"FunctionDefinition","parameters":{"id":1153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"from","nameLocation":"14738:4:2","nodeType":"VariableDeclaration","scope":1205,"src":"14730:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"14730:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1148,"mutability":"mutable","name":"to","nameLocation":"14760:2:2","nodeType":"VariableDeclaration","scope":1205,"src":"14752:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1147,"name":"address","nodeType":"ElementaryTypeName","src":"14752:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1150,"mutability":"mutable","name":"tokenId","nameLocation":"14780:7:2","nodeType":"VariableDeclaration","scope":1205,"src":"14772:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1149,"name":"uint256","nodeType":"ElementaryTypeName","src":"14772:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1152,"mutability":"mutable","name":"data","nameLocation":"14810:4:2","nodeType":"VariableDeclaration","scope":1205,"src":"14797:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1151,"name":"bytes","nodeType":"ElementaryTypeName","src":"14797:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14720:100:2"},"returnParameters":{"id":1156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1205,"src":"14838:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1154,"name":"bool","nodeType":"ElementaryTypeName","src":"14838:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14837:6:2"},"scope":1270,"src":"14689:853:2","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1250,"nodeType":"Block","src":"16416:238:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1217,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1214,"src":"16430:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16442:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16430:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1249,"nodeType":"IfStatement","src":"16426:222:2","trueBody":{"id":1248,"nodeType":"Block","src":"16445:203:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1220,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"16463:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16479:1:2","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":1222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16471:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1221,"name":"address","nodeType":"ElementaryTypeName","src":"16471:7:2","typeDescriptions":{}}},"id":1224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16471:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16463:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1233,"nodeType":"IfStatement","src":"16459:85:2","trueBody":{"id":1232,"nodeType":"Block","src":"16483:61:2","statements":[{"expression":{"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1226,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"16501:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1228,"indexExpression":{"id":1227,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"16511:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16501:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":1229,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1214,"src":"16520:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16501:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1231,"nodeType":"ExpressionStatement","src":"16501:28:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1234,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"16561:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16575:1:2","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":1236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16567:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1235,"name":"address","nodeType":"ElementaryTypeName","src":"16567:7:2","typeDescriptions":{}}},"id":1238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16567:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16561:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1247,"nodeType":"IfStatement","src":"16557:81:2","trueBody":{"id":1246,"nodeType":"Block","src":"16579:59:2","statements":[{"expression":{"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1240,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":339,"src":"16597:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1242,"indexExpression":{"id":1241,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"16607:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16597:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1243,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1214,"src":"16614:9:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16597:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1245,"nodeType":"ExpressionStatement","src":"16597:26:2"}]}}]}}]},"documentation":{"id":1206,"nodeType":"StructuredDocumentation","src":"15548:705:2","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":1251,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"16267:20:2","nodeType":"FunctionDefinition","parameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"from","nameLocation":"16305:4:2","nodeType":"VariableDeclaration","scope":1251,"src":"16297:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1207,"name":"address","nodeType":"ElementaryTypeName","src":"16297:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"to","nameLocation":"16327:2:2","nodeType":"VariableDeclaration","scope":1251,"src":"16319:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1209,"name":"address","nodeType":"ElementaryTypeName","src":"16319:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1251,"src":"16339:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1211,"name":"uint256","nodeType":"ElementaryTypeName","src":"16339:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"batchSize","nameLocation":"16383:9:2","nodeType":"VariableDeclaration","scope":1251,"src":"16375:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1213,"name":"uint256","nodeType":"ElementaryTypeName","src":"16375:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16287:111:2"},"returnParameters":{"id":1216,"nodeType":"ParameterList","parameters":[],"src":"16416:0:2"},"scope":1270,"src":"16258:396:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1263,"nodeType":"Block","src":"17511:2:2","statements":[]},"documentation":{"id":1252,"nodeType":"StructuredDocumentation","src":"16660:695:2","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":1264,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"17369:19:2","nodeType":"FunctionDefinition","parameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1254,"mutability":"mutable","name":"from","nameLocation":"17406:4:2","nodeType":"VariableDeclaration","scope":1264,"src":"17398:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1253,"name":"address","nodeType":"ElementaryTypeName","src":"17398:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1256,"mutability":"mutable","name":"to","nameLocation":"17428:2:2","nodeType":"VariableDeclaration","scope":1264,"src":"17420:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1255,"name":"address","nodeType":"ElementaryTypeName","src":"17420:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1258,"mutability":"mutable","name":"firstTokenId","nameLocation":"17448:12:2","nodeType":"VariableDeclaration","scope":1264,"src":"17440:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"17440:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"batchSize","nameLocation":"17478:9:2","nodeType":"VariableDeclaration","scope":1264,"src":"17470:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1259,"name":"uint256","nodeType":"ElementaryTypeName","src":"17470:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17388:105:2"},"returnParameters":{"id":1262,"nodeType":"ParameterList","parameters":[],"src":"17511:0:2"},"scope":1270,"src":"17360:153:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1265,"nodeType":"StructuredDocumentation","src":"17519:254:2","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":1269,"mutability":"mutable","name":"__gap","nameLocation":"17798:5:2","nodeType":"VariableDeclaration","scope":1270,"src":"17778:25:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":1266,"name":"uint256","nodeType":"ElementaryTypeName","src":"17778:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1268,"length":{"hexValue":"3434","id":1267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17786:2:2","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"17778:11:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"}],"scope":1271,"src":"751:17055:2","usedErrors":[]}],"src":"107:17700:2"},"id":2},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol","exportedSymbols":{"IERC721ReceiverUpgradeable":[1288]},"id":1289,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1272,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721ReceiverUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":1273,"nodeType":"StructuredDocumentation","src":"141:152:3","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":1288,"linearizedBaseContracts":[1288],"name":"IERC721ReceiverUpgradeable","nameLocation":"304:26:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1274,"nodeType":"StructuredDocumentation","src":"337:493:3","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":1287,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"844:16:3","nodeType":"FunctionDefinition","parameters":{"id":1283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1276,"mutability":"mutable","name":"operator","nameLocation":"878:8:3","nodeType":"VariableDeclaration","scope":1287,"src":"870:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1275,"name":"address","nodeType":"ElementaryTypeName","src":"870:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1278,"mutability":"mutable","name":"from","nameLocation":"904:4:3","nodeType":"VariableDeclaration","scope":1287,"src":"896:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1277,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1280,"mutability":"mutable","name":"tokenId","nameLocation":"926:7:3","nodeType":"VariableDeclaration","scope":1287,"src":"918:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1279,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1282,"mutability":"mutable","name":"data","nameLocation":"958:4:3","nodeType":"VariableDeclaration","scope":1287,"src":"943:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1281,"name":"bytes","nodeType":"ElementaryTypeName","src":"943:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"860:108:3"},"returnParameters":{"id":1286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1287,"src":"987:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1284,"name":"bytes4","nodeType":"ElementaryTypeName","src":"987:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"986:8:3"},"scope":1288,"src":"835:160:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1289,"src":"294:703:3","usedErrors":[]}],"src":"116:882:3"},"id":3},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[2538],"IERC721Upgradeable":[1404]},"id":1405,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1290,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:4"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","file":"../../utils/introspection/IERC165Upgradeable.sol","id":1291,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1405,"sourceUnit":2539,"src":"133:58:4","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1293,"name":"IERC165Upgradeable","nameLocations":["293:18:4"],"nodeType":"IdentifierPath","referencedDeclaration":2538,"src":"293:18:4"},"id":1294,"nodeType":"InheritanceSpecifier","src":"293:18:4"}],"canonicalName":"IERC721Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":1292,"nodeType":"StructuredDocumentation","src":"193:67:4","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":1404,"linearizedBaseContracts":[1404,2538],"name":"IERC721Upgradeable","nameLocation":"271:18:4","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"318:88:4","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1303,"name":"Transfer","nameLocation":"417:8:4","nodeType":"EventDefinition","parameters":{"id":1302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"442:4:4","nodeType":"VariableDeclaration","scope":1303,"src":"426:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1296,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1299,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"464:2:4","nodeType":"VariableDeclaration","scope":1303,"src":"448:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1298,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1301,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"484:7:4","nodeType":"VariableDeclaration","scope":1303,"src":"468:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1300,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:67:4"},"src":"411:82:4"},{"anonymous":false,"documentation":{"id":1304,"nodeType":"StructuredDocumentation","src":"499:94:4","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":1312,"name":"Approval","nameLocation":"604:8:4","nodeType":"EventDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1306,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"629:5:4","nodeType":"VariableDeclaration","scope":1312,"src":"613:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1305,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1308,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"652:8:4","nodeType":"VariableDeclaration","scope":1312,"src":"636:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1307,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1310,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"678:7:4","nodeType":"VariableDeclaration","scope":1312,"src":"662:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1309,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"612:74:4"},"src":"598:89:4"},{"anonymous":false,"documentation":{"id":1313,"nodeType":"StructuredDocumentation","src":"693:117:4","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1321,"name":"ApprovalForAll","nameLocation":"821:14:4","nodeType":"EventDefinition","parameters":{"id":1320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"852:5:4","nodeType":"VariableDeclaration","scope":1321,"src":"836:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1314,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1317,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"875:8:4","nodeType":"VariableDeclaration","scope":1321,"src":"859:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1319,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"890:8:4","nodeType":"VariableDeclaration","scope":1321,"src":"885:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1318,"name":"bool","nodeType":"ElementaryTypeName","src":"885:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"835:64:4"},"src":"815:85:4"},{"documentation":{"id":1322,"nodeType":"StructuredDocumentation","src":"906:76:4","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":1329,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"996:9:4","nodeType":"FunctionDefinition","parameters":{"id":1325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1324,"mutability":"mutable","name":"owner","nameLocation":"1014:5:4","nodeType":"VariableDeclaration","scope":1329,"src":"1006:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1323,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:15:4"},"returnParameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"balance","nameLocation":"1052:7:4","nodeType":"VariableDeclaration","scope":1329,"src":"1044:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1326,"name":"uint256","nodeType":"ElementaryTypeName","src":"1044:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1043:17:4"},"scope":1404,"src":"987:74:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1330,"nodeType":"StructuredDocumentation","src":"1067:131:4","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":1337,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1212:7:4","nodeType":"FunctionDefinition","parameters":{"id":1333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"mutability":"mutable","name":"tokenId","nameLocation":"1228:7:4","nodeType":"VariableDeclaration","scope":1337,"src":"1220:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1219:17:4"},"returnParameters":{"id":1336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1335,"mutability":"mutable","name":"owner","nameLocation":"1268:5:4","nodeType":"VariableDeclaration","scope":1337,"src":"1260:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1334,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1259:15:4"},"scope":1404,"src":"1203:72:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1338,"nodeType":"StructuredDocumentation","src":"1281:556:4","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":1349,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1851:16:4","nodeType":"FunctionDefinition","parameters":{"id":1347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1340,"mutability":"mutable","name":"from","nameLocation":"1885:4:4","nodeType":"VariableDeclaration","scope":1349,"src":"1877:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1339,"name":"address","nodeType":"ElementaryTypeName","src":"1877:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1342,"mutability":"mutable","name":"to","nameLocation":"1907:2:4","nodeType":"VariableDeclaration","scope":1349,"src":"1899:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1341,"name":"address","nodeType":"ElementaryTypeName","src":"1899:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1344,"mutability":"mutable","name":"tokenId","nameLocation":"1927:7:4","nodeType":"VariableDeclaration","scope":1349,"src":"1919:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1343,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1346,"mutability":"mutable","name":"data","nameLocation":"1959:4:4","nodeType":"VariableDeclaration","scope":1349,"src":"1944:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1345,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1867:102:4"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[],"src":"1978:0:4"},"scope":1404,"src":"1842:137:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1350,"nodeType":"StructuredDocumentation","src":"1985:687:4","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":1359,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2686:16:4","nodeType":"FunctionDefinition","parameters":{"id":1357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1352,"mutability":"mutable","name":"from","nameLocation":"2720:4:4","nodeType":"VariableDeclaration","scope":1359,"src":"2712:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1351,"name":"address","nodeType":"ElementaryTypeName","src":"2712:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1354,"mutability":"mutable","name":"to","nameLocation":"2742:2:4","nodeType":"VariableDeclaration","scope":1359,"src":"2734:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1353,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1356,"mutability":"mutable","name":"tokenId","nameLocation":"2762:7:4","nodeType":"VariableDeclaration","scope":1359,"src":"2754:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1355,"name":"uint256","nodeType":"ElementaryTypeName","src":"2754:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2702:73:4"},"returnParameters":{"id":1358,"nodeType":"ParameterList","parameters":[],"src":"2784:0:4"},"scope":1404,"src":"2677:108:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1360,"nodeType":"StructuredDocumentation","src":"2791:732:4","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":1369,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3537:12:4","nodeType":"FunctionDefinition","parameters":{"id":1367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1362,"mutability":"mutable","name":"from","nameLocation":"3567:4:4","nodeType":"VariableDeclaration","scope":1369,"src":"3559:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"3559:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1364,"mutability":"mutable","name":"to","nameLocation":"3589:2:4","nodeType":"VariableDeclaration","scope":1369,"src":"3581:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1363,"name":"address","nodeType":"ElementaryTypeName","src":"3581:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1366,"mutability":"mutable","name":"tokenId","nameLocation":"3609:7:4","nodeType":"VariableDeclaration","scope":1369,"src":"3601:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1365,"name":"uint256","nodeType":"ElementaryTypeName","src":"3601:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3549:73:4"},"returnParameters":{"id":1368,"nodeType":"ParameterList","parameters":[],"src":"3631:0:4"},"scope":1404,"src":"3528:104:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1370,"nodeType":"StructuredDocumentation","src":"3638:452:4","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":1377,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4104:7:4","nodeType":"FunctionDefinition","parameters":{"id":1375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1372,"mutability":"mutable","name":"to","nameLocation":"4120:2:4","nodeType":"VariableDeclaration","scope":1377,"src":"4112:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1371,"name":"address","nodeType":"ElementaryTypeName","src":"4112:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1374,"mutability":"mutable","name":"tokenId","nameLocation":"4132:7:4","nodeType":"VariableDeclaration","scope":1377,"src":"4124:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1373,"name":"uint256","nodeType":"ElementaryTypeName","src":"4124:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4111:29:4"},"returnParameters":{"id":1376,"nodeType":"ParameterList","parameters":[],"src":"4149:0:4"},"scope":1404,"src":"4095:55:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1378,"nodeType":"StructuredDocumentation","src":"4156:309:4","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":1385,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4479:17:4","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1380,"mutability":"mutable","name":"operator","nameLocation":"4505:8:4","nodeType":"VariableDeclaration","scope":1385,"src":"4497:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1379,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1382,"mutability":"mutable","name":"_approved","nameLocation":"4520:9:4","nodeType":"VariableDeclaration","scope":1385,"src":"4515:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1381,"name":"bool","nodeType":"ElementaryTypeName","src":"4515:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4496:34:4"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[],"src":"4539:0:4"},"scope":1404,"src":"4470:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1386,"nodeType":"StructuredDocumentation","src":"4546:139:4","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":1393,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4699:11:4","nodeType":"FunctionDefinition","parameters":{"id":1389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1388,"mutability":"mutable","name":"tokenId","nameLocation":"4719:7:4","nodeType":"VariableDeclaration","scope":1393,"src":"4711:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1387,"name":"uint256","nodeType":"ElementaryTypeName","src":"4711:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4710:17:4"},"returnParameters":{"id":1392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"operator","nameLocation":"4759:8:4","nodeType":"VariableDeclaration","scope":1393,"src":"4751:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1390,"name":"address","nodeType":"ElementaryTypeName","src":"4751:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4750:18:4"},"scope":1404,"src":"4690:79:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1394,"nodeType":"StructuredDocumentation","src":"4775:138:4","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":1403,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4927:16:4","nodeType":"FunctionDefinition","parameters":{"id":1399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1396,"mutability":"mutable","name":"owner","nameLocation":"4952:5:4","nodeType":"VariableDeclaration","scope":1403,"src":"4944:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1395,"name":"address","nodeType":"ElementaryTypeName","src":"4944:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1398,"mutability":"mutable","name":"operator","nameLocation":"4967:8:4","nodeType":"VariableDeclaration","scope":1403,"src":"4959:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1397,"name":"address","nodeType":"ElementaryTypeName","src":"4959:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4943:33:4"},"returnParameters":{"id":1402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1403,"src":"5000:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1400,"name":"bool","nodeType":"ElementaryTypeName","src":"5000:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4999:6:4"},"scope":1404,"src":"4918:88:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1405,"src":"261:4747:4","usedErrors":[]}],"src":"108:4901:4"},"id":4},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"ERC165Upgradeable":[2526],"ERC721EnumerableUpgradeable":[1778],"ERC721Upgradeable":[1270],"IERC165Upgradeable":[2538],"IERC721EnumerableUpgradeable":[1954],"IERC721MetadataUpgradeable":[1981],"IERC721ReceiverUpgradeable":[1288],"IERC721Upgradeable":[1404],"Initializable":[300],"MathUpgradeable":[3403],"StringsUpgradeable":[2482]},"id":1779,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1406,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:5"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"../ERC721Upgradeable.sol","id":1407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1779,"sourceUnit":1271,"src":"153:34:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol","file":"./IERC721EnumerableUpgradeable.sol","id":1408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1779,"sourceUnit":1955,"src":"188:44:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../../proxy/utils/Initializable.sol","id":1409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1779,"sourceUnit":301,"src":"233:48:5","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1411,"name":"Initializable","nameLocations":["532:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"532:13:5"},"id":1412,"nodeType":"InheritanceSpecifier","src":"532:13:5"},{"baseName":{"id":1413,"name":"ERC721Upgradeable","nameLocations":["547:17:5"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"547:17:5"},"id":1414,"nodeType":"InheritanceSpecifier","src":"547:17:5"},{"baseName":{"id":1415,"name":"IERC721EnumerableUpgradeable","nameLocations":["566:28:5"],"nodeType":"IdentifierPath","referencedDeclaration":1954,"src":"566:28:5"},"id":1416,"nodeType":"InheritanceSpecifier","src":"566:28:5"}],"canonicalName":"ERC721EnumerableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1410,"nodeType":"StructuredDocumentation","src":"283:199:5","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":true,"id":1778,"linearizedBaseContracts":[1778,1954,1270,1981,1404,2526,2538,2307,300],"name":"ERC721EnumerableUpgradeable","nameLocation":"501:27:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":1421,"nodeType":"Block","src":"662:7:5","statements":[]},"id":1422,"implemented":true,"kind":"function","modifiers":[{"id":1419,"kind":"modifierInvocation","modifierName":{"id":1418,"name":"onlyInitializing","nameLocations":["645:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"645:16:5"},"nodeType":"ModifierInvocation","src":"645:16:5"}],"name":"__ERC721Enumerable_init","nameLocation":"610:23:5","nodeType":"FunctionDefinition","parameters":{"id":1417,"nodeType":"ParameterList","parameters":[],"src":"633:2:5"},"returnParameters":{"id":1420,"nodeType":"ParameterList","parameters":[],"src":"662:0:5"},"scope":1778,"src":"601:68:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1427,"nodeType":"Block","src":"746:7:5","statements":[]},"id":1428,"implemented":true,"kind":"function","modifiers":[{"id":1425,"kind":"modifierInvocation","modifierName":{"id":1424,"name":"onlyInitializing","nameLocations":["729:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"729:16:5"},"nodeType":"ModifierInvocation","src":"729:16:5"}],"name":"__ERC721Enumerable_init_unchained","nameLocation":"684:33:5","nodeType":"FunctionDefinition","parameters":{"id":1423,"nodeType":"ParameterList","parameters":[],"src":"717:2:5"},"returnParameters":{"id":1426,"nodeType":"ParameterList","parameters":[],"src":"746:0:5"},"scope":1778,"src":"675:78:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"id":1434,"mutability":"mutable","name":"_ownedTokens","nameLocation":"867:12:5","nodeType":"VariableDeclaration","scope":1778,"src":"811:68:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":1433,"keyType":{"id":1429,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"811:47:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":1432,"keyType":{"id":1430,"name":"uint256","nodeType":"ElementaryTypeName","src":"838:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"830:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":1431,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":1438,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"985:17:5","nodeType":"VariableDeclaration","scope":1778,"src":"949:53:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":1437,"keyType":{"id":1435,"name":"uint256","nodeType":"ElementaryTypeName","src":"957:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"949:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":1436,"name":"uint256","nodeType":"ElementaryTypeName","src":"968:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":1441,"mutability":"mutable","name":"_allTokens","nameLocation":"1081:10:5","nodeType":"VariableDeclaration","scope":1778,"src":"1063:28:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":1439,"name":"uint256","nodeType":"ElementaryTypeName","src":"1063:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1440,"nodeType":"ArrayTypeName","src":"1063:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":1445,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"1198:15:5","nodeType":"VariableDeclaration","scope":1778,"src":"1162:51:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":1444,"keyType":{"id":1442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1170:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1162:27:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":1443,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"baseFunctions":[414,2537],"body":{"id":1468,"nodeType":"Block","src":"1411:125:5","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1456,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1448,"src":"1428:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1458,"name":"IERC721EnumerableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"1448:28:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721EnumerableUpgradeable_$1954_$","typeString":"type(contract IERC721EnumerableUpgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721EnumerableUpgradeable_$1954_$","typeString":"type(contract IERC721EnumerableUpgradeable)"}],"id":1457,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1443:4:5","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721EnumerableUpgradeable_$1954","typeString":"type(contract IERC721EnumerableUpgradeable)"}},"id":1460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1478:11:5","memberName":"interfaceId","nodeType":"MemberAccess","src":"1443:46:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1428:61:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1464,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1448,"src":"1517:11:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1462,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1493:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721EnumerableUpgradeable_$1778_$","typeString":"type(contract super ERC721EnumerableUpgradeable)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1499:17:5","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":414,"src":"1493:23:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:36:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1428:101:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1455,"id":1467,"nodeType":"Return","src":"1421:108:5"}]},"documentation":{"id":1446,"nodeType":"StructuredDocumentation","src":"1220:56:5","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1469,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1290:17:5","nodeType":"FunctionDefinition","overrides":{"id":1452,"nodeType":"OverrideSpecifier","overrides":[{"id":1450,"name":"IERC165Upgradeable","nameLocations":["1357:18:5"],"nodeType":"IdentifierPath","referencedDeclaration":2538,"src":"1357:18:5"},{"id":1451,"name":"ERC721Upgradeable","nameLocations":["1377:17:5"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"1377:17:5"}],"src":"1348:47:5"},"parameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1448,"mutability":"mutable","name":"interfaceId","nameLocation":"1315:11:5","nodeType":"VariableDeclaration","scope":1469,"src":"1308:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1447,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1308:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1307:20:5"},"returnParameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1469,"src":"1405:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1453,"name":"bool","nodeType":"ElementaryTypeName","src":"1405:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1404:6:5"},"scope":1778,"src":"1281:255:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1945],"body":{"id":1496,"nodeType":"Block","src":"1721:158:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1481,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1739:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":1484,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1775:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1482,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"1747:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1765:9:5","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":438,"src":"1747:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1747:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1739:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473","id":1487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1783:45:5","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":1480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1731:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1731:98:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1489,"nodeType":"ExpressionStatement","src":"1731:98:5"},{"expression":{"baseExpression":{"baseExpression":{"id":1490,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"1846:12:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":1492,"indexExpression":{"id":1491,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1472,"src":"1859:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1846:19:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1494,"indexExpression":{"id":1493,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1474,"src":"1866:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1846:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1479,"id":1495,"nodeType":"Return","src":"1839:33:5"}]},"documentation":{"id":1470,"nodeType":"StructuredDocumentation","src":"1542:68:5","text":" @dev See {IERC721Enumerable-tokenOfOwnerByIndex}."},"functionSelector":"2f745c59","id":1497,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"1624:19:5","nodeType":"FunctionDefinition","overrides":{"id":1476,"nodeType":"OverrideSpecifier","overrides":[],"src":"1694:8:5"},"parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"owner","nameLocation":"1652:5:5","nodeType":"VariableDeclaration","scope":1497,"src":"1644:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1471,"name":"address","nodeType":"ElementaryTypeName","src":"1644:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1474,"mutability":"mutable","name":"index","nameLocation":"1667:5:5","nodeType":"VariableDeclaration","scope":1497,"src":"1659:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1659:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1643:30:5"},"returnParameters":{"id":1479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1497,"src":"1712:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1477,"name":"uint256","nodeType":"ElementaryTypeName","src":"1712:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1711:9:5"},"scope":1778,"src":"1615:264:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1935],"body":{"id":1507,"nodeType":"Block","src":"2020:41:5","statements":[{"expression":{"expression":{"id":1504,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"2037:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2048:6:5","memberName":"length","nodeType":"MemberAccess","src":"2037:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1503,"id":1506,"nodeType":"Return","src":"2030:24:5"}]},"documentation":{"id":1498,"nodeType":"StructuredDocumentation","src":"1885:60:5","text":" @dev See {IERC721Enumerable-totalSupply}."},"functionSelector":"18160ddd","id":1508,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1959:11:5","nodeType":"FunctionDefinition","overrides":{"id":1500,"nodeType":"OverrideSpecifier","overrides":[],"src":"1993:8:5"},"parameters":{"id":1499,"nodeType":"ParameterList","parameters":[],"src":"1970:2:5"},"returnParameters":{"id":1503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1508,"src":"2011:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1501,"name":"uint256","nodeType":"ElementaryTypeName","src":"2011:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2010:9:5"},"scope":1778,"src":"1950:111:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1953],"body":{"id":1530,"nodeType":"Block","src":"2217:157:5","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1518,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"2235:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1519,"name":"ERC721EnumerableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"2243:27:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721EnumerableUpgradeable_$1778_$","typeString":"type(contract ERC721EnumerableUpgradeable)"}},"id":1520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2271:11:5","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":1508,"src":"2243:39:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2243:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2235:49:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473","id":1523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2286:46:5","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":1517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2227:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:106:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1525,"nodeType":"ExpressionStatement","src":"2227:106:5"},{"expression":{"baseExpression":{"id":1526,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"2350:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1528,"indexExpression":{"id":1527,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"2361:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2350:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1516,"id":1529,"nodeType":"Return","src":"2343:24:5"}]},"documentation":{"id":1509,"nodeType":"StructuredDocumentation","src":"2067:61:5","text":" @dev See {IERC721Enumerable-tokenByIndex}."},"functionSelector":"4f6ccce7","id":1531,"implemented":true,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"2142:12:5","nodeType":"FunctionDefinition","overrides":{"id":1513,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:5"},"parameters":{"id":1512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1511,"mutability":"mutable","name":"index","nameLocation":"2163:5:5","nodeType":"VariableDeclaration","scope":1531,"src":"2155:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2155:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2154:15:5"},"returnParameters":{"id":1516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1531,"src":"2208:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1514,"name":"uint256","nodeType":"ElementaryTypeName","src":"2208:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2207:9:5"},"scope":1778,"src":"2133:241:5","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1251],"body":{"id":1610,"nodeType":"Block","src":"2604:729:5","statements":[{"expression":{"arguments":[{"id":1547,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2641:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1548,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"2647:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1549,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"2651:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1550,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"2665:9:5","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":1544,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2614:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721EnumerableUpgradeable_$1778_$","typeString":"type(contract super ERC721EnumerableUpgradeable)"}},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2620:20:5","memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1251,"src":"2614:26:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2614:61:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1552,"nodeType":"ExpressionStatement","src":"2614:61:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1553,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"2690:9:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2690:13:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1561,"nodeType":"IfStatement","src":"2686:219:5","trueBody":{"id":1560,"nodeType":"Block","src":"2705:200:5","statements":[{"expression":{"arguments":[{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472616e7366657273206e6f7420737570706f72746564","id":1557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2838:55:5","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":1556,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2831:6:5","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:63:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1559,"nodeType":"ExpressionStatement","src":"2831:63:5"}]}},{"assignments":[1563],"declarations":[{"constant":false,"id":1563,"mutability":"mutable","name":"tokenId","nameLocation":"2923:7:5","nodeType":"VariableDeclaration","scope":1610,"src":"2915:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1562,"name":"uint256","nodeType":"ElementaryTypeName","src":"2915:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1565,"initialValue":{"id":1564,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"2933:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2915:30:5"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1566,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"2960:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2976:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1567,"name":"address","nodeType":"ElementaryTypeName","src":"2968:7:5","typeDescriptions":{}}},"id":1570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2960:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1577,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"3055:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1578,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3063:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3055:10:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1586,"nodeType":"IfStatement","src":"3051:88:5","trueBody":{"id":1585,"nodeType":"Block","src":"3067:72:5","statements":[{"expression":{"arguments":[{"id":1581,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"3114:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1582,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"3120:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1580,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1724,"src":"3081:32:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3081:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1584,"nodeType":"ExpressionStatement","src":"3081:47:5"}]}},"id":1587,"nodeType":"IfStatement","src":"2956:183:5","trueBody":{"id":1576,"nodeType":"Block","src":"2980:65:5","statements":[{"expression":{"arguments":[{"id":1573,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"3026:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1572,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"2994:31:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2994:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1575,"nodeType":"ExpressionStatement","src":"2994:40:5"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1588,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3152:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3166:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3158:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1589,"name":"address","nodeType":"ElementaryTypeName","src":"3158:7:5","typeDescriptions":{}}},"id":1592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3158:10:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3152:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1599,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3250:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1600,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1534,"src":"3256:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3250:10:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1608,"nodeType":"IfStatement","src":"3246:81:5","trueBody":{"id":1607,"nodeType":"Block","src":"3262:65:5","statements":[{"expression":{"arguments":[{"id":1603,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"3304:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1604,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"3308:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1602,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"3276:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:40:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1606,"nodeType":"ExpressionStatement","src":"3276:40:5"}]}},"id":1609,"nodeType":"IfStatement","src":"3148:179:5","trueBody":{"id":1598,"nodeType":"Block","src":"3170:70:5","statements":[{"expression":{"arguments":[{"id":1595,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"3221:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1594,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1772,"src":"3184:36:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3184:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1597,"nodeType":"ExpressionStatement","src":"3184:45:5"}]}}]},"documentation":{"id":1532,"nodeType":"StructuredDocumentation","src":"2380:58:5","text":" @dev See {ERC721-_beforeTokenTransfer}."},"id":1611,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"2452:20:5","nodeType":"FunctionDefinition","overrides":{"id":1542,"nodeType":"OverrideSpecifier","overrides":[],"src":"2595:8:5"},"parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1534,"mutability":"mutable","name":"from","nameLocation":"2490:4:5","nodeType":"VariableDeclaration","scope":1611,"src":"2482:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1533,"name":"address","nodeType":"ElementaryTypeName","src":"2482:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1536,"mutability":"mutable","name":"to","nameLocation":"2512:2:5","nodeType":"VariableDeclaration","scope":1611,"src":"2504:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1535,"name":"address","nodeType":"ElementaryTypeName","src":"2504:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1538,"mutability":"mutable","name":"firstTokenId","nameLocation":"2532:12:5","nodeType":"VariableDeclaration","scope":1611,"src":"2524:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1537,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1540,"mutability":"mutable","name":"batchSize","nameLocation":"2562:9:5","nodeType":"VariableDeclaration","scope":1611,"src":"2554:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2472:105:5"},"returnParameters":{"id":1543,"nodeType":"ParameterList","parameters":[],"src":"2604:0:5"},"scope":1778,"src":"2443:890:5","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1640,"nodeType":"Block","src":"3701:154:5","statements":[{"assignments":[1620],"declarations":[{"constant":false,"id":1620,"mutability":"mutable","name":"length","nameLocation":"3719:6:5","nodeType":"VariableDeclaration","scope":1640,"src":"3711:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1619,"name":"uint256","nodeType":"ElementaryTypeName","src":"3711:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1625,"initialValue":{"arguments":[{"id":1623,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"3756:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1621,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"3728:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3746:9:5","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":438,"src":"3728:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3728:31:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3711:48:5"},{"expression":{"id":1632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1626,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3769:12:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":1629,"indexExpression":{"id":1627,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"3782:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3769:16:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1630,"indexExpression":{"id":1628,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"3786:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3769:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1631,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"3796:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3769:34:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1633,"nodeType":"ExpressionStatement","src":"3769:34:5"},{"expression":{"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1634,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"3813:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1636,"indexExpression":{"id":1635,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1616,"src":"3831:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3813:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1637,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"3842:6:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3813:35:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1639,"nodeType":"ExpressionStatement","src":"3813:35:5"}]},"documentation":{"id":1612,"nodeType":"StructuredDocumentation","src":"3339:283:5","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":1641,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"3636:27:5","nodeType":"FunctionDefinition","parameters":{"id":1617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1614,"mutability":"mutable","name":"to","nameLocation":"3672:2:5","nodeType":"VariableDeclaration","scope":1641,"src":"3664:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1613,"name":"address","nodeType":"ElementaryTypeName","src":"3664:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1616,"mutability":"mutable","name":"tokenId","nameLocation":"3684:7:5","nodeType":"VariableDeclaration","scope":1641,"src":"3676:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1615,"name":"uint256","nodeType":"ElementaryTypeName","src":"3676:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3663:29:5"},"returnParameters":{"id":1618,"nodeType":"ParameterList","parameters":[],"src":"3701:0:5"},"scope":1778,"src":"3627:228:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1660,"nodeType":"Block","src":"4116:95:5","statements":[{"expression":{"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1647,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"4126:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1649,"indexExpression":{"id":1648,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1644,"src":"4142:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4126:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1650,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"4153:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4164:6:5","memberName":"length","nodeType":"MemberAccess","src":"4153:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4126:44:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1653,"nodeType":"ExpressionStatement","src":"4126:44:5"},{"expression":{"arguments":[{"id":1657,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1644,"src":"4196:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1654,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"4180:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:4:5","memberName":"push","nodeType":"MemberAccess","src":"4180:15:5","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":1658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1659,"nodeType":"ExpressionStatement","src":"4180:24:5"}]},"documentation":{"id":1642,"nodeType":"StructuredDocumentation","src":"3861:184:5","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":1661,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"4059:31:5","nodeType":"FunctionDefinition","parameters":{"id":1645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1644,"mutability":"mutable","name":"tokenId","nameLocation":"4099:7:5","nodeType":"VariableDeclaration","scope":1661,"src":"4091:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1643,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:17:5"},"returnParameters":{"id":1646,"nodeType":"ParameterList","parameters":[],"src":"4116:0:5"},"scope":1778,"src":"4050:161:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1723,"nodeType":"Block","src":"4909:900:5","statements":[{"assignments":[1670],"declarations":[{"constant":false,"id":1670,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"5098:14:5","nodeType":"VariableDeclaration","scope":1723,"src":"5090:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1669,"name":"uint256","nodeType":"ElementaryTypeName","src":"5090:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1677,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1673,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5143:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1671,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"5115:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Upgradeable_$1270_$","typeString":"type(contract ERC721Upgradeable)"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5133:9:5","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":438,"src":"5115:27:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":1674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5115:33:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5151:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5115:37:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5090:62:5"},{"assignments":[1679],"declarations":[{"constant":false,"id":1679,"mutability":"mutable","name":"tokenIndex","nameLocation":"5170:10:5","nodeType":"VariableDeclaration","scope":1723,"src":"5162:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1678,"name":"uint256","nodeType":"ElementaryTypeName","src":"5162:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1683,"initialValue":{"baseExpression":{"id":1680,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"5183:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1682,"indexExpression":{"id":1681,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1666,"src":"5201:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5183:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5162:47:5"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1684,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"5313:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1685,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"5327:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5313:28:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1710,"nodeType":"IfStatement","src":"5309:323:5","trueBody":{"id":1709,"nodeType":"Block","src":"5343:289:5","statements":[{"assignments":[1688],"declarations":[{"constant":false,"id":1688,"mutability":"mutable","name":"lastTokenId","nameLocation":"5365:11:5","nodeType":"VariableDeclaration","scope":1709,"src":"5357:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1687,"name":"uint256","nodeType":"ElementaryTypeName","src":"5357:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1694,"initialValue":{"baseExpression":{"baseExpression":{"id":1689,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5379:12:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":1691,"indexExpression":{"id":1690,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5392:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5379:18:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1693,"indexExpression":{"id":1692,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"5398:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5379:34:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5357:56:5"},{"expression":{"id":1701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1695,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5428:12:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":1698,"indexExpression":{"id":1696,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5441:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5428:18:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1699,"indexExpression":{"id":1697,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"5447:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5428:30:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1700,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1688,"src":"5461:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5428:44:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1702,"nodeType":"ExpressionStatement","src":"5428:44:5"},{"expression":{"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1703,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"5544:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1705,"indexExpression":{"id":1704,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1688,"src":"5562:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5544:30:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1706,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"5577:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5544:43:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1708,"nodeType":"ExpressionStatement","src":"5544:43:5"}]}},{"expression":{"id":1714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5718:33:5","subExpression":{"baseExpression":{"id":1711,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"5725:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1713,"indexExpression":{"id":1712,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1666,"src":"5743:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5725:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1715,"nodeType":"ExpressionStatement","src":"5718:33:5"},{"expression":{"id":1721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5761:41:5","subExpression":{"baseExpression":{"baseExpression":{"id":1716,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"5768:12:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":1718,"indexExpression":{"id":1717,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5781:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5768:18:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1720,"indexExpression":{"id":1719,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"5787:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5768:34:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1722,"nodeType":"ExpressionStatement","src":"5761:41:5"}]},"documentation":{"id":1662,"nodeType":"StructuredDocumentation","src":"4217:606:5","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":1724,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"4837:32:5","nodeType":"FunctionDefinition","parameters":{"id":1667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1664,"mutability":"mutable","name":"from","nameLocation":"4878:4:5","nodeType":"VariableDeclaration","scope":1724,"src":"4870:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1663,"name":"address","nodeType":"ElementaryTypeName","src":"4870:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1666,"mutability":"mutable","name":"tokenId","nameLocation":"4892:7:5","nodeType":"VariableDeclaration","scope":1724,"src":"4884:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1665,"name":"uint256","nodeType":"ElementaryTypeName","src":"4884:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4869:31:5"},"returnParameters":{"id":1668,"nodeType":"ParameterList","parameters":[],"src":"4909:0:5"},"scope":1778,"src":"4828:981:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1771,"nodeType":"Block","src":"6168:990:5","statements":[{"assignments":[1731],"declarations":[{"constant":false,"id":1731,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"6354:14:5","nodeType":"VariableDeclaration","scope":1771,"src":"6346:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1730,"name":"uint256","nodeType":"ElementaryTypeName","src":"6346:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1736,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1732,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6371:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6382:6:5","memberName":"length","nodeType":"MemberAccess","src":"6371:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6391:1:5","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6371:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6346:46:5"},{"assignments":[1738],"declarations":[{"constant":false,"id":1738,"mutability":"mutable","name":"tokenIndex","nameLocation":"6410:10:5","nodeType":"VariableDeclaration","scope":1771,"src":"6402:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1737,"name":"uint256","nodeType":"ElementaryTypeName","src":"6402:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1742,"initialValue":{"baseExpression":{"id":1739,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"6423:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1741,"indexExpression":{"id":1740,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"6439:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6423:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6402:45:5"},{"assignments":[1744],"declarations":[{"constant":false,"id":1744,"mutability":"mutable","name":"lastTokenId","nameLocation":"6777:11:5","nodeType":"VariableDeclaration","scope":1771,"src":"6769:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1743,"name":"uint256","nodeType":"ElementaryTypeName","src":"6769:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1748,"initialValue":{"baseExpression":{"id":1745,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6791:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1747,"indexExpression":{"id":1746,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1731,"src":"6802:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6791:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6769:48:5"},{"expression":{"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1749,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"6828:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1751,"indexExpression":{"id":1750,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"6839:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6828:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1752,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"6853:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6828:36:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1754,"nodeType":"ExpressionStatement","src":"6828:36:5"},{"expression":{"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1755,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"6932:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1757,"indexExpression":{"id":1756,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"6948:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6932:28:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1758,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"6963:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6932:41:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1760,"nodeType":"ExpressionStatement","src":"6932:41:5"},{"expression":{"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7094:31:5","subExpression":{"baseExpression":{"id":1761,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"7101:15:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":1763,"indexExpression":{"id":1762,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"7117:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7101:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1765,"nodeType":"ExpressionStatement","src":"7094:31:5"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1766,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"7135:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7146:3:5","memberName":"pop","nodeType":"MemberAccess","src":"7135:14:5","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":1769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7135:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1770,"nodeType":"ExpressionStatement","src":"7135:16:5"}]},"documentation":{"id":1725,"nodeType":"StructuredDocumentation","src":"5815:277:5","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":1772,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"6106:36:5","nodeType":"FunctionDefinition","parameters":{"id":1728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1727,"mutability":"mutable","name":"tokenId","nameLocation":"6151:7:5","nodeType":"VariableDeclaration","scope":1772,"src":"6143:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1726,"name":"uint256","nodeType":"ElementaryTypeName","src":"6143:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6142:17:5"},"returnParameters":{"id":1729,"nodeType":"ParameterList","parameters":[],"src":"6168:0:5"},"scope":1778,"src":"6097:1061:5","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"constant":false,"documentation":{"id":1773,"nodeType":"StructuredDocumentation","src":"7164:254:5","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":1777,"mutability":"mutable","name":"__gap","nameLocation":"7443:5:5","nodeType":"VariableDeclaration","scope":1778,"src":"7423:25:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage","typeString":"uint256[46]"},"typeName":{"baseType":{"id":1774,"name":"uint256","nodeType":"ElementaryTypeName","src":"7423:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1776,"length":{"hexValue":"3436","id":1775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7431:2:5","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"nodeType":"ArrayTypeName","src":"7423:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage_ptr","typeString":"uint256[46]"}},"visibility":"private"}],"scope":1779,"src":"483:6968:5","usedErrors":[]}],"src":"128:7324:5"},"id":5},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"ERC165Upgradeable":[2526],"ERC721URIStorageUpgradeable":[1923],"ERC721Upgradeable":[1270],"IERC165Upgradeable":[2538],"IERC721MetadataUpgradeable":[1981],"IERC721ReceiverUpgradeable":[1288],"IERC721Upgradeable":[1404],"Initializable":[300],"MathUpgradeable":[3403],"StringsUpgradeable":[2482]},"id":1924,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1780,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:6"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"../ERC721Upgradeable.sol","id":1781,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1924,"sourceUnit":1271,"src":"153:34:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../../proxy/utils/Initializable.sol","id":1782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1924,"sourceUnit":301,"src":"188:48:6","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1784,"name":"Initializable","nameLocations":["357:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"357:13:6"},"id":1785,"nodeType":"InheritanceSpecifier","src":"357:13:6"},{"baseName":{"id":1786,"name":"ERC721Upgradeable","nameLocations":["372:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"372:17:6"},"id":1787,"nodeType":"InheritanceSpecifier","src":"372:17:6"}],"canonicalName":"ERC721URIStorageUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1783,"nodeType":"StructuredDocumentation","src":"238:69:6","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":true,"id":1923,"linearizedBaseContracts":[1923,1270,1981,1404,2526,2538,2307,300],"name":"ERC721URIStorageUpgradeable","nameLocation":"326:27:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":1792,"nodeType":"Block","src":"457:7:6","statements":[]},"id":1793,"implemented":true,"kind":"function","modifiers":[{"id":1790,"kind":"modifierInvocation","modifierName":{"id":1789,"name":"onlyInitializing","nameLocations":["440:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"440:16:6"},"nodeType":"ModifierInvocation","src":"440:16:6"}],"name":"__ERC721URIStorage_init","nameLocation":"405:23:6","nodeType":"FunctionDefinition","parameters":{"id":1788,"nodeType":"ParameterList","parameters":[],"src":"428:2:6"},"returnParameters":{"id":1791,"nodeType":"ParameterList","parameters":[],"src":"457:0:6"},"scope":1923,"src":"396:68:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1798,"nodeType":"Block","src":"541:7:6","statements":[]},"id":1799,"implemented":true,"kind":"function","modifiers":[{"id":1796,"kind":"modifierInvocation","modifierName":{"id":1795,"name":"onlyInitializing","nameLocations":["524:16:6"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"524:16:6"},"nodeType":"ModifierInvocation","src":"524:16:6"}],"name":"__ERC721URIStorage_init_unchained","nameLocation":"479:33:6","nodeType":"FunctionDefinition","parameters":{"id":1794,"nodeType":"ParameterList","parameters":[],"src":"512:2:6"},"returnParameters":{"id":1797,"nodeType":"ParameterList","parameters":[],"src":"541:0:6"},"scope":1923,"src":"470:78:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"global":false,"id":1802,"libraryName":{"id":1800,"name":"StringsUpgradeable","nameLocations":["559:18:6"],"nodeType":"IdentifierPath","referencedDeclaration":2482,"src":"559:18:6"},"nodeType":"UsingForDirective","src":"553:37:6","typeName":{"id":1801,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":1806,"mutability":"mutable","name":"_tokenURIs","nameLocation":"670:10:6","nodeType":"VariableDeclaration","scope":1923,"src":"635:45:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":1805,"keyType":{"id":1803,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"635:26:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueType":{"id":1804,"name":"string","nodeType":"ElementaryTypeName","src":"654:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[525],"body":{"id":1864,"nodeType":"Block","src":"835:520:6","statements":[{"expression":{"arguments":[{"id":1816,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"860:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1815,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"845:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"845:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1818,"nodeType":"ExpressionStatement","src":"845:23:6"},{"assignments":[1820],"declarations":[{"constant":false,"id":1820,"mutability":"mutable","name":"_tokenURI","nameLocation":"893:9:6","nodeType":"VariableDeclaration","scope":1864,"src":"879:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1819,"name":"string","nodeType":"ElementaryTypeName","src":"879:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1824,"initialValue":{"baseExpression":{"id":1821,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"905:10:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1823,"indexExpression":{"id":1822,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"916:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"905:19:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"879:45:6"},{"assignments":[1826],"declarations":[{"constant":false,"id":1826,"mutability":"mutable","name":"base","nameLocation":"948:4:6","nodeType":"VariableDeclaration","scope":1864,"src":"934:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1825,"name":"string","nodeType":"ElementaryTypeName","src":"934:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1829,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1827,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"955:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"934:31:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1832,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"1044:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1038:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1830,"name":"bytes","nodeType":"ElementaryTypeName","src":"1038:5:6","typeDescriptions":{}}},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1038:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1050:6:6","memberName":"length","nodeType":"MemberAccess","src":"1038:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1060:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1038:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1840,"nodeType":"IfStatement","src":"1034:70:6","trueBody":{"id":1839,"nodeType":"Block","src":"1063:41:6","statements":[{"expression":{"id":1837,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"1084:9:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1814,"id":1838,"nodeType":"Return","src":"1077:16:6"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1843,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"1212:9:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1206:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1841,"name":"bytes","nodeType":"ElementaryTypeName","src":"1206:5:6","typeDescriptions":{}}},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1223:6:6","memberName":"length","nodeType":"MemberAccess","src":"1206:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1206:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1858,"nodeType":"IfStatement","src":"1202:106:6","trueBody":{"id":1857,"nodeType":"Block","src":"1235:73:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1852,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"1280:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1853,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"1286:9:6","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":1850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1263:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1267:12:6","memberName":"encodePacked","nodeType":"MemberAccess","src":"1263:16:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1263:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1256:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1848,"name":"string","nodeType":"ElementaryTypeName","src":"1256:6:6","typeDescriptions":{}}},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1256:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1814,"id":1856,"nodeType":"Return","src":"1249:48:6"}]}},{"expression":{"arguments":[{"id":1861,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"1340:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1859,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1325:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorageUpgradeable_$1923_$","typeString":"type(contract super ERC721URIStorageUpgradeable)"}},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1331:8:6","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":525,"src":"1325:14:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1325:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1814,"id":1863,"nodeType":"Return","src":"1318:30:6"}]},"documentation":{"id":1807,"nodeType":"StructuredDocumentation","src":"687:55:6","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":1865,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"756:8:6","nodeType":"FunctionDefinition","overrides":{"id":1811,"nodeType":"OverrideSpecifier","overrides":[],"src":"802:8:6"},"parameters":{"id":1810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1809,"mutability":"mutable","name":"tokenId","nameLocation":"773:7:6","nodeType":"VariableDeclaration","scope":1865,"src":"765:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1808,"name":"uint256","nodeType":"ElementaryTypeName","src":"765:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"764:17:6"},"returnParameters":{"id":1814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1865,"src":"820:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1812,"name":"string","nodeType":"ElementaryTypeName","src":"820:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"819:15:6"},"scope":1923,"src":"747:608:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1886,"nodeType":"Block","src":"1583:133:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1875,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"1609:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1874,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"1601:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1601:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e","id":1877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:48:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""},"value":"ERC721URIStorage: URI set of nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""}],"id":1873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1593:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:75:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1879,"nodeType":"ExpressionStatement","src":"1593:75:6"},{"expression":{"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1880,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"1678:10:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1882,"indexExpression":{"id":1881,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1868,"src":"1689:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1678:19:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1883,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1870,"src":"1700:9:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1678:31:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1885,"nodeType":"ExpressionStatement","src":"1678:31:6"}]},"documentation":{"id":1866,"nodeType":"StructuredDocumentation","src":"1361:136:6","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":1887,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1511:12:6","nodeType":"FunctionDefinition","parameters":{"id":1871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1868,"mutability":"mutable","name":"tokenId","nameLocation":"1532:7:6","nodeType":"VariableDeclaration","scope":1887,"src":"1524:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1867,"name":"uint256","nodeType":"ElementaryTypeName","src":"1524:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"_tokenURI","nameLocation":"1555:9:6","nodeType":"VariableDeclaration","scope":1887,"src":"1541:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1869,"name":"string","nodeType":"ElementaryTypeName","src":"1541:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1523:42:6"},"returnParameters":{"id":1872,"nodeType":"ParameterList","parameters":[],"src":"1583:0:6"},"scope":1923,"src":"1502:214:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[988],"body":{"id":1916,"nodeType":"Block","src":"1992:142:6","statements":[{"expression":{"arguments":[{"id":1897,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2014:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1894,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2002:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorageUpgradeable_$1923_$","typeString":"type(contract super ERC721URIStorageUpgradeable)"}},"id":1896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2008:5:6","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":988,"src":"2002:11:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2002:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1899,"nodeType":"ExpressionStatement","src":"2002:20:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"baseExpression":{"id":1902,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"2043:10:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1904,"indexExpression":{"id":1903,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2054:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2043:19:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":1901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1900,"name":"bytes","nodeType":"ElementaryTypeName","src":"2037:5:6","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2064:6:6","memberName":"length","nodeType":"MemberAccess","src":"2037:33:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2074:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2037:38:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1915,"nodeType":"IfStatement","src":"2033:95:6","trueBody":{"id":1914,"nodeType":"Block","src":"2077:51:6","statements":[{"expression":{"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2091:26:6","subExpression":{"baseExpression":{"id":1909,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1806,"src":"2098:10:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":1911,"indexExpression":{"id":1910,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2109:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2098:19:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1913,"nodeType":"ExpressionStatement","src":"2091:26:6"}]}}]},"documentation":{"id":1888,"nodeType":"StructuredDocumentation","src":"1722:207:6","text":" @dev See {ERC721-_burn}. This override additionally checks to see if a\n token-specific URI was set for the token, and if so, it deletes the token URI from\n the storage mapping."},"id":1917,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1943:5:6","nodeType":"FunctionDefinition","overrides":{"id":1892,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:6"},"parameters":{"id":1891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1890,"mutability":"mutable","name":"tokenId","nameLocation":"1957:7:6","nodeType":"VariableDeclaration","scope":1917,"src":"1949:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1889,"name":"uint256","nodeType":"ElementaryTypeName","src":"1949:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1948:17:6"},"returnParameters":{"id":1893,"nodeType":"ParameterList","parameters":[],"src":"1992:0:6"},"scope":1923,"src":"1934:200:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":1918,"nodeType":"StructuredDocumentation","src":"2140:254:6","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":1922,"mutability":"mutable","name":"__gap","nameLocation":"2419:5:6","nodeType":"VariableDeclaration","scope":1923,"src":"2399:25:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":1919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2399:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1921,"length":{"hexValue":"3439","id":1920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2407:2:6","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2399:11:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"}],"scope":1924,"src":"308:2119:6","usedErrors":[]}],"src":"128:2300:6"},"id":6},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[2538],"IERC721EnumerableUpgradeable":[1954],"IERC721Upgradeable":[1404]},"id":1955,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1925,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"129:23:7"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"../IERC721Upgradeable.sol","id":1926,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1955,"sourceUnit":1405,"src":"154:35:7","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1928,"name":"IERC721Upgradeable","nameLocations":["370:18:7"],"nodeType":"IdentifierPath","referencedDeclaration":1404,"src":"370:18:7"},"id":1929,"nodeType":"InheritanceSpecifier","src":"370:18:7"}],"canonicalName":"IERC721EnumerableUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":1927,"nodeType":"StructuredDocumentation","src":"191:136:7","text":" @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":1954,"linearizedBaseContracts":[1954,1404,2538],"name":"IERC721EnumerableUpgradeable","nameLocation":"338:28:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1930,"nodeType":"StructuredDocumentation","src":"395:82:7","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","id":1935,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"491:11:7","nodeType":"FunctionDefinition","parameters":{"id":1931,"nodeType":"ParameterList","parameters":[],"src":"502:2:7"},"returnParameters":{"id":1934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1935,"src":"528:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1932,"name":"uint256","nodeType":"ElementaryTypeName","src":"528:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"527:9:7"},"scope":1954,"src":"482:55:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1936,"nodeType":"StructuredDocumentation","src":"543:171:7","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":1945,"implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"728:19:7","nodeType":"FunctionDefinition","parameters":{"id":1941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1938,"mutability":"mutable","name":"owner","nameLocation":"756:5:7","nodeType":"VariableDeclaration","scope":1945,"src":"748:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1937,"name":"address","nodeType":"ElementaryTypeName","src":"748:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1940,"mutability":"mutable","name":"index","nameLocation":"771:5:7","nodeType":"VariableDeclaration","scope":1945,"src":"763:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1939,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"747:30:7"},"returnParameters":{"id":1944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1945,"src":"801:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1942,"name":"uint256","nodeType":"ElementaryTypeName","src":"801:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"800:9:7"},"scope":1954,"src":"719:91:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1946,"nodeType":"StructuredDocumentation","src":"816:164:7","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":1953,"implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"994:12:7","nodeType":"FunctionDefinition","parameters":{"id":1949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1948,"mutability":"mutable","name":"index","nameLocation":"1015:5:7","nodeType":"VariableDeclaration","scope":1953,"src":"1007:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1947,"name":"uint256","nodeType":"ElementaryTypeName","src":"1007:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1006:15:7"},"returnParameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1953,"src":"1045:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1950,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1044:9:7"},"scope":1954,"src":"985:69:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1955,"src":"328:728:7","usedErrors":[]}],"src":"129:928:7"},"id":7},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[2538],"IERC721MetadataUpgradeable":[1981],"IERC721Upgradeable":[1404]},"id":1982,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1956,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:8"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"../IERC721Upgradeable.sol","id":1957,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1982,"sourceUnit":1405,"src":"137:35:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1959,"name":"IERC721Upgradeable","nameLocations":["348:18:8"],"nodeType":"IdentifierPath","referencedDeclaration":1404,"src":"348:18:8"},"id":1960,"nodeType":"InheritanceSpecifier","src":"348:18:8"}],"canonicalName":"IERC721MetadataUpgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":1958,"nodeType":"StructuredDocumentation","src":"174:133:8","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":1981,"linearizedBaseContracts":[1981,1404,2538],"name":"IERC721MetadataUpgradeable","nameLocation":"318:26:8","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1961,"nodeType":"StructuredDocumentation","src":"373:58:8","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":1966,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"445:4:8","nodeType":"FunctionDefinition","parameters":{"id":1962,"nodeType":"ParameterList","parameters":[],"src":"449:2:8"},"returnParameters":{"id":1965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1966,"src":"475:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1963,"name":"string","nodeType":"ElementaryTypeName","src":"475:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"474:15:8"},"scope":1981,"src":"436:54:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1967,"nodeType":"StructuredDocumentation","src":"496:60:8","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":1972,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"570:6:8","nodeType":"FunctionDefinition","parameters":{"id":1968,"nodeType":"ParameterList","parameters":[],"src":"576:2:8"},"returnParameters":{"id":1971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1970,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1972,"src":"602:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1969,"name":"string","nodeType":"ElementaryTypeName","src":"602:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"601:15:8"},"scope":1981,"src":"561:56:8","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1973,"nodeType":"StructuredDocumentation","src":"623:90:8","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":1980,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"727:8:8","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"tokenId","nameLocation":"744:7:8","nodeType":"VariableDeclaration","scope":1980,"src":"736:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1974,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"735:17:8"},"returnParameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1980,"src":"776:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1977,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"775:15:8"},"scope":1981,"src":"718:73:8","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1982,"src":"308:485:8","usedErrors":[]}],"src":"112:682:8"},"id":8},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265]},"id":2266,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1983,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:9"},{"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":1984,"nodeType":"StructuredDocumentation","src":"126:67:9","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":2265,"linearizedBaseContracts":[2265],"name":"AddressUpgradeable","nameLocation":"202:18:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":1998,"nodeType":"Block","src":"1252:254:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1992,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"1476:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1484:4:9","memberName":"code","nodeType":"MemberAccess","src":"1476:12:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1489:6:9","memberName":"length","nodeType":"MemberAccess","src":"1476:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1498:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1476:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1991,"id":1997,"nodeType":"Return","src":"1469:30:9"}]},"documentation":{"id":1985,"nodeType":"StructuredDocumentation","src":"227:954:9","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n ====\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":1999,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1195:10:9","nodeType":"FunctionDefinition","parameters":{"id":1988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1987,"mutability":"mutable","name":"account","nameLocation":"1214:7:9","nodeType":"VariableDeclaration","scope":1999,"src":"1206:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1986,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1205:17:9"},"returnParameters":{"id":1991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1999,"src":"1246:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1989,"name":"bool","nodeType":"ElementaryTypeName","src":"1246:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1245:6:9"},"scope":2265,"src":"1186:320:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2032,"nodeType":"Block","src":"2494:241:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2010,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2520:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$2265","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$2265","typeString":"library AddressUpgradeable"}],"id":2009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2008,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:9","typeDescriptions":{}}},"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2512:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2526:7:9","memberName":"balance","nodeType":"MemberAccess","src":"2512:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2013,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2004,"src":"2537:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2512:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":2015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2545:31:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":2007,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2504:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2017,"nodeType":"ExpressionStatement","src":"2504:73:9"},{"assignments":[2019,null],"declarations":[{"constant":false,"id":2019,"mutability":"mutable","name":"success","nameLocation":"2594:7:9","nodeType":"VariableDeclaration","scope":2032,"src":"2589:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2018,"name":"bool","nodeType":"ElementaryTypeName","src":"2589:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":2026,"initialValue":{"arguments":[{"hexValue":"","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2637:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":2020,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2002,"src":"2607:9:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2617:4:9","memberName":"call","nodeType":"MemberAccess","src":"2607:14:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2004,"src":"2629:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2607:29:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2607:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2588:52:9"},{"expression":{"arguments":[{"id":2028,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2019,"src":"2658:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":2029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2667:60:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":2027,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2650:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2650:78:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2031,"nodeType":"ExpressionStatement","src":"2650:78:9"}]},"documentation":{"id":2000,"nodeType":"StructuredDocumentation","src":"1512:906:9","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://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":2033,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2432:9:9","nodeType":"FunctionDefinition","parameters":{"id":2005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2002,"mutability":"mutable","name":"recipient","nameLocation":"2458:9:9","nodeType":"VariableDeclaration","scope":2033,"src":"2442:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2001,"name":"address","nodeType":"ElementaryTypeName","src":"2442:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":2004,"mutability":"mutable","name":"amount","nameLocation":"2477:6:9","nodeType":"VariableDeclaration","scope":2033,"src":"2469:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2003,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2441:43:9"},"returnParameters":{"id":2006,"nodeType":"ParameterList","parameters":[],"src":"2494:0:9"},"scope":2265,"src":"2423:312:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2050,"nodeType":"Block","src":"3566:96:9","statements":[{"expression":{"arguments":[{"id":2044,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"3605:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2045,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2038,"src":"3613:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3619:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":2047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3622:32:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":2043,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2091,2135],"referencedDeclaration":2135,"src":"3583:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3583:72:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2042,"id":2049,"nodeType":"Return","src":"3576:79:9"}]},"documentation":{"id":2034,"nodeType":"StructuredDocumentation","src":"2741:731:9","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":2051,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3486:12:9","nodeType":"FunctionDefinition","parameters":{"id":2039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2036,"mutability":"mutable","name":"target","nameLocation":"3507:6:9","nodeType":"VariableDeclaration","scope":2051,"src":"3499:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2035,"name":"address","nodeType":"ElementaryTypeName","src":"3499:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2038,"mutability":"mutable","name":"data","nameLocation":"3528:4:9","nodeType":"VariableDeclaration","scope":2051,"src":"3515:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2037,"name":"bytes","nodeType":"ElementaryTypeName","src":"3515:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3498:35:9"},"returnParameters":{"id":2042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2051,"src":"3552:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2040,"name":"bytes","nodeType":"ElementaryTypeName","src":"3552:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3551:14:9"},"scope":2265,"src":"3477:185:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2070,"nodeType":"Block","src":"4031:76:9","statements":[{"expression":{"arguments":[{"id":2064,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2054,"src":"4070:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2065,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"4078:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4084:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2067,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"4087:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2063,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2091,2135],"referencedDeclaration":2135,"src":"4048:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4048:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2062,"id":2069,"nodeType":"Return","src":"4041:59:9"}]},"documentation":{"id":2052,"nodeType":"StructuredDocumentation","src":"3668:211:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2071,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3893:12:9","nodeType":"FunctionDefinition","parameters":{"id":2059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2054,"mutability":"mutable","name":"target","nameLocation":"3923:6:9","nodeType":"VariableDeclaration","scope":2071,"src":"3915:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2053,"name":"address","nodeType":"ElementaryTypeName","src":"3915:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2056,"mutability":"mutable","name":"data","nameLocation":"3952:4:9","nodeType":"VariableDeclaration","scope":2071,"src":"3939:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2055,"name":"bytes","nodeType":"ElementaryTypeName","src":"3939:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2058,"mutability":"mutable","name":"errorMessage","nameLocation":"3980:12:9","nodeType":"VariableDeclaration","scope":2071,"src":"3966:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2057,"name":"string","nodeType":"ElementaryTypeName","src":"3966:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3905:93:9"},"returnParameters":{"id":2062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2071,"src":"4017:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2060,"name":"bytes","nodeType":"ElementaryTypeName","src":"4017:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4016:14:9"},"scope":2265,"src":"3884:223:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2090,"nodeType":"Block","src":"4612:111:9","statements":[{"expression":{"arguments":[{"id":2084,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"4651:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2085,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"4659:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2086,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"4665:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":2087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4672:43:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":2083,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2091,2135],"referencedDeclaration":2135,"src":"4629:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4629:87:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2082,"id":2089,"nodeType":"Return","src":"4622:94:9"}]},"documentation":{"id":2072,"nodeType":"StructuredDocumentation","src":"4113:351:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":2091,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4478:21:9","nodeType":"FunctionDefinition","parameters":{"id":2079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2074,"mutability":"mutable","name":"target","nameLocation":"4517:6:9","nodeType":"VariableDeclaration","scope":2091,"src":"4509:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2073,"name":"address","nodeType":"ElementaryTypeName","src":"4509:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2076,"mutability":"mutable","name":"data","nameLocation":"4546:4:9","nodeType":"VariableDeclaration","scope":2091,"src":"4533:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2075,"name":"bytes","nodeType":"ElementaryTypeName","src":"4533:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2078,"mutability":"mutable","name":"value","nameLocation":"4568:5:9","nodeType":"VariableDeclaration","scope":2091,"src":"4560:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2077,"name":"uint256","nodeType":"ElementaryTypeName","src":"4560:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4499:80:9"},"returnParameters":{"id":2082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2091,"src":"4598:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2080,"name":"bytes","nodeType":"ElementaryTypeName","src":"4598:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4597:14:9"},"scope":2265,"src":"4469:254:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2134,"nodeType":"Block","src":"5150:267:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2108,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5176:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$2265","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$2265","typeString":"library AddressUpgradeable"}],"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5168:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2106,"name":"address","nodeType":"ElementaryTypeName","src":"5168:7:9","typeDescriptions":{}}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5168:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:7:9","memberName":"balance","nodeType":"MemberAccess","src":"5168:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2098,"src":"5193:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5168:30:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":2113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5200:40:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":2105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5160:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2115,"nodeType":"ExpressionStatement","src":"5160:81:9"},{"assignments":[2117,2119],"declarations":[{"constant":false,"id":2117,"mutability":"mutable","name":"success","nameLocation":"5257:7:9","nodeType":"VariableDeclaration","scope":2134,"src":"5252:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2116,"name":"bool","nodeType":"ElementaryTypeName","src":"5252:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2119,"mutability":"mutable","name":"returndata","nameLocation":"5279:10:9","nodeType":"VariableDeclaration","scope":2134,"src":"5266:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2118,"name":"bytes","nodeType":"ElementaryTypeName","src":"5266:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2126,"initialValue":{"arguments":[{"id":2124,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2096,"src":"5319:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2120,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"5293:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5300:4:9","memberName":"call","nodeType":"MemberAccess","src":"5293:11:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2122,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2098,"src":"5312:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5293:25:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5251:73:9"},{"expression":{"arguments":[{"id":2128,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"5368:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2129,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2117,"src":"5376:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2130,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2119,"src":"5385:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2131,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"5397:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2127,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"5341:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2104,"id":2133,"nodeType":"Return","src":"5334:76:9"}]},"documentation":{"id":2092,"nodeType":"StructuredDocumentation","src":"4729:237:9","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2135,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4980:21:9","nodeType":"FunctionDefinition","parameters":{"id":2101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2094,"mutability":"mutable","name":"target","nameLocation":"5019:6:9","nodeType":"VariableDeclaration","scope":2135,"src":"5011:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2093,"name":"address","nodeType":"ElementaryTypeName","src":"5011:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2096,"mutability":"mutable","name":"data","nameLocation":"5048:4:9","nodeType":"VariableDeclaration","scope":2135,"src":"5035:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2095,"name":"bytes","nodeType":"ElementaryTypeName","src":"5035:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2098,"mutability":"mutable","name":"value","nameLocation":"5070:5:9","nodeType":"VariableDeclaration","scope":2135,"src":"5062:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2097,"name":"uint256","nodeType":"ElementaryTypeName","src":"5062:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2100,"mutability":"mutable","name":"errorMessage","nameLocation":"5099:12:9","nodeType":"VariableDeclaration","scope":2135,"src":"5085:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2099,"name":"string","nodeType":"ElementaryTypeName","src":"5085:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5001:116:9"},"returnParameters":{"id":2104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2135,"src":"5136:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2102,"name":"bytes","nodeType":"ElementaryTypeName","src":"5136:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5135:14:9"},"scope":2265,"src":"4971:446:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2151,"nodeType":"Block","src":"5694:97:9","statements":[{"expression":{"arguments":[{"id":2146,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"5730:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2147,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2140,"src":"5738:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":2148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5744:39:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":2145,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[2152,2181],"referencedDeclaration":2181,"src":"5711:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5711:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2144,"id":2150,"nodeType":"Return","src":"5704:80:9"}]},"documentation":{"id":2136,"nodeType":"StructuredDocumentation","src":"5423:166:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2152,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5603:18:9","nodeType":"FunctionDefinition","parameters":{"id":2141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2138,"mutability":"mutable","name":"target","nameLocation":"5630:6:9","nodeType":"VariableDeclaration","scope":2152,"src":"5622:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2137,"name":"address","nodeType":"ElementaryTypeName","src":"5622:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2140,"mutability":"mutable","name":"data","nameLocation":"5651:4:9","nodeType":"VariableDeclaration","scope":2152,"src":"5638:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2139,"name":"bytes","nodeType":"ElementaryTypeName","src":"5638:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5621:35:9"},"returnParameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2152,"src":"5680:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2142,"name":"bytes","nodeType":"ElementaryTypeName","src":"5680:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5679:14:9"},"scope":2265,"src":"5594:197:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2180,"nodeType":"Block","src":"6133:168:9","statements":[{"assignments":[2165,2167],"declarations":[{"constant":false,"id":2165,"mutability":"mutable","name":"success","nameLocation":"6149:7:9","nodeType":"VariableDeclaration","scope":2180,"src":"6144:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2164,"name":"bool","nodeType":"ElementaryTypeName","src":"6144:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2167,"mutability":"mutable","name":"returndata","nameLocation":"6171:10:9","nodeType":"VariableDeclaration","scope":2180,"src":"6158:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2166,"name":"bytes","nodeType":"ElementaryTypeName","src":"6158:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2172,"initialValue":{"arguments":[{"id":2170,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2157,"src":"6203:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2168,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"6185:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6192:10:9","memberName":"staticcall","nodeType":"MemberAccess","src":"6185:17:9","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":2171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6185:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6143:65:9"},{"expression":{"arguments":[{"id":2174,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"6252:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2175,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"6260:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2176,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2167,"src":"6269:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2177,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2159,"src":"6281:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2173,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"6225:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6225:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2163,"id":2179,"nodeType":"Return","src":"6218:76:9"}]},"documentation":{"id":2153,"nodeType":"StructuredDocumentation","src":"5797:173:9","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2181,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5984:18:9","nodeType":"FunctionDefinition","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2155,"mutability":"mutable","name":"target","nameLocation":"6020:6:9","nodeType":"VariableDeclaration","scope":2181,"src":"6012:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2154,"name":"address","nodeType":"ElementaryTypeName","src":"6012:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2157,"mutability":"mutable","name":"data","nameLocation":"6049:4:9","nodeType":"VariableDeclaration","scope":2181,"src":"6036:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2156,"name":"bytes","nodeType":"ElementaryTypeName","src":"6036:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2159,"mutability":"mutable","name":"errorMessage","nameLocation":"6077:12:9","nodeType":"VariableDeclaration","scope":2181,"src":"6063:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2158,"name":"string","nodeType":"ElementaryTypeName","src":"6063:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6002:93:9"},"returnParameters":{"id":2163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2181,"src":"6119:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2161,"name":"bytes","nodeType":"ElementaryTypeName","src":"6119:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6118:14:9"},"scope":2265,"src":"5975:326:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2219,"nodeType":"Block","src":"6783:434:9","statements":[{"condition":{"id":2195,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2186,"src":"6797:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2217,"nodeType":"Block","src":"7153:58:9","statements":[{"expression":{"arguments":[{"id":2213,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"7175:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2214,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2190,"src":"7187:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2212,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"7167:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7167:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2216,"nodeType":"ExpressionStatement","src":"7167:33:9"}]},"id":2218,"nodeType":"IfStatement","src":"6793:418:9","trueBody":{"id":2211,"nodeType":"Block","src":"6806:341:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2196,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"6824:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6835:6:9","memberName":"length","nodeType":"MemberAccess","src":"6824:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6845:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6824:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2208,"nodeType":"IfStatement","src":"6820:286:9","trueBody":{"id":2207,"nodeType":"Block","src":"6848:258:9","statements":[{"expression":{"arguments":[{"arguments":[{"id":2202,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"7050:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2201,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1999,"src":"7039:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7039:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:31:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":2200,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7031:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7031:60:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2206,"nodeType":"ExpressionStatement","src":"7031:60:9"}]}},{"expression":{"id":2209,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"7126:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2194,"id":2210,"nodeType":"Return","src":"7119:17:9"}]}}]},"documentation":{"id":2182,"nodeType":"StructuredDocumentation","src":"6307:277:9","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":2220,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"6598:26:9","nodeType":"FunctionDefinition","parameters":{"id":2191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"mutability":"mutable","name":"target","nameLocation":"6642:6:9","nodeType":"VariableDeclaration","scope":2220,"src":"6634:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2183,"name":"address","nodeType":"ElementaryTypeName","src":"6634:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2186,"mutability":"mutable","name":"success","nameLocation":"6663:7:9","nodeType":"VariableDeclaration","scope":2220,"src":"6658:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2185,"name":"bool","nodeType":"ElementaryTypeName","src":"6658:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2188,"mutability":"mutable","name":"returndata","nameLocation":"6693:10:9","nodeType":"VariableDeclaration","scope":2220,"src":"6680:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2187,"name":"bytes","nodeType":"ElementaryTypeName","src":"6680:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2190,"mutability":"mutable","name":"errorMessage","nameLocation":"6727:12:9","nodeType":"VariableDeclaration","scope":2220,"src":"6713:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2189,"name":"string","nodeType":"ElementaryTypeName","src":"6713:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6624:121:9"},"returnParameters":{"id":2194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2220,"src":"6769:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2192,"name":"bytes","nodeType":"ElementaryTypeName","src":"6769:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6768:14:9"},"scope":2265,"src":"6589:628:9","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2243,"nodeType":"Block","src":"7598:135:9","statements":[{"condition":{"id":2232,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2223,"src":"7612:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2241,"nodeType":"Block","src":"7669:58:9","statements":[{"expression":{"arguments":[{"id":2237,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"7691:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2238,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2227,"src":"7703:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2236,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"7683:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2240,"nodeType":"ExpressionStatement","src":"7683:33:9"}]},"id":2242,"nodeType":"IfStatement","src":"7608:119:9","trueBody":{"id":2235,"nodeType":"Block","src":"7621:42:9","statements":[{"expression":{"id":2233,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2225,"src":"7642:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2231,"id":2234,"nodeType":"Return","src":"7635:17:9"}]}}]},"documentation":{"id":2221,"nodeType":"StructuredDocumentation","src":"7223:210:9","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":2244,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7447:16:9","nodeType":"FunctionDefinition","parameters":{"id":2228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2223,"mutability":"mutable","name":"success","nameLocation":"7478:7:9","nodeType":"VariableDeclaration","scope":2244,"src":"7473:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2222,"name":"bool","nodeType":"ElementaryTypeName","src":"7473:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2225,"mutability":"mutable","name":"returndata","nameLocation":"7508:10:9","nodeType":"VariableDeclaration","scope":2244,"src":"7495:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2224,"name":"bytes","nodeType":"ElementaryTypeName","src":"7495:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2227,"mutability":"mutable","name":"errorMessage","nameLocation":"7542:12:9","nodeType":"VariableDeclaration","scope":2244,"src":"7528:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2226,"name":"string","nodeType":"ElementaryTypeName","src":"7528:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7463:97:9"},"returnParameters":{"id":2231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2244,"src":"7584:12:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2229,"name":"bytes","nodeType":"ElementaryTypeName","src":"7584:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7583:14:9"},"scope":2265,"src":"7438:295:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2263,"nodeType":"Block","src":"7822:457:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2251,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"7898:10:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7909:6:9","memberName":"length","nodeType":"MemberAccess","src":"7898:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7918:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7898:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2261,"nodeType":"Block","src":"8228:45:9","statements":[{"expression":{"arguments":[{"id":2258,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"8249:12:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2257,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8242:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8242:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2260,"nodeType":"ExpressionStatement","src":"8242:20:9"}]},"id":2262,"nodeType":"IfStatement","src":"7894:379:9","trueBody":{"id":2256,"nodeType":"Block","src":"7921:301:9","statements":[{"AST":{"nodeType":"YulBlock","src":"8079:133:9","statements":[{"nodeType":"YulVariableDeclaration","src":"8097:40:9","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8126:10:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8120:5:9"},"nodeType":"YulFunctionCall","src":"8120:17:9"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8101:15:9","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8165:2:9","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8169:10:9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8161:3:9"},"nodeType":"YulFunctionCall","src":"8161:19:9"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8182:15:9"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8154:6:9"},"nodeType":"YulFunctionCall","src":"8154:44:9"},"nodeType":"YulExpressionStatement","src":"8154:44:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2246,"isOffset":false,"isSlot":false,"src":"8126:10:9","valueSize":1},{"declaration":2246,"isOffset":false,"isSlot":false,"src":"8169:10:9","valueSize":1}],"id":2255,"nodeType":"InlineAssembly","src":"8070:142:9"}]}}]},"id":2264,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"7748:7:9","nodeType":"FunctionDefinition","parameters":{"id":2249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2246,"mutability":"mutable","name":"returndata","nameLocation":"7769:10:9","nodeType":"VariableDeclaration","scope":2264,"src":"7756:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2245,"name":"bytes","nodeType":"ElementaryTypeName","src":"7756:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2248,"mutability":"mutable","name":"errorMessage","nameLocation":"7795:12:9","nodeType":"VariableDeclaration","scope":2264,"src":"7781:26:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2247,"name":"string","nodeType":"ElementaryTypeName","src":"7781:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7755:53:9"},"returnParameters":{"id":2250,"nodeType":"ParameterList","parameters":[],"src":"7822:0:9"},"scope":2265,"src":"7739:540:9","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2266,"src":"194:8087:9","usedErrors":[]}],"src":"101:8181:9"},"id":9},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"Initializable":[300]},"id":2308,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2267,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:10"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":2268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2308,"sourceUnit":301,"src":"110:42:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2270,"name":"Initializable","nameLocations":["691:13:10"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"691:13:10"},"id":2271,"nodeType":"InheritanceSpecifier","src":"691:13:10"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2269,"nodeType":"StructuredDocumentation","src":"154:496:10","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":2307,"linearizedBaseContracts":[2307,300],"name":"ContextUpgradeable","nameLocation":"669:18:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":2276,"nodeType":"Block","src":"763:7:10","statements":[]},"id":2277,"implemented":true,"kind":"function","modifiers":[{"id":2274,"kind":"modifierInvocation","modifierName":{"id":2273,"name":"onlyInitializing","nameLocations":["746:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"746:16:10"},"nodeType":"ModifierInvocation","src":"746:16:10"}],"name":"__Context_init","nameLocation":"720:14:10","nodeType":"FunctionDefinition","parameters":{"id":2272,"nodeType":"ParameterList","parameters":[],"src":"734:2:10"},"returnParameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"763:0:10"},"scope":2307,"src":"711:59:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2282,"nodeType":"Block","src":"838:7:10","statements":[]},"id":2283,"implemented":true,"kind":"function","modifiers":[{"id":2280,"kind":"modifierInvocation","modifierName":{"id":2279,"name":"onlyInitializing","nameLocations":["821:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"821:16:10"},"nodeType":"ModifierInvocation","src":"821:16:10"}],"name":"__Context_init_unchained","nameLocation":"785:24:10","nodeType":"FunctionDefinition","parameters":{"id":2278,"nodeType":"ParameterList","parameters":[],"src":"809:2:10"},"returnParameters":{"id":2281,"nodeType":"ParameterList","parameters":[],"src":"838:0:10"},"scope":2307,"src":"776:69:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2291,"nodeType":"Block","src":"912:34:10","statements":[{"expression":{"expression":{"id":2288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"929:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"933:6:10","memberName":"sender","nodeType":"MemberAccess","src":"929:10:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2287,"id":2290,"nodeType":"Return","src":"922:17:10"}]},"id":2292,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"859:10:10","nodeType":"FunctionDefinition","parameters":{"id":2284,"nodeType":"ParameterList","parameters":[],"src":"869:2:10"},"returnParameters":{"id":2287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2292,"src":"903:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2285,"name":"address","nodeType":"ElementaryTypeName","src":"903:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"902:9:10"},"scope":2307,"src":"850:96:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2300,"nodeType":"Block","src":"1019:32:10","statements":[{"expression":{"expression":{"id":2297,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1036:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1040:4:10","memberName":"data","nodeType":"MemberAccess","src":"1036:8:10","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2296,"id":2299,"nodeType":"Return","src":"1029:15:10"}]},"id":2301,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"961:8:10","nodeType":"FunctionDefinition","parameters":{"id":2293,"nodeType":"ParameterList","parameters":[],"src":"969:2:10"},"returnParameters":{"id":2296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2301,"src":"1003:14:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2294,"name":"bytes","nodeType":"ElementaryTypeName","src":"1003:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1002:16:10"},"scope":2307,"src":"952:99:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"constant":false,"documentation":{"id":2302,"nodeType":"StructuredDocumentation","src":"1057:254:10","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":2306,"mutability":"mutable","name":"__gap","nameLocation":"1336:5:10","nodeType":"VariableDeclaration","scope":2307,"src":"1316:25:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"1316:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2305,"length":{"hexValue":"3530","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:2:10","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1316:11:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":2308,"src":"651:693:10","usedErrors":[]}],"src":"86:1259:10"},"id":10},"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol","exportedSymbols":{"MathUpgradeable":[3403],"StringsUpgradeable":[2482]},"id":2483,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2309,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:11"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol","file":"./math/MathUpgradeable.sol","id":2310,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2483,"sourceUnit":3404,"src":"126:36:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"StringsUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":2311,"nodeType":"StructuredDocumentation","src":"164:34:11","text":" @dev String operations."},"fullyImplemented":true,"id":2482,"linearizedBaseContracts":[2482],"name":"StringsUpgradeable","nameLocation":"207:18:11","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2314,"mutability":"constant","name":"_SYMBOLS","nameLocation":"257:8:11","nodeType":"VariableDeclaration","scope":2482,"src":"232:54:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2312,"name":"bytes16","nodeType":"ElementaryTypeName","src":"232:7:11","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"268:18:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":2317,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"315:15:11","nodeType":"VariableDeclaration","scope":2482,"src":"292:43:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2315,"name":"uint8","nodeType":"ElementaryTypeName","src":"292:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333:2:11","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":2364,"nodeType":"Block","src":"508:636:11","statements":[{"id":2363,"nodeType":"UncheckedBlock","src":"518:620:11","statements":[{"assignments":[2326],"declarations":[{"constant":false,"id":2326,"mutability":"mutable","name":"length","nameLocation":"550:6:11","nodeType":"VariableDeclaration","scope":2363,"src":"542:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2325,"name":"uint256","nodeType":"ElementaryTypeName","src":"542:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2333,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2320,"src":"581:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2327,"name":"MathUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"559:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MathUpgradeable_$3403_$","typeString":"type(library MathUpgradeable)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"575:5:11","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":3240,"src":"559:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"559:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"590:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"559:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"542:49:11"},{"assignments":[2335],"declarations":[{"constant":false,"id":2335,"mutability":"mutable","name":"buffer","nameLocation":"619:6:11","nodeType":"VariableDeclaration","scope":2363,"src":"605:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2334,"name":"string","nodeType":"ElementaryTypeName","src":"605:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2340,"initialValue":{"arguments":[{"id":2338,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2326,"src":"639:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"628:10:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2336,"name":"string","nodeType":"ElementaryTypeName","src":"632:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"628:18:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"605:41:11"},{"assignments":[2342],"declarations":[{"constant":false,"id":2342,"mutability":"mutable","name":"ptr","nameLocation":"668:3:11","nodeType":"VariableDeclaration","scope":2363,"src":"660:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2341,"name":"uint256","nodeType":"ElementaryTypeName","src":"660:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2343,"nodeType":"VariableDeclarationStatement","src":"660:11:11"},{"AST":{"nodeType":"YulBlock","src":"741:67:11","statements":[{"nodeType":"YulAssignment","src":"759:35:11","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"770:6:11"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"782:2:11","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"786:6:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"778:3:11"},"nodeType":"YulFunctionCall","src":"778:15:11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"766:3:11"},"nodeType":"YulFunctionCall","src":"766:28:11"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"759:3:11"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2335,"isOffset":false,"isSlot":false,"src":"770:6:11","valueSize":1},{"declaration":2326,"isOffset":false,"isSlot":false,"src":"786:6:11","valueSize":1},{"declaration":2342,"isOffset":false,"isSlot":false,"src":"759:3:11","valueSize":1}],"id":2344,"nodeType":"InlineAssembly","src":"732:76:11"},{"body":{"id":2359,"nodeType":"Block","src":"834:267:11","statements":[{"expression":{"id":2347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"852:5:11","subExpression":{"id":2346,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"852:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2348,"nodeType":"ExpressionStatement","src":"852:5:11"},{"AST":{"nodeType":"YulBlock","src":"935:84:11","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"965:3:11"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"979:5:11"},{"kind":"number","nodeType":"YulLiteral","src":"986:2:11","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"975:3:11"},"nodeType":"YulFunctionCall","src":"975:14:11"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"991:8:11"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"970:4:11"},"nodeType":"YulFunctionCall","src":"970:30:11"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"957:7:11"},"nodeType":"YulFunctionCall","src":"957:44:11"},"nodeType":"YulExpressionStatement","src":"957:44:11"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":2314,"isOffset":false,"isSlot":false,"src":"991:8:11","valueSize":1},{"declaration":2342,"isOffset":false,"isSlot":false,"src":"965:3:11","valueSize":1},{"declaration":2320,"isOffset":false,"isSlot":false,"src":"979:5:11","valueSize":1}],"id":2349,"nodeType":"InlineAssembly","src":"926:93:11"},{"expression":{"id":2352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2350,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2320,"src":"1036:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2353,"nodeType":"ExpressionStatement","src":"1036:11:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2354,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2320,"src":"1069:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1078:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1069:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2358,"nodeType":"IfStatement","src":"1065:21:11","trueBody":{"id":2357,"nodeType":"Break","src":"1081:5:11"}}]},"condition":{"hexValue":"74727565","id":2345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"828:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":2360,"nodeType":"WhileStatement","src":"821:280:11"},{"expression":{"id":2361,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2335,"src":"1121:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2324,"id":2362,"nodeType":"Return","src":"1114:13:11"}]}]},"documentation":{"id":2318,"nodeType":"StructuredDocumentation","src":"342:90:11","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":2365,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"446:8:11","nodeType":"FunctionDefinition","parameters":{"id":2321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2320,"mutability":"mutable","name":"value","nameLocation":"463:5:11","nodeType":"VariableDeclaration","scope":2365,"src":"455:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2319,"name":"uint256","nodeType":"ElementaryTypeName","src":"455:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"454:15:11"},"returnParameters":{"id":2324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2365,"src":"493:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2322,"name":"string","nodeType":"ElementaryTypeName","src":"493:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"492:15:11"},"scope":2482,"src":"437:707:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2384,"nodeType":"Block","src":"1323:111:11","statements":[{"id":2383,"nodeType":"UncheckedBlock","src":"1333:95:11","statements":[{"expression":{"arguments":[{"id":2374,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"1376:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"1406:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2375,"name":"MathUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3403,"src":"1383:15:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MathUpgradeable_$3403_$","typeString":"type(library MathUpgradeable)"}},"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1399:6:11","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":3363,"src":"1383:22:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1383:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1415:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1383:33:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2373,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2385,2461,2481],"referencedDeclaration":2461,"src":"1364:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1364:53:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2372,"id":2382,"nodeType":"Return","src":"1357:60:11"}]}]},"documentation":{"id":2366,"nodeType":"StructuredDocumentation","src":"1150:94:11","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":2385,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1258:11:11","nodeType":"FunctionDefinition","parameters":{"id":2369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2368,"mutability":"mutable","name":"value","nameLocation":"1278:5:11","nodeType":"VariableDeclaration","scope":2385,"src":"1270:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2367,"name":"uint256","nodeType":"ElementaryTypeName","src":"1270:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1269:15:11"},"returnParameters":{"id":2372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2385,"src":"1308:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2370,"name":"string","nodeType":"ElementaryTypeName","src":"1308:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1307:15:11"},"scope":2482,"src":"1249:185:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2460,"nodeType":"Block","src":"1647:347:11","statements":[{"assignments":[2396],"declarations":[{"constant":false,"id":2396,"mutability":"mutable","name":"buffer","nameLocation":"1670:6:11","nodeType":"VariableDeclaration","scope":2460,"src":"1657:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2395,"name":"bytes","nodeType":"ElementaryTypeName","src":"1657:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2405,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1689:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2400,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"1693:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1689:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1689:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1679:9:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2397,"name":"bytes","nodeType":"ElementaryTypeName","src":"1683:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1657:47:11"},{"expression":{"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2406,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"1714:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2408,"indexExpression":{"hexValue":"30","id":2407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1721:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1714:9:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1726:3:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1714:15:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2411,"nodeType":"ExpressionStatement","src":"1714:15:11"},{"expression":{"id":2416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2412,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"1739:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2414,"indexExpression":{"hexValue":"31","id":2413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1746:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1739:9:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":2415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1751:3:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1739:15:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2417,"nodeType":"ExpressionStatement","src":"1739:15:11"},{"body":{"id":2446,"nodeType":"Block","src":"1809:83:11","statements":[{"expression":{"id":2440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2432,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"1823:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2434,"indexExpression":{"id":2433,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"1830:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1823:9:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2435,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"1835:8:11","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2439,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"1844:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:3:11","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1844:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1835:21:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1823:33:11","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2441,"nodeType":"ExpressionStatement","src":"1823:33:11"},{"expression":{"id":2444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"1870:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1880:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1870:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2445,"nodeType":"ExpressionStatement","src":"1870:11:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"1797:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":2427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1797:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2447,"initializationExpression":{"assignments":[2419],"declarations":[{"constant":false,"id":2419,"mutability":"mutable","name":"i","nameLocation":"1777:1:11","nodeType":"VariableDeclaration","scope":2447,"src":"1769:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2418,"name":"uint256","nodeType":"ElementaryTypeName","src":"1769:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2425,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1781:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2421,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"1785:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1781:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1794:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1781:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1769:26:11"},"loopExpression":{"expression":{"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1804:3:11","subExpression":{"id":2429,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"1806:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2431,"nodeType":"ExpressionStatement","src":"1804:3:11"},"nodeType":"ForStatement","src":"1764:128:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2449,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"1909:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1918:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1909:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":2452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1921:34:11","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":2448,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1901:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2454,"nodeType":"ExpressionStatement","src":"1901:55:11"},{"expression":{"arguments":[{"id":2457,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"1980:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1973:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2455,"name":"string","nodeType":"ElementaryTypeName","src":"1973:6:11","typeDescriptions":{}}},"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1973:14:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2394,"id":2459,"nodeType":"Return","src":"1966:21:11"}]},"documentation":{"id":2386,"nodeType":"StructuredDocumentation","src":"1440:112:11","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":2461,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1566:11:11","nodeType":"FunctionDefinition","parameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2388,"mutability":"mutable","name":"value","nameLocation":"1586:5:11","nodeType":"VariableDeclaration","scope":2461,"src":"1578:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1578:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2390,"mutability":"mutable","name":"length","nameLocation":"1601:6:11","nodeType":"VariableDeclaration","scope":2461,"src":"1593:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2389,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1577:31:11"},"returnParameters":{"id":2394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2461,"src":"1632:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2392,"name":"string","nodeType":"ElementaryTypeName","src":"1632:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1631:15:11"},"scope":2482,"src":"1557:437:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2480,"nodeType":"Block","src":"2219:76:11","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":2474,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"2264:4:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2256:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2472,"name":"uint160","nodeType":"ElementaryTypeName","src":"2256:7:11","typeDescriptions":{}}},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2256:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2248:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2470,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:11","typeDescriptions":{}}},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2248:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2477,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"2272:15:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2469,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[2385,2461,2481],"referencedDeclaration":2461,"src":"2236:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":2478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2236:52:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2468,"id":2479,"nodeType":"Return","src":"2229:59:11"}]},"documentation":{"id":2462,"nodeType":"StructuredDocumentation","src":"2000:141:11","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":2481,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2155:11:11","nodeType":"FunctionDefinition","parameters":{"id":2465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2464,"mutability":"mutable","name":"addr","nameLocation":"2175:4:11","nodeType":"VariableDeclaration","scope":2481,"src":"2167:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2463,"name":"address","nodeType":"ElementaryTypeName","src":"2167:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2166:14:11"},"returnParameters":{"id":2468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2481,"src":"2204:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2466,"name":"string","nodeType":"ElementaryTypeName","src":"2204:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2203:15:11"},"scope":2482,"src":"2146:149:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2483,"src":"199:2098:11","usedErrors":[]}],"src":"101:2197:11"},"id":11},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ERC165Upgradeable":[2526],"IERC165Upgradeable":[2538],"Initializable":[300]},"id":2527,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2484,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:12"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","file":"./IERC165Upgradeable.sol","id":2485,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2527,"sourceUnit":2539,"src":"124:34:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../../proxy/utils/Initializable.sol","id":2486,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2527,"sourceUnit":301,"src":"159:45:12","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2488,"name":"Initializable","nameLocations":["822:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"822:13:12"},"id":2489,"nodeType":"InheritanceSpecifier","src":"822:13:12"},{"baseName":{"id":2490,"name":"IERC165Upgradeable","nameLocations":["837:18:12"],"nodeType":"IdentifierPath","referencedDeclaration":2538,"src":"837:18:12"},"id":2491,"nodeType":"InheritanceSpecifier","src":"837:18:12"}],"canonicalName":"ERC165Upgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":2487,"nodeType":"StructuredDocumentation","src":"206:576:12","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":2526,"linearizedBaseContracts":[2526,2538,300],"name":"ERC165Upgradeable","nameLocation":"801:17:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":2496,"nodeType":"Block","src":"913:7:12","statements":[]},"id":2497,"implemented":true,"kind":"function","modifiers":[{"id":2494,"kind":"modifierInvocation","modifierName":{"id":2493,"name":"onlyInitializing","nameLocations":["896:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"896:16:12"},"nodeType":"ModifierInvocation","src":"896:16:12"}],"name":"__ERC165_init","nameLocation":"871:13:12","nodeType":"FunctionDefinition","parameters":{"id":2492,"nodeType":"ParameterList","parameters":[],"src":"884:2:12"},"returnParameters":{"id":2495,"nodeType":"ParameterList","parameters":[],"src":"913:0:12"},"scope":2526,"src":"862:58:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2502,"nodeType":"Block","src":"987:7:12","statements":[]},"id":2503,"implemented":true,"kind":"function","modifiers":[{"id":2500,"kind":"modifierInvocation","modifierName":{"id":2499,"name":"onlyInitializing","nameLocations":["970:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"970:16:12"},"nodeType":"ModifierInvocation","src":"970:16:12"}],"name":"__ERC165_init_unchained","nameLocation":"935:23:12","nodeType":"FunctionDefinition","parameters":{"id":2498,"nodeType":"ParameterList","parameters":[],"src":"958:2:12"},"returnParameters":{"id":2501,"nodeType":"ParameterList","parameters":[],"src":"987:0:12"},"scope":2526,"src":"926:68:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2537],"body":{"id":2519,"nodeType":"Block","src":"1151:75:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2512,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2506,"src":"1168:11:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2514,"name":"IERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2538,"src":"1188:18:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$2538_$","typeString":"type(contract IERC165Upgradeable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165Upgradeable_$2538_$","typeString":"type(contract IERC165Upgradeable)"}],"id":2513,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1183:4:12","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1183:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165Upgradeable_$2538","typeString":"type(contract IERC165Upgradeable)"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1208:11:12","memberName":"interfaceId","nodeType":"MemberAccess","src":"1183:36:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1168:51:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2511,"id":2518,"nodeType":"Return","src":"1161:58:12"}]},"documentation":{"id":2504,"nodeType":"StructuredDocumentation","src":"999:56:12","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2520,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1069:17:12","nodeType":"FunctionDefinition","overrides":{"id":2508,"nodeType":"OverrideSpecifier","overrides":[],"src":"1127:8:12"},"parameters":{"id":2507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2506,"mutability":"mutable","name":"interfaceId","nameLocation":"1094:11:12","nodeType":"VariableDeclaration","scope":2520,"src":"1087:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2505,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1087:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1086:20:12"},"returnParameters":{"id":2511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2520,"src":"1145:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2509,"name":"bool","nodeType":"ElementaryTypeName","src":"1145:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1144:6:12"},"scope":2526,"src":"1060:166:12","stateMutability":"view","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":2521,"nodeType":"StructuredDocumentation","src":"1232:254:12","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"id":2525,"mutability":"mutable","name":"__gap","nameLocation":"1511:5:12","nodeType":"VariableDeclaration","scope":2526,"src":"1491:25:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":2522,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2524,"length":{"hexValue":"3530","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1499:2:12","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1491:11:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"scope":2527,"src":"783:736:12","usedErrors":[]}],"src":"99:1421:12"},"id":12},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol","exportedSymbols":{"IERC165Upgradeable":[2538]},"id":2539,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2528,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":2529,"nodeType":"StructuredDocumentation","src":"125:279:13","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":2538,"linearizedBaseContracts":[2538],"name":"IERC165Upgradeable","nameLocation":"415:18:13","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2530,"nodeType":"StructuredDocumentation","src":"440:340:13","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":2537,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"794:17:13","nodeType":"FunctionDefinition","parameters":{"id":2533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2532,"mutability":"mutable","name":"interfaceId","nameLocation":"819:11:13","nodeType":"VariableDeclaration","scope":2537,"src":"812:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2531,"name":"bytes4","nodeType":"ElementaryTypeName","src":"812:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"811:20:13"},"returnParameters":{"id":2536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2537,"src":"855:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2534,"name":"bool","nodeType":"ElementaryTypeName","src":"855:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"854:6:13"},"scope":2538,"src":"785:76:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2539,"src":"405:458:13","usedErrors":[]}],"src":"100:764:13"},"id":13},"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol","exportedSymbols":{"MathUpgradeable":[3403]},"id":3404,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2540,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"MathUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":2541,"nodeType":"StructuredDocumentation","src":"128:73:14","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3403,"linearizedBaseContracts":[3403],"name":"MathUpgradeable","nameLocation":"210:15:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"MathUpgradeable.Rounding","id":2545,"members":[{"id":2542,"name":"Down","nameLocation":"256:4:14","nodeType":"EnumValue","src":"256:4:14"},{"id":2543,"name":"Up","nameLocation":"298:2:14","nodeType":"EnumValue","src":"298:2:14"},{"id":2544,"name":"Zero","nameLocation":"329:4:14","nodeType":"EnumValue","src":"329:4:14"}],"name":"Rounding","nameLocation":"237:8:14","nodeType":"EnumDefinition","src":"232:122:14"},{"body":{"id":2562,"nodeType":"Block","src":"491:37:14","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2555,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"508:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2556,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2550,"src":"512:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"508:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2559,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2550,"src":"520:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"508:13:14","trueExpression":{"id":2558,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"516:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2554,"id":2561,"nodeType":"Return","src":"501:20:14"}]},"documentation":{"id":2546,"nodeType":"StructuredDocumentation","src":"360:59:14","text":" @dev Returns the largest of two numbers."},"id":2563,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"433:3:14","nodeType":"FunctionDefinition","parameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2548,"mutability":"mutable","name":"a","nameLocation":"445:1:14","nodeType":"VariableDeclaration","scope":2563,"src":"437:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2547,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2550,"mutability":"mutable","name":"b","nameLocation":"456:1:14","nodeType":"VariableDeclaration","scope":2563,"src":"448:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2549,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"436:22:14"},"returnParameters":{"id":2554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2563,"src":"482:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2552,"name":"uint256","nodeType":"ElementaryTypeName","src":"482:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"481:9:14"},"scope":3403,"src":"424:104:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2580,"nodeType":"Block","src":"666:37:14","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2573,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2566,"src":"683:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2574,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"687:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"683:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2577,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"695:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"683:13:14","trueExpression":{"id":2576,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2566,"src":"691:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2572,"id":2579,"nodeType":"Return","src":"676:20:14"}]},"documentation":{"id":2564,"nodeType":"StructuredDocumentation","src":"534:60:14","text":" @dev Returns the smallest of two numbers."},"id":2581,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"608:3:14","nodeType":"FunctionDefinition","parameters":{"id":2569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2566,"mutability":"mutable","name":"a","nameLocation":"620:1:14","nodeType":"VariableDeclaration","scope":2581,"src":"612:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2565,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2568,"mutability":"mutable","name":"b","nameLocation":"631:1:14","nodeType":"VariableDeclaration","scope":2581,"src":"623:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2567,"name":"uint256","nodeType":"ElementaryTypeName","src":"623:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"611:22:14"},"returnParameters":{"id":2572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2581,"src":"657:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2570,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"656:9:14"},"scope":3403,"src":"599:104:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2603,"nodeType":"Block","src":"887:82:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2591,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2584,"src":"942:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2592,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"946:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"942:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2594,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"941:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2595,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2584,"src":"952:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2596,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"956:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"952:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2598,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"951:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"961:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"951:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2590,"id":2602,"nodeType":"Return","src":"934:28:14"}]},"documentation":{"id":2582,"nodeType":"StructuredDocumentation","src":"709:102:14","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2604,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"825:7:14","nodeType":"FunctionDefinition","parameters":{"id":2587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"a","nameLocation":"841:1:14","nodeType":"VariableDeclaration","scope":2604,"src":"833:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2583,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2586,"mutability":"mutable","name":"b","nameLocation":"852:1:14","nodeType":"VariableDeclaration","scope":2604,"src":"844:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2585,"name":"uint256","nodeType":"ElementaryTypeName","src":"844:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:22:14"},"returnParameters":{"id":2590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2604,"src":"878:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2588,"name":"uint256","nodeType":"ElementaryTypeName","src":"878:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"877:9:14"},"scope":3403,"src":"816:153:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2628,"nodeType":"Block","src":"1239:123:14","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2614,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"1327:1:14","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":"1332:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1327:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2618,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"1341:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1345:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1341:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2621,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1340:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2622,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"1350:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1340:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1354:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1340:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1327:28:14","trueExpression":{"hexValue":"30","id":2617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1336:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2613,"id":2627,"nodeType":"Return","src":"1320:35:14"}]},"documentation":{"id":2605,"nodeType":"StructuredDocumentation","src":"975:188:14","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":2629,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1177:7:14","nodeType":"FunctionDefinition","parameters":{"id":2610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2607,"mutability":"mutable","name":"a","nameLocation":"1193:1:14","nodeType":"VariableDeclaration","scope":2629,"src":"1185:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2609,"mutability":"mutable","name":"b","nameLocation":"1204:1:14","nodeType":"VariableDeclaration","scope":2629,"src":"1196:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2608,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1184:22:14"},"returnParameters":{"id":2613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2629,"src":"1230:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:14"},"scope":3403,"src":"1168:194:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2750,"nodeType":"Block","src":"1806:3797:14","statements":[{"id":2749,"nodeType":"UncheckedBlock","src":"1816:3781:14","statements":[{"assignments":[2642],"declarations":[{"constant":false,"id":2642,"mutability":"mutable","name":"prod0","nameLocation":"2145:5:14","nodeType":"VariableDeclaration","scope":2749,"src":"2137:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2641,"name":"uint256","nodeType":"ElementaryTypeName","src":"2137:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2643,"nodeType":"VariableDeclarationStatement","src":"2137:13:14"},{"assignments":[2645],"declarations":[{"constant":false,"id":2645,"mutability":"mutable","name":"prod1","nameLocation":"2217:5:14","nodeType":"VariableDeclaration","scope":2749,"src":"2209:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2644,"name":"uint256","nodeType":"ElementaryTypeName","src":"2209:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2646,"nodeType":"VariableDeclarationStatement","src":"2209:13:14"},{"AST":{"nodeType":"YulBlock","src":"2289:157:14","statements":[{"nodeType":"YulVariableDeclaration","src":"2307:30:14","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2324:1:14"},{"name":"y","nodeType":"YulIdentifier","src":"2327:1:14"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2334:1:14","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2330:3:14"},"nodeType":"YulFunctionCall","src":"2330:6:14"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2317:6:14"},"nodeType":"YulFunctionCall","src":"2317:20:14"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2311:2:14","type":""}]},{"nodeType":"YulAssignment","src":"2354:18:14","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2367:1:14"},{"name":"y","nodeType":"YulIdentifier","src":"2370:1:14"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2363:3:14"},"nodeType":"YulFunctionCall","src":"2363:9:14"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2354:5:14"}]},{"nodeType":"YulAssignment","src":"2389:43:14","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2406:2:14"},{"name":"prod0","nodeType":"YulIdentifier","src":"2410:5:14"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2402:3:14"},"nodeType":"YulFunctionCall","src":"2402:14:14"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2421:2:14"},{"name":"prod0","nodeType":"YulIdentifier","src":"2425:5:14"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2418:2:14"},"nodeType":"YulFunctionCall","src":"2418:13:14"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2398:3:14"},"nodeType":"YulFunctionCall","src":"2398:34:14"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2389:5:14"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2642,"isOffset":false,"isSlot":false,"src":"2354:5:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"2410:5:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"2425:5:14","valueSize":1},{"declaration":2645,"isOffset":false,"isSlot":false,"src":"2389:5:14","valueSize":1},{"declaration":2632,"isOffset":false,"isSlot":false,"src":"2324:1:14","valueSize":1},{"declaration":2632,"isOffset":false,"isSlot":false,"src":"2367:1:14","valueSize":1},{"declaration":2634,"isOffset":false,"isSlot":false,"src":"2327:1:14","valueSize":1},{"declaration":2634,"isOffset":false,"isSlot":false,"src":"2370:1:14","valueSize":1}],"id":2647,"nodeType":"InlineAssembly","src":"2280:166:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2648,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"2527:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2536:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2527:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2656,"nodeType":"IfStatement","src":"2523:75:14","trueBody":{"id":2655,"nodeType":"Block","src":"2539:59:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2651,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"2564:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2652,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2572:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2564:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2640,"id":2654,"nodeType":"Return","src":"2557:26:14"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2658,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"2708:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2659,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"2722:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2708:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2700:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2700:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2662,"nodeType":"ExpressionStatement","src":"2700:28:14"},{"assignments":[2664],"declarations":[{"constant":false,"id":2664,"mutability":"mutable","name":"remainder","nameLocation":"2992:9:14","nodeType":"VariableDeclaration","scope":2749,"src":"2984:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2663,"name":"uint256","nodeType":"ElementaryTypeName","src":"2984:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2665,"nodeType":"VariableDeclarationStatement","src":"2984:17:14"},{"AST":{"nodeType":"YulBlock","src":"3024:291:14","statements":[{"nodeType":"YulAssignment","src":"3093:38:14","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3113:1:14"},{"name":"y","nodeType":"YulIdentifier","src":"3116:1:14"},{"name":"denominator","nodeType":"YulIdentifier","src":"3119:11:14"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3106:6:14"},"nodeType":"YulFunctionCall","src":"3106:25:14"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3093:9:14"}]},{"nodeType":"YulAssignment","src":"3213:41:14","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3226:5:14"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3236:9:14"},{"name":"prod0","nodeType":"YulIdentifier","src":"3247:5:14"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3233:2:14"},"nodeType":"YulFunctionCall","src":"3233:20:14"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3222:3:14"},"nodeType":"YulFunctionCall","src":"3222:32:14"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3213:5:14"}]},{"nodeType":"YulAssignment","src":"3271:30:14","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3284:5:14"},{"name":"remainder","nodeType":"YulIdentifier","src":"3291:9:14"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3280:3:14"},"nodeType":"YulFunctionCall","src":"3280:21:14"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3271:5:14"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2636,"isOffset":false,"isSlot":false,"src":"3119:11:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"3247:5:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"3271:5:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"3284:5:14","valueSize":1},{"declaration":2645,"isOffset":false,"isSlot":false,"src":"3213:5:14","valueSize":1},{"declaration":2645,"isOffset":false,"isSlot":false,"src":"3226:5:14","valueSize":1},{"declaration":2664,"isOffset":false,"isSlot":false,"src":"3093:9:14","valueSize":1},{"declaration":2664,"isOffset":false,"isSlot":false,"src":"3236:9:14","valueSize":1},{"declaration":2664,"isOffset":false,"isSlot":false,"src":"3291:9:14","valueSize":1},{"declaration":2632,"isOffset":false,"isSlot":false,"src":"3113:1:14","valueSize":1},{"declaration":2634,"isOffset":false,"isSlot":false,"src":"3116:1:14","valueSize":1}],"id":2666,"nodeType":"InlineAssembly","src":"3015:300:14"},{"assignments":[2668],"declarations":[{"constant":false,"id":2668,"mutability":"mutable","name":"twos","nameLocation":"3630:4:14","nodeType":"VariableDeclaration","scope":2749,"src":"3622:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2667,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2676,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2669,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"3637:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3652:12:14","subExpression":{"id":2670,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"3653:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3667:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3652:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2674,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3651:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3637:32:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3622:47:14"},{"AST":{"nodeType":"YulBlock","src":"3692:362:14","statements":[{"nodeType":"YulAssignment","src":"3757:37:14","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3776:11:14"},{"name":"twos","nodeType":"YulIdentifier","src":"3789:4:14"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3772:3:14"},"nodeType":"YulFunctionCall","src":"3772:22:14"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3757:11:14"}]},{"nodeType":"YulAssignment","src":"3861:25:14","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3874:5:14"},{"name":"twos","nodeType":"YulIdentifier","src":"3881:4:14"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3870:3:14"},"nodeType":"YulFunctionCall","src":"3870:16:14"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3861:5:14"}]},{"nodeType":"YulAssignment","src":"4001:39:14","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4021:1:14","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4024:4:14"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4017:3:14"},"nodeType":"YulFunctionCall","src":"4017:12:14"},{"name":"twos","nodeType":"YulIdentifier","src":"4031:4:14"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4013:3:14"},"nodeType":"YulFunctionCall","src":"4013:23:14"},{"kind":"number","nodeType":"YulLiteral","src":"4038:1:14","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4009:3:14"},"nodeType":"YulFunctionCall","src":"4009:31:14"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"4001:4:14"}]}]},"evmVersion":"london","externalReferences":[{"declaration":2636,"isOffset":false,"isSlot":false,"src":"3757:11:14","valueSize":1},{"declaration":2636,"isOffset":false,"isSlot":false,"src":"3776:11:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"3861:5:14","valueSize":1},{"declaration":2642,"isOffset":false,"isSlot":false,"src":"3874:5:14","valueSize":1},{"declaration":2668,"isOffset":false,"isSlot":false,"src":"3789:4:14","valueSize":1},{"declaration":2668,"isOffset":false,"isSlot":false,"src":"3881:4:14","valueSize":1},{"declaration":2668,"isOffset":false,"isSlot":false,"src":"4001:4:14","valueSize":1},{"declaration":2668,"isOffset":false,"isSlot":false,"src":"4024:4:14","valueSize":1},{"declaration":2668,"isOffset":false,"isSlot":false,"src":"4031:4:14","valueSize":1}],"id":2677,"nodeType":"InlineAssembly","src":"3683:371:14"},{"expression":{"id":2682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2678,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"4120:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2679,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"4129:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2680,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2668,"src":"4137:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4129:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4120:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2683,"nodeType":"ExpressionStatement","src":"4120:21:14"},{"assignments":[2685],"declarations":[{"constant":false,"id":2685,"mutability":"mutable","name":"inverse","nameLocation":"4467:7:14","nodeType":"VariableDeclaration","scope":2749,"src":"4459:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2684,"name":"uint256","nodeType":"ElementaryTypeName","src":"4459:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2692,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4478:1:14","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2687,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"4482:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4478:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2689,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4477:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4497:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4477:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4459:39:14"},{"expression":{"id":2699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2693,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4715:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4726:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2695,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"4730:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2696,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4744:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4730:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4726:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4715:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2700,"nodeType":"ExpressionStatement","src":"4715:36:14"},{"expression":{"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2701,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4784:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4795:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2703,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"4799:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2704,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4813:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4799:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4795:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4784:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2708,"nodeType":"ExpressionStatement","src":"4784:36:14"},{"expression":{"id":2715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2709,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4854:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4865:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2711,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"4869:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2712,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4883:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4869:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4865:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4854:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2716,"nodeType":"ExpressionStatement","src":"4854:36:14"},{"expression":{"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2717,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4924:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4935:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2719,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"4939:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2720,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4953:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4939:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4935:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4924:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2724,"nodeType":"ExpressionStatement","src":"4924:36:14"},{"expression":{"id":2731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2725,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"4994:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5005:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2727,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5009:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2728,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"5023:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5009:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5005:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2732,"nodeType":"ExpressionStatement","src":"4994:36:14"},{"expression":{"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2733,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"5065:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5076:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2735,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2636,"src":"5080:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2736,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"5094:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5080:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:25:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2740,"nodeType":"ExpressionStatement","src":"5065:36:14"},{"expression":{"id":2745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2741,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"5535:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2742,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2642,"src":"5544:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2743,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2685,"src":"5552:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5544:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5535:24:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2746,"nodeType":"ExpressionStatement","src":"5535:24:14"},{"expression":{"id":2747,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"5580:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2640,"id":2748,"nodeType":"Return","src":"5573:13:14"}]}]},"documentation":{"id":2630,"nodeType":"StructuredDocumentation","src":"1368:305:14","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":2751,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1687:6:14","nodeType":"FunctionDefinition","parameters":{"id":2637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2632,"mutability":"mutable","name":"x","nameLocation":"1711:1:14","nodeType":"VariableDeclaration","scope":2751,"src":"1703:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2631,"name":"uint256","nodeType":"ElementaryTypeName","src":"1703:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2634,"mutability":"mutable","name":"y","nameLocation":"1730:1:14","nodeType":"VariableDeclaration","scope":2751,"src":"1722:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1722:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2636,"mutability":"mutable","name":"denominator","nameLocation":"1749:11:14","nodeType":"VariableDeclaration","scope":2751,"src":"1741:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1741:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1693:73:14"},"returnParameters":{"id":2640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2639,"mutability":"mutable","name":"result","nameLocation":"1798:6:14","nodeType":"VariableDeclaration","scope":2751,"src":"1790:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2638,"name":"uint256","nodeType":"ElementaryTypeName","src":"1790:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1789:16:14"},"scope":3403,"src":"1678:3925:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2794,"nodeType":"Block","src":"5883:189:14","statements":[{"assignments":[2767],"declarations":[{"constant":false,"id":2767,"mutability":"mutable","name":"result","nameLocation":"5901:6:14","nodeType":"VariableDeclaration","scope":2794,"src":"5893:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2766,"name":"uint256","nodeType":"ElementaryTypeName","src":"5893:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2773,"initialValue":{"arguments":[{"id":2769,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2754,"src":"5917:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2770,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"5920:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2771,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2758,"src":"5923:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2768,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2751,2795],"referencedDeclaration":2751,"src":"5910:6:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5910:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5893:42:14"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2774,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2761,"src":"5949:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2775,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"5961:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2545_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":2776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5970:2:14","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"5961:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"src":"5949:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2779,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2754,"src":"5983:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2780,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"5986:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2781,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2758,"src":"5989:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2778,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5976:6:14","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6004:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5976:29:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5949:56:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2791,"nodeType":"IfStatement","src":"5945:98:14","trueBody":{"id":2790,"nodeType":"Block","src":"6007:36:14","statements":[{"expression":{"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2786,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"6021:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6031:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6021:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2789,"nodeType":"ExpressionStatement","src":"6021:11:14"}]}},{"expression":{"id":2792,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2767,"src":"6059:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2765,"id":2793,"nodeType":"Return","src":"6052:13:14"}]},"documentation":{"id":2752,"nodeType":"StructuredDocumentation","src":"5609:121:14","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2795,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5744:6:14","nodeType":"FunctionDefinition","parameters":{"id":2762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2754,"mutability":"mutable","name":"x","nameLocation":"5768:1:14","nodeType":"VariableDeclaration","scope":2795,"src":"5760:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2753,"name":"uint256","nodeType":"ElementaryTypeName","src":"5760:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2756,"mutability":"mutable","name":"y","nameLocation":"5787:1:14","nodeType":"VariableDeclaration","scope":2795,"src":"5779:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2755,"name":"uint256","nodeType":"ElementaryTypeName","src":"5779:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2758,"mutability":"mutable","name":"denominator","nameLocation":"5806:11:14","nodeType":"VariableDeclaration","scope":2795,"src":"5798:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2757,"name":"uint256","nodeType":"ElementaryTypeName","src":"5798:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2761,"mutability":"mutable","name":"rounding","nameLocation":"5836:8:14","nodeType":"VariableDeclaration","scope":2795,"src":"5827:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":2760,"nodeType":"UserDefinedTypeName","pathNode":{"id":2759,"name":"Rounding","nameLocations":["5827:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2545,"src":"5827:8:14"},"referencedDeclaration":2545,"src":"5827:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"5750:100:14"},"returnParameters":{"id":2765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2795,"src":"5874:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2763,"name":"uint256","nodeType":"ElementaryTypeName","src":"5874:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5873:9:14"},"scope":3403,"src":"5735:337:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2906,"nodeType":"Block","src":"6348:1585:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2803,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"6362:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6367:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6362:6:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2809,"nodeType":"IfStatement","src":"6358:45:14","trueBody":{"id":2808,"nodeType":"Block","src":"6370:33:14","statements":[{"expression":{"hexValue":"30","id":2806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6391:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2802,"id":2807,"nodeType":"Return","src":"6384:8:14"}]}},{"assignments":[2811],"declarations":[{"constant":false,"id":2811,"mutability":"mutable","name":"result","nameLocation":"7090:6:14","nodeType":"VariableDeclaration","scope":2906,"src":"7082:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2810,"name":"uint256","nodeType":"ElementaryTypeName","src":"7082:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2820,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7099:1:14","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":2817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2814,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7110:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2813,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3075,3111],"referencedDeclaration":3075,"src":"7105:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7105:7:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7116:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7105:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2818,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7104:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7099:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7082:36:14"},{"id":2905,"nodeType":"UncheckedBlock","src":"7519:408:14","statements":[{"expression":{"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2821,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7543:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2822,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7553:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2823,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7562:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2824,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7566:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7562:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7553:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2827,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7552:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7577:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7552:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7543:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2831,"nodeType":"ExpressionStatement","src":"7543:35:14"},{"expression":{"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2832,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7592:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2833,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7602:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2834,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7611:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2835,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7615:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7611:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7602:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2838,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7601:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7626:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7601:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7592:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2842,"nodeType":"ExpressionStatement","src":"7592:35:14"},{"expression":{"id":2852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2843,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7641:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2844,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7651:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2845,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7660:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2846,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7664:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7660:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7651:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7650:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7675:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7650:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7641:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2853,"nodeType":"ExpressionStatement","src":"7641:35:14"},{"expression":{"id":2863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2854,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7690:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2855,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7700:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2856,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7709:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2857,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7713:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7709:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7700:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2860,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7699:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7724:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7699:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7690:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2864,"nodeType":"ExpressionStatement","src":"7690:35:14"},{"expression":{"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2865,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7739:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2866,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7749:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2867,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7758:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2868,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7762:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7758:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7749:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2871,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7748:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7773:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7748:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7739:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2875,"nodeType":"ExpressionStatement","src":"7739:35:14"},{"expression":{"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2876,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7788:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2877,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7798:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2878,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7807:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2879,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7811:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7807:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7798:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2882,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7797:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7822:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7797:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7788:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2886,"nodeType":"ExpressionStatement","src":"7788:35:14"},{"expression":{"id":2896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2887,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7837:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2888,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7847:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2889,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7856:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2890,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7860:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7856:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7847:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2893,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7846:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7871:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7846:26:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7837:35:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2897,"nodeType":"ExpressionStatement","src":"7837:35:14"},{"expression":{"arguments":[{"id":2899,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7897:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2900,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"7905:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2901,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"7909:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7905:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2898,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2581,"src":"7893:3:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7893:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2802,"id":2904,"nodeType":"Return","src":"7886:30:14"}]}]},"documentation":{"id":2796,"nodeType":"StructuredDocumentation","src":"6078:208:14","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":2907,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6300:4:14","nodeType":"FunctionDefinition","parameters":{"id":2799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2798,"mutability":"mutable","name":"a","nameLocation":"6313:1:14","nodeType":"VariableDeclaration","scope":2907,"src":"6305:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2797,"name":"uint256","nodeType":"ElementaryTypeName","src":"6305:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6304:11:14"},"returnParameters":{"id":2802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2907,"src":"6339:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2800,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6338:9:14"},"scope":3403,"src":"6291:1642:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2942,"nodeType":"Block","src":"8109:161:14","statements":[{"id":2941,"nodeType":"UncheckedBlock","src":"8119:145:14","statements":[{"assignments":[2919],"declarations":[{"constant":false,"id":2919,"mutability":"mutable","name":"result","nameLocation":"8151:6:14","nodeType":"VariableDeclaration","scope":2941,"src":"8143:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2918,"name":"uint256","nodeType":"ElementaryTypeName","src":"8143:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2923,"initialValue":{"arguments":[{"id":2921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"8165:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2920,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[2907,2943],"referencedDeclaration":2907,"src":"8160:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8160:7:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8143:24:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"8188:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2925,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2913,"src":"8198:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2926,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"8210:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2545_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":2927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8219:2:14","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"8210:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"src":"8198:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2929,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"8225:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2930,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"8234:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8225:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2932,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"8243:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8225:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8198:46:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8251:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8198:54:14","trueExpression":{"hexValue":"31","id":2935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8247:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8197:56:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8188:65:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2917,"id":2940,"nodeType":"Return","src":"8181:72:14"}]}]},"documentation":{"id":2908,"nodeType":"StructuredDocumentation","src":"7939:89:14","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":2943,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8042:4:14","nodeType":"FunctionDefinition","parameters":{"id":2914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2910,"mutability":"mutable","name":"a","nameLocation":"8055:1:14","nodeType":"VariableDeclaration","scope":2943,"src":"8047:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2909,"name":"uint256","nodeType":"ElementaryTypeName","src":"8047:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2913,"mutability":"mutable","name":"rounding","nameLocation":"8067:8:14","nodeType":"VariableDeclaration","scope":2943,"src":"8058:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":2912,"nodeType":"UserDefinedTypeName","pathNode":{"id":2911,"name":"Rounding","nameLocations":["8058:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2545,"src":"8058:8:14"},"referencedDeclaration":2545,"src":"8058:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"8046:30:14"},"returnParameters":{"id":2917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2943,"src":"8100:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2915,"name":"uint256","nodeType":"ElementaryTypeName","src":"8100:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8099:9:14"},"scope":3403,"src":"8033:237:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3074,"nodeType":"Block","src":"8455:922:14","statements":[{"assignments":[2952],"declarations":[{"constant":false,"id":2952,"mutability":"mutable","name":"result","nameLocation":"8473:6:14","nodeType":"VariableDeclaration","scope":3074,"src":"8465:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2951,"name":"uint256","nodeType":"ElementaryTypeName","src":"8465:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2954,"initialValue":{"hexValue":"30","id":2953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8482:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8465:18:14"},{"id":3071,"nodeType":"UncheckedBlock","src":"8493:855:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8521:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8530:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8521:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8536:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8521:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2969,"nodeType":"IfStatement","src":"8517:99:14","trueBody":{"id":2968,"nodeType":"Block","src":"8539:77:14","statements":[{"expression":{"id":2962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2960,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8557:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8567:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8557:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2963,"nodeType":"ExpressionStatement","src":"8557:13:14"},{"expression":{"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2964,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"8588:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":2965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8598:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8588:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2967,"nodeType":"ExpressionStatement","src":"8588:13:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2970,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8633:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8642:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8633:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8633:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2984,"nodeType":"IfStatement","src":"8629:96:14","trueBody":{"id":2983,"nodeType":"Block","src":"8650:75:14","statements":[{"expression":{"id":2977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8668:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8678:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8668:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2978,"nodeType":"ExpressionStatement","src":"8668:12:14"},{"expression":{"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2979,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"8698:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8708:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8698:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2982,"nodeType":"ExpressionStatement","src":"8698:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2985,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8742:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8751:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8742:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8756:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8742:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2999,"nodeType":"IfStatement","src":"8738:96:14","trueBody":{"id":2998,"nodeType":"Block","src":"8759:75:14","statements":[{"expression":{"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8777:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8787:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8777:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2993,"nodeType":"ExpressionStatement","src":"8777:12:14"},{"expression":{"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2994,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"8807:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8817:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8807:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2997,"nodeType":"ExpressionStatement","src":"8807:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3000,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8851:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8860:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8851:11:14","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":"8865:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8851:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3014,"nodeType":"IfStatement","src":"8847:96:14","trueBody":{"id":3013,"nodeType":"Block","src":"8868:75:14","statements":[{"expression":{"id":3007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3005,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8886:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8896:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8886:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3008,"nodeType":"ExpressionStatement","src":"8886:12:14"},{"expression":{"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3009,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"8916:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8926:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8916:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3012,"nodeType":"ExpressionStatement","src":"8916:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3015,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8960:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8960:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8973:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8960:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3029,"nodeType":"IfStatement","src":"8956:93:14","trueBody":{"id":3028,"nodeType":"Block","src":"8976:73:14","statements":[{"expression":{"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3020,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"8994:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9004:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8994:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3023,"nodeType":"ExpressionStatement","src":"8994:11:14"},{"expression":{"id":3026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3024,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"9023:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9033:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9023:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3027,"nodeType":"ExpressionStatement","src":"9023:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"9066:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":3031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9066:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9079:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9066:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3044,"nodeType":"IfStatement","src":"9062:93:14","trueBody":{"id":3043,"nodeType":"Block","src":"9082:73:14","statements":[{"expression":{"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3035,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"9100:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9110:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9100:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3038,"nodeType":"ExpressionStatement","src":"9100:11:14"},{"expression":{"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3039,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"9129:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9139:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9129:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3042,"nodeType":"ExpressionStatement","src":"9129:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3045,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"9172:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":3046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9181:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9172:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9185:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9172:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3059,"nodeType":"IfStatement","src":"9168:93:14","trueBody":{"id":3058,"nodeType":"Block","src":"9188:73:14","statements":[{"expression":{"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3050,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"9206:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":3051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9216:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9206:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3053,"nodeType":"ExpressionStatement","src":"9206:11:14"},{"expression":{"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3054,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"9235:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9245:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9235:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3057,"nodeType":"ExpressionStatement","src":"9235:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"9278:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9287:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9278:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9291:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9278:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3070,"nodeType":"IfStatement","src":"9274:64:14","trueBody":{"id":3069,"nodeType":"Block","src":"9294:44:14","statements":[{"expression":{"id":3067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3065,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"9312:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9322:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9312:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3068,"nodeType":"ExpressionStatement","src":"9312:11:14"}]}}]},{"expression":{"id":3072,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"9364:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2950,"id":3073,"nodeType":"Return","src":"9357:13:14"}]},"documentation":{"id":2944,"nodeType":"StructuredDocumentation","src":"8276:113:14","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3075,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8403:4:14","nodeType":"FunctionDefinition","parameters":{"id":2947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2946,"mutability":"mutable","name":"value","nameLocation":"8416:5:14","nodeType":"VariableDeclaration","scope":3075,"src":"8408:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2945,"name":"uint256","nodeType":"ElementaryTypeName","src":"8408:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8407:15:14"},"returnParameters":{"id":2950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3075,"src":"8446:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2948,"name":"uint256","nodeType":"ElementaryTypeName","src":"8446:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8445:9:14"},"scope":3403,"src":"8394:983:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3110,"nodeType":"Block","src":"9610:165:14","statements":[{"id":3109,"nodeType":"UncheckedBlock","src":"9620:149:14","statements":[{"assignments":[3087],"declarations":[{"constant":false,"id":3087,"mutability":"mutable","name":"result","nameLocation":"9652:6:14","nodeType":"VariableDeclaration","scope":3109,"src":"9644:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3086,"name":"uint256","nodeType":"ElementaryTypeName","src":"9644:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3091,"initialValue":{"arguments":[{"id":3089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"9666:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3088,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[3075,3111],"referencedDeclaration":3075,"src":"9661:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9661:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9644:28:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3092,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3087,"src":"9693:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3093,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"9703:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3094,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"9715:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2545_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9724:2:14","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"9715:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"src":"9703:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9730:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":3098,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3087,"src":"9735:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9730:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3078,"src":"9744:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9730:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9703:46:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9756:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9703:54:14","trueExpression":{"hexValue":"31","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9752:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9702:56:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9693:65:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3085,"id":3108,"nodeType":"Return","src":"9686:72:14"}]}]},"documentation":{"id":3076,"nodeType":"StructuredDocumentation","src":"9383:142:14","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3111,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9539:4:14","nodeType":"FunctionDefinition","parameters":{"id":3082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3078,"mutability":"mutable","name":"value","nameLocation":"9552:5:14","nodeType":"VariableDeclaration","scope":3111,"src":"9544:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3077,"name":"uint256","nodeType":"ElementaryTypeName","src":"9544:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3081,"mutability":"mutable","name":"rounding","nameLocation":"9568:8:14","nodeType":"VariableDeclaration","scope":3111,"src":"9559:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3080,"nodeType":"UserDefinedTypeName","pathNode":{"id":3079,"name":"Rounding","nameLocations":["9559:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2545,"src":"9559:8:14"},"referencedDeclaration":2545,"src":"9559:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"9543:34:14"},"returnParameters":{"id":3085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3111,"src":"9601:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3083,"name":"uint256","nodeType":"ElementaryTypeName","src":"9601:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9600:9:14"},"scope":3403,"src":"9530:245:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3239,"nodeType":"Block","src":"9962:828:14","statements":[{"assignments":[3120],"declarations":[{"constant":false,"id":3120,"mutability":"mutable","name":"result","nameLocation":"9980:6:14","nodeType":"VariableDeclaration","scope":3239,"src":"9972:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3119,"name":"uint256","nodeType":"ElementaryTypeName","src":"9972:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3122,"initialValue":{"hexValue":"30","id":3121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9989:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9972:18:14"},{"id":3236,"nodeType":"UncheckedBlock","src":"10000:761:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10028:5:14","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":3126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10037:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10041:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10037:6:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10028:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3139,"nodeType":"IfStatement","src":"10024:99:14","trueBody":{"id":3138,"nodeType":"Block","src":"10045:78:14","statements":[{"expression":{"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3128,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10063:5:14","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":3131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10072:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10076:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10072:6:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10063:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3133,"nodeType":"ExpressionStatement","src":"10063:15:14"},{"expression":{"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3134,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10096:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":3135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10106:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10096:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3137,"nodeType":"ExpressionStatement","src":"10096:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10140:5:14","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":3143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10149:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10153:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10149:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10140:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3156,"nodeType":"IfStatement","src":"10136:99:14","trueBody":{"id":3155,"nodeType":"Block","src":"10157:78:14","statements":[{"expression":{"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3145,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10175:5:14","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":3148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10184:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10188:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10184:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10175:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3150,"nodeType":"ExpressionStatement","src":"10175:15:14"},{"expression":{"id":3153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3151,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10208:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":3152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10218:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10208:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3154,"nodeType":"ExpressionStatement","src":"10208:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10252:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10261:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10265:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10261:6:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10252:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3173,"nodeType":"IfStatement","src":"10248:99:14","trueBody":{"id":3172,"nodeType":"Block","src":"10269:78:14","statements":[{"expression":{"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3162,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10287:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":3165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10296:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":3164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10300:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10296:6:14","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10287:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3167,"nodeType":"ExpressionStatement","src":"10287:15:14"},{"expression":{"id":3170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3168,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10320:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10330:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10320:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3171,"nodeType":"ExpressionStatement","src":"10320:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10364:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10373:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10377:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10373:5:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10364:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3190,"nodeType":"IfStatement","src":"10360:96:14","trueBody":{"id":3189,"nodeType":"Block","src":"10380:76:14","statements":[{"expression":{"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10398:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":3182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10407:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10411:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10407:5:14","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10398:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3184,"nodeType":"ExpressionStatement","src":"10398:14:14"},{"expression":{"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3185,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10430:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10440:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10430:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3188,"nodeType":"ExpressionStatement","src":"10430:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10473:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10482:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10486:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10482:5:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10473:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3207,"nodeType":"IfStatement","src":"10469:96:14","trueBody":{"id":3206,"nodeType":"Block","src":"10489:76:14","statements":[{"expression":{"id":3200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3196,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10507:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":3199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10516:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":3198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10520:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10516:5:14","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10507:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3201,"nodeType":"ExpressionStatement","src":"10507:14:14"},{"expression":{"id":3204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3202,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10539:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10549:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10539:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3205,"nodeType":"ExpressionStatement","src":"10539:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10582:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10591:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10595:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10591:5:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10582:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3224,"nodeType":"IfStatement","src":"10578:96:14","trueBody":{"id":3223,"nodeType":"Block","src":"10598:76:14","statements":[{"expression":{"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3213,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10616:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":3216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10625:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":3215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10629:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10625:5:14","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10616:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3218,"nodeType":"ExpressionStatement","src":"10616:14:14"},{"expression":{"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3219,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10648:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10658:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10648:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3222,"nodeType":"ExpressionStatement","src":"10648:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3225,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"10691:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":3228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10700:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10704:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10700:5:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10691:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3235,"nodeType":"IfStatement","src":"10687:64:14","trueBody":{"id":3234,"nodeType":"Block","src":"10707:44:14","statements":[{"expression":{"id":3232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3230,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10725:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10735:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10725:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3233,"nodeType":"ExpressionStatement","src":"10725:11:14"}]}}]},{"expression":{"id":3237,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3120,"src":"10777:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3118,"id":3238,"nodeType":"Return","src":"10770:13:14"}]},"documentation":{"id":3112,"nodeType":"StructuredDocumentation","src":"9781:114:14","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":3240,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"9909:5:14","nodeType":"FunctionDefinition","parameters":{"id":3115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3114,"mutability":"mutable","name":"value","nameLocation":"9923:5:14","nodeType":"VariableDeclaration","scope":3240,"src":"9915:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3113,"name":"uint256","nodeType":"ElementaryTypeName","src":"9915:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9914:15:14"},"returnParameters":{"id":3118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3240,"src":"9953:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3116,"name":"uint256","nodeType":"ElementaryTypeName","src":"9953:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9952:9:14"},"scope":3403,"src":"9900:890:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3275,"nodeType":"Block","src":"11025:165:14","statements":[{"id":3274,"nodeType":"UncheckedBlock","src":"11035:149:14","statements":[{"assignments":[3252],"declarations":[{"constant":false,"id":3252,"mutability":"mutable","name":"result","nameLocation":"11067:6:14","nodeType":"VariableDeclaration","scope":3274,"src":"11059:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3251,"name":"uint256","nodeType":"ElementaryTypeName","src":"11059:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3256,"initialValue":{"arguments":[{"id":3254,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"11082:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3253,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[3240,3276],"referencedDeclaration":3240,"src":"11076:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11076:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11059:29:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3257,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3252,"src":"11109:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"id":3261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3258,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3246,"src":"11119:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3259,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"11131:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2545_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11140:2:14","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"11131:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"src":"11119:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11146:2:14","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":3263,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3252,"src":"11150:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11146:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"11159:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11146:18:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11119:45:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11171:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11119:53:14","trueExpression":{"hexValue":"31","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11167:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3271,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11118:55:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11109:64:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3250,"id":3273,"nodeType":"Return","src":"11102:71:14"}]}]},"documentation":{"id":3241,"nodeType":"StructuredDocumentation","src":"10796:143:14","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3276,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10953:5:14","nodeType":"FunctionDefinition","parameters":{"id":3247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3243,"mutability":"mutable","name":"value","nameLocation":"10967:5:14","nodeType":"VariableDeclaration","scope":3276,"src":"10959:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3242,"name":"uint256","nodeType":"ElementaryTypeName","src":"10959:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3246,"mutability":"mutable","name":"rounding","nameLocation":"10983:8:14","nodeType":"VariableDeclaration","scope":3276,"src":"10974:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3245,"nodeType":"UserDefinedTypeName","pathNode":{"id":3244,"name":"Rounding","nameLocations":["10974:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2545,"src":"10974:8:14"},"referencedDeclaration":2545,"src":"10974:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"10958:34:14"},"returnParameters":{"id":3250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3276,"src":"11016:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3248,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11015:9:14"},"scope":3403,"src":"10944:246:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3362,"nodeType":"Block","src":"11504:600:14","statements":[{"assignments":[3285],"declarations":[{"constant":false,"id":3285,"mutability":"mutable","name":"result","nameLocation":"11522:6:14","nodeType":"VariableDeclaration","scope":3362,"src":"11514:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3284,"name":"uint256","nodeType":"ElementaryTypeName","src":"11514:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3287,"initialValue":{"hexValue":"30","id":3286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11531:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11514:18:14"},{"id":3359,"nodeType":"UncheckedBlock","src":"11542:533:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3288,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11570:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":3289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11579:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11570:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11585:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11570:16:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3302,"nodeType":"IfStatement","src":"11566:98:14","trueBody":{"id":3301,"nodeType":"Block","src":"11588:76:14","statements":[{"expression":{"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11606:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11616:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11606:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3296,"nodeType":"ExpressionStatement","src":"11606:13:14"},{"expression":{"id":3299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3297,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"11637:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11647:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11637:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3300,"nodeType":"ExpressionStatement","src":"11637:12:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11681:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11690:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11681:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11695:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11681:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3317,"nodeType":"IfStatement","src":"11677:95:14","trueBody":{"id":3316,"nodeType":"Block","src":"11698:74:14","statements":[{"expression":{"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3308,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11716:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11726:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11716:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3311,"nodeType":"ExpressionStatement","src":"11716:12:14"},{"expression":{"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3312,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"11746:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11756:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11746:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3315,"nodeType":"ExpressionStatement","src":"11746:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11789:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":3319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11789:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11803:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11789:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3332,"nodeType":"IfStatement","src":"11785:95:14","trueBody":{"id":3331,"nodeType":"Block","src":"11806:74:14","statements":[{"expression":{"id":3325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11824:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11834:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11824:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3326,"nodeType":"ExpressionStatement","src":"11824:12:14"},{"expression":{"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3327,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"11854:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":3328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11864:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11854:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3330,"nodeType":"ExpressionStatement","src":"11854:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3333,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11897:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11906:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11897:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11911:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11897:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3347,"nodeType":"IfStatement","src":"11893:95:14","trueBody":{"id":3346,"nodeType":"Block","src":"11914:74:14","statements":[{"expression":{"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3338,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"11932:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11942:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11932:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3341,"nodeType":"ExpressionStatement","src":"11932:12:14"},{"expression":{"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3342,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"11962:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11972:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11962:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3345,"nodeType":"ExpressionStatement","src":"11962:11:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"12005:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":3349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12014:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12005:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12018:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12005:14:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3358,"nodeType":"IfStatement","src":"12001:64:14","trueBody":{"id":3357,"nodeType":"Block","src":"12021:44:14","statements":[{"expression":{"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3353,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"12039:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12049:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12039:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3356,"nodeType":"ExpressionStatement","src":"12039:11:14"}]}}]},{"expression":{"id":3360,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3285,"src":"12091:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3283,"id":3361,"nodeType":"Return","src":"12084:13:14"}]},"documentation":{"id":3277,"nodeType":"StructuredDocumentation","src":"11196:240:14","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":3363,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11450:6:14","nodeType":"FunctionDefinition","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"value","nameLocation":"11465:5:14","nodeType":"VariableDeclaration","scope":3363,"src":"11457:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint256","nodeType":"ElementaryTypeName","src":"11457:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11456:15:14"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3363,"src":"11495:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"11495:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11494:9:14"},"scope":3403,"src":"11441:663:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3401,"nodeType":"Block","src":"12340:173:14","statements":[{"id":3400,"nodeType":"UncheckedBlock","src":"12350:157:14","statements":[{"assignments":[3375],"declarations":[{"constant":false,"id":3375,"mutability":"mutable","name":"result","nameLocation":"12382:6:14","nodeType":"VariableDeclaration","scope":3400,"src":"12374:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3374,"name":"uint256","nodeType":"ElementaryTypeName","src":"12374:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3379,"initialValue":{"arguments":[{"id":3377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"12398:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3376,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[3363,3402],"referencedDeclaration":3363,"src":"12391:6:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12391:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12374:30:14"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"12425:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3381,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3369,"src":"12435:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3382,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"12447:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$2545_$","typeString":"type(enum MathUpgradeable.Rounding)"}},"id":3383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12456:2:14","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"12447:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"src":"12435:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12462:1:14","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":3388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3386,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"12468:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":3387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12477:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12468:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3389,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12467:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12462:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3391,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3366,"src":"12482:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12462:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12435:52:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12494:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12435:60:14","trueExpression":{"hexValue":"31","id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12490:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3397,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12434:62:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12425:71:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3373,"id":3399,"nodeType":"Return","src":"12418:78:14"}]}]},"documentation":{"id":3364,"nodeType":"StructuredDocumentation","src":"12110:143:14","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":3402,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12267:6:14","nodeType":"FunctionDefinition","parameters":{"id":3370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3366,"mutability":"mutable","name":"value","nameLocation":"12282:5:14","nodeType":"VariableDeclaration","scope":3402,"src":"12274:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3365,"name":"uint256","nodeType":"ElementaryTypeName","src":"12274:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3369,"mutability":"mutable","name":"rounding","nameLocation":"12298:8:14","nodeType":"VariableDeclaration","scope":3402,"src":"12289:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"},"typeName":{"id":3368,"nodeType":"UserDefinedTypeName","pathNode":{"id":3367,"name":"Rounding","nameLocations":["12289:8:14"],"nodeType":"IdentifierPath","referencedDeclaration":2545,"src":"12289:8:14"},"referencedDeclaration":2545,"src":"12289:8:14","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2545","typeString":"enum MathUpgradeable.Rounding"}},"visibility":"internal"}],"src":"12273:34:14"},"returnParameters":{"id":3373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3402,"src":"12331:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3371,"name":"uint256","nodeType":"ElementaryTypeName","src":"12331:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12330:9:14"},"scope":3403,"src":"12258:255:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3404,"src":"202:12313:14","usedErrors":[]}],"src":"103:12413:14"},"id":14},"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol","exportedSymbols":{"EnumerableMapUpgradeable":[4525],"EnumerableSetUpgradeable":[5138]},"id":4526,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3405,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:15"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol","file":"./EnumerableSetUpgradeable.sol","id":3406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4526,"sourceUnit":5139,"src":"230:40:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableMapUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":3407,"nodeType":"StructuredDocumentation","src":"272:1359:15","text":" @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableMap for EnumerableMap.UintToAddressMap;\n     // Declare a set state variable\n     EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n The following map types are supported:\n - `uint256 -> address` (`UintToAddressMap`) since v3.0.0\n - `address -> uint256` (`AddressToUintMap`) since v4.6.0\n - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0\n - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0\n - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0\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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableMap.\n ===="},"fullyImplemented":true,"id":4525,"linearizedBaseContracts":[4525],"name":"EnumerableMapUpgradeable","nameLocation":"1640:24:15","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3411,"libraryName":{"id":3408,"name":"EnumerableSetUpgradeable","nameLocations":["1677:24:15"],"nodeType":"IdentifierPath","referencedDeclaration":5138,"src":"1677:24:15"},"nodeType":"UsingForDirective","src":"1671:71:15","typeName":{"id":3410,"nodeType":"UserDefinedTypeName","pathNode":{"id":3409,"name":"EnumerableSetUpgradeable.Bytes32Set","nameLocations":["1706:24:15","1731:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"1706:35:15"},"referencedDeclaration":4730,"src":"1706:35:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}}},{"canonicalName":"EnumerableMapUpgradeable.Bytes32ToBytes32Map","id":3419,"members":[{"constant":false,"id":3414,"mutability":"mutable","name":"_keys","nameLocation":"2306:5:15","nodeType":"VariableDeclaration","scope":3419,"src":"2270:41:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":3413,"nodeType":"UserDefinedTypeName","pathNode":{"id":3412,"name":"EnumerableSetUpgradeable.Bytes32Set","nameLocations":["2270:24:15","2295:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"2270:35:15"},"referencedDeclaration":4730,"src":"2270:35:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3418,"mutability":"mutable","name":"_values","nameLocation":"2349:7:15","nodeType":"VariableDeclaration","scope":3419,"src":"2321:35:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":3417,"keyType":{"id":3415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2329:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2321:27:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueType":{"id":3416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2340:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"}],"name":"Bytes32ToBytes32Map","nameLocation":"2213:19:15","nodeType":"StructDefinition","scope":4525,"src":"2206:157:15","visibility":"public"},{"body":{"id":3446,"nodeType":"Block","src":"2718:76:15","statements":[{"expression":{"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3432,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"2728:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2732:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"2728:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3436,"indexExpression":{"id":3434,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"2740:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2728:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3437,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"2747:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:24:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3439,"nodeType":"ExpressionStatement","src":"2728:24:15"},{"expression":{"arguments":[{"id":3443,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3425,"src":"2783:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":3440,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"2769:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2773:5:15","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"2769:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage ref"}},"id":3442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2779:3:15","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":4748,"src":"2769:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$4730_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$4730_storage_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2769:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3431,"id":3445,"nodeType":"Return","src":"2762:25:15"}]},"documentation":{"id":3420,"nodeType":"StructuredDocumentation","src":"2369:216:15","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":3447,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"2599:3:15","nodeType":"FunctionDefinition","parameters":{"id":3428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3423,"mutability":"mutable","name":"map","nameLocation":"2640:3:15","nodeType":"VariableDeclaration","scope":3447,"src":"2612:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3422,"nodeType":"UserDefinedTypeName","pathNode":{"id":3421,"name":"Bytes32ToBytes32Map","nameLocations":["2612:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"2612:19:15"},"referencedDeclaration":3419,"src":"2612:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3425,"mutability":"mutable","name":"key","nameLocation":"2661:3:15","nodeType":"VariableDeclaration","scope":3447,"src":"2653:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2653:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3427,"mutability":"mutable","name":"value","nameLocation":"2682:5:15","nodeType":"VariableDeclaration","scope":3447,"src":"2674:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2674:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2602:91:15"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3447,"src":"2712:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3429,"name":"bool","nodeType":"ElementaryTypeName","src":"2712:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2711:6:15"},"scope":4525,"src":"2590:204:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3470,"nodeType":"Block","src":"3048:78:15","statements":[{"expression":{"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3058:23:15","subExpression":{"baseExpression":{"expression":{"id":3458,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"3065:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3069:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"3065:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3461,"indexExpression":{"id":3460,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3453,"src":"3077:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3065:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3463,"nodeType":"ExpressionStatement","src":"3058:23:15"},{"expression":{"arguments":[{"id":3467,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3453,"src":"3115:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":3464,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3451,"src":"3098:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3102:5:15","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"3098:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage ref"}},"id":3466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3108:6:15","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":4766,"src":"3098:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$4730_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$4730_storage_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3098:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3457,"id":3469,"nodeType":"Return","src":"3091:28:15"}]},"documentation":{"id":3448,"nodeType":"StructuredDocumentation","src":"2800:157:15","text":" @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":3471,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"2971:6:15","nodeType":"FunctionDefinition","parameters":{"id":3454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3451,"mutability":"mutable","name":"map","nameLocation":"3006:3:15","nodeType":"VariableDeclaration","scope":3471,"src":"2978:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3450,"nodeType":"UserDefinedTypeName","pathNode":{"id":3449,"name":"Bytes32ToBytes32Map","nameLocations":["2978:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"2978:19:15"},"referencedDeclaration":3419,"src":"2978:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3453,"mutability":"mutable","name":"key","nameLocation":"3019:3:15","nodeType":"VariableDeclaration","scope":3471,"src":"3011:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3011:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2977:46:15"},"returnParameters":{"id":3457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3471,"src":"3042:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3455,"name":"bool","nodeType":"ElementaryTypeName","src":"3042:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3041:6:15"},"scope":4525,"src":"2962:164:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3488,"nodeType":"Block","src":"3298:47:15","statements":[{"expression":{"arguments":[{"id":3485,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"3334:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":3482,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3475,"src":"3315:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3319:5:15","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"3315:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage ref"}},"id":3484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3325:8:15","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":4784,"src":"3315:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$4730_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$4730_storage_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":3486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3315:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3481,"id":3487,"nodeType":"Return","src":"3308:30:15"}]},"documentation":{"id":3472,"nodeType":"StructuredDocumentation","src":"3132:68:15","text":" @dev Returns true if the key is in the map. O(1)."},"id":3489,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"3214:8:15","nodeType":"FunctionDefinition","parameters":{"id":3478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3475,"mutability":"mutable","name":"map","nameLocation":"3251:3:15","nodeType":"VariableDeclaration","scope":3489,"src":"3223:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3474,"nodeType":"UserDefinedTypeName","pathNode":{"id":3473,"name":"Bytes32ToBytes32Map","nameLocations":["3223:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"3223:19:15"},"referencedDeclaration":3419,"src":"3223:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3477,"mutability":"mutable","name":"key","nameLocation":"3264:3:15","nodeType":"VariableDeclaration","scope":3489,"src":"3256:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3256:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3222:46:15"},"returnParameters":{"id":3481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3489,"src":"3292:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3479,"name":"bool","nodeType":"ElementaryTypeName","src":"3292:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3291:6:15"},"scope":4525,"src":"3205:140:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3503,"nodeType":"Block","src":"3516:42:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3498,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3493,"src":"3533:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3537:5:15","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"3533:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage ref"}},"id":3500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3543:6:15","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":4799,"src":"3533:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$4730_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Bytes32Set_$4730_storage_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Bytes32Set storage pointer) view returns (uint256)"}},"id":3501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3533:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3497,"id":3502,"nodeType":"Return","src":"3526:25:15"}]},"documentation":{"id":3490,"nodeType":"StructuredDocumentation","src":"3351:79:15","text":" @dev Returns the number of key-value pairs in the map. O(1)."},"id":3504,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"3444:6:15","nodeType":"FunctionDefinition","parameters":{"id":3494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3493,"mutability":"mutable","name":"map","nameLocation":"3479:3:15","nodeType":"VariableDeclaration","scope":3504,"src":"3451:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3492,"nodeType":"UserDefinedTypeName","pathNode":{"id":3491,"name":"Bytes32ToBytes32Map","nameLocations":["3451:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"3451:19:15"},"referencedDeclaration":3419,"src":"3451:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"}],"src":"3450:33:15"},"returnParameters":{"id":3497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3504,"src":"3507:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3495,"name":"uint256","nodeType":"ElementaryTypeName","src":"3507:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3506:9:15"},"scope":4525,"src":"3435:123:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3532,"nodeType":"Block","src":"4012:90:15","statements":[{"assignments":[3518],"declarations":[{"constant":false,"id":3518,"mutability":"mutable","name":"key","nameLocation":"4030:3:15","nodeType":"VariableDeclaration","scope":3532,"src":"4022:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4022:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3524,"initialValue":{"arguments":[{"id":3522,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3510,"src":"4049:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":3519,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"4036:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4040:5:15","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":3414,"src":"4036:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage ref"}},"id":3521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4046:2:15","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":4817,"src":"4036:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$4730_storage_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_struct$_Bytes32Set_$4730_storage_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":3523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4036:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4022:33:15"},{"expression":{"components":[{"id":3525,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"4073:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"expression":{"id":3526,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3508,"src":"4078:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4082:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"4078:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3529,"indexExpression":{"id":3528,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3518,"src":"4090:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4078:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3530,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4072:23:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"functionReturnParameters":3516,"id":3531,"nodeType":"Return","src":"4065:30:15"}]},"documentation":{"id":3505,"nodeType":"StructuredDocumentation","src":"3564:342:15","text":" @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3533,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"3920:2:15","nodeType":"FunctionDefinition","parameters":{"id":3511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3508,"mutability":"mutable","name":"map","nameLocation":"3951:3:15","nodeType":"VariableDeclaration","scope":3533,"src":"3923:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3507,"nodeType":"UserDefinedTypeName","pathNode":{"id":3506,"name":"Bytes32ToBytes32Map","nameLocations":["3923:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"3923:19:15"},"referencedDeclaration":3419,"src":"3923:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3510,"mutability":"mutable","name":"index","nameLocation":"3964:5:15","nodeType":"VariableDeclaration","scope":3533,"src":"3956:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3509,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3922:48:15"},"returnParameters":{"id":3516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3533,"src":"3994:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3994:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3533,"src":"4003:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4003:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3993:18:15"},"scope":4525,"src":"3911:191:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3576,"nodeType":"Block","src":"4343:198:15","statements":[{"assignments":[3547],"declarations":[{"constant":false,"id":3547,"mutability":"mutable","name":"value","nameLocation":"4361:5:15","nodeType":"VariableDeclaration","scope":3576,"src":"4353:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4353:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3552,"initialValue":{"baseExpression":{"expression":{"id":3548,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3537,"src":"4369:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4373:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"4369:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3551,"indexExpression":{"id":3550,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3539,"src":"4381:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4369:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4353:32:15"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"4399:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4416:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4408:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4408:7:15","typeDescriptions":{}}},"id":3557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4408:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4399:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3574,"nodeType":"Block","src":"4490:45:15","statements":[{"expression":{"components":[{"hexValue":"74727565","id":3570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4512:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"4518:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4511:13:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":3545,"id":3573,"nodeType":"Return","src":"4504:20:15"}]},"id":3575,"nodeType":"IfStatement","src":"4395:140:15","trueBody":{"id":3569,"nodeType":"Block","src":"4420:64:15","statements":[{"expression":{"components":[{"arguments":[{"id":3560,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3537,"src":"4451:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},{"id":3561,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3539,"src":"4456:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3559,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"4442:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"30","id":3565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4470:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4462:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4462:7:15","typeDescriptions":{}}},"id":3566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4462:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3567,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4441:32:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":3545,"id":3568,"nodeType":"Return","src":"4434:39:15"}]}}]},"documentation":{"id":3534,"nodeType":"StructuredDocumentation","src":"4108:130:15","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":3577,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"4252:6:15","nodeType":"FunctionDefinition","parameters":{"id":3540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3537,"mutability":"mutable","name":"map","nameLocation":"4287:3:15","nodeType":"VariableDeclaration","scope":3577,"src":"4259:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3536,"nodeType":"UserDefinedTypeName","pathNode":{"id":3535,"name":"Bytes32ToBytes32Map","nameLocations":["4259:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"4259:19:15"},"referencedDeclaration":3419,"src":"4259:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3539,"mutability":"mutable","name":"key","nameLocation":"4300:3:15","nodeType":"VariableDeclaration","scope":3577,"src":"4292:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4292:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4258:46:15"},"returnParameters":{"id":3545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3577,"src":"4328:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3541,"name":"bool","nodeType":"ElementaryTypeName","src":"4328:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3577,"src":"4334:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4334:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4327:15:15"},"scope":4525,"src":"4243:298:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3609,"nodeType":"Block","src":"4783:156:15","statements":[{"assignments":[3589],"declarations":[{"constant":false,"id":3589,"mutability":"mutable","name":"value","nameLocation":"4801:5:15","nodeType":"VariableDeclaration","scope":3609,"src":"4793:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4793:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3594,"initialValue":{"baseExpression":{"expression":{"id":3590,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"4809:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4813:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"4809:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3593,"indexExpression":{"id":3592,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"4821:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4809:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4793:32:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3589,"src":"4843:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4852:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4843:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3600,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"4866:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},{"id":3601,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"4871:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3599,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"4857:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":3602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4857:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4843:32:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579","id":3604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072","typeString":"literal_string \"EnumerableMap: nonexistent key\""},"value":"EnumerableMap: nonexistent key"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072","typeString":"literal_string \"EnumerableMap: nonexistent key\""}],"id":3595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4835:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3606,"nodeType":"ExpressionStatement","src":"4835:75:15"},{"expression":{"id":3607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3589,"src":"4927:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3587,"id":3608,"nodeType":"Return","src":"4920:12:15"}]},"documentation":{"id":3578,"nodeType":"StructuredDocumentation","src":"4547:140:15","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":3610,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"4701:3:15","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"map","nameLocation":"4733:3:15","nodeType":"VariableDeclaration","scope":3610,"src":"4705:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3580,"nodeType":"UserDefinedTypeName","pathNode":{"id":3579,"name":"Bytes32ToBytes32Map","nameLocations":["4705:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"4705:19:15"},"referencedDeclaration":3419,"src":"4705:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3583,"mutability":"mutable","name":"key","nameLocation":"4746:3:15","nodeType":"VariableDeclaration","scope":3610,"src":"4738:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4738:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4704:46:15"},"returnParameters":{"id":3587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3610,"src":"4774:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4774:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4773:9:15"},"scope":4525,"src":"4692:247:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3644,"nodeType":"Block","src":"5368:136:15","statements":[{"assignments":[3624],"declarations":[{"constant":false,"id":3624,"mutability":"mutable","name":"value","nameLocation":"5386:5:15","nodeType":"VariableDeclaration","scope":3644,"src":"5378:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5378:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3629,"initialValue":{"baseExpression":{"expression":{"id":3625,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"5394:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},"id":3626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5398:7:15","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3418,"src":"5394:11:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":3628,"indexExpression":{"id":3627,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"5406:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5394:16:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5378:32:15"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"5428:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5437:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5428:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3635,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"5451:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"}},{"id":3636,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"5456:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3634,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"5442:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5442:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5428:32:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3639,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3618,"src":"5462:12:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5420:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5420:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3641,"nodeType":"ExpressionStatement","src":"5420:55:15"},{"expression":{"id":3642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3624,"src":"5492:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3622,"id":3643,"nodeType":"Return","src":"5485:12:15"}]},"documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"4945:269:15","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":3645,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"5228:3:15","nodeType":"FunctionDefinition","parameters":{"id":3619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"map","nameLocation":"5269:3:15","nodeType":"VariableDeclaration","scope":3645,"src":"5241:31:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3613,"nodeType":"UserDefinedTypeName","pathNode":{"id":3612,"name":"Bytes32ToBytes32Map","nameLocations":["5241:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"5241:19:15"},"referencedDeclaration":3419,"src":"5241:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":3616,"mutability":"mutable","name":"key","nameLocation":"5290:3:15","nodeType":"VariableDeclaration","scope":3645,"src":"5282:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5282:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3618,"mutability":"mutable","name":"errorMessage","nameLocation":"5317:12:15","nodeType":"VariableDeclaration","scope":3645,"src":"5303:26:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3617,"name":"string","nodeType":"ElementaryTypeName","src":"5303:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5231:104:15"},"returnParameters":{"id":3622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3645,"src":"5359:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5359:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5358:9:15"},"scope":4525,"src":"5219:285:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMapUpgradeable.UintToUintMap","id":3649,"members":[{"constant":false,"id":3648,"mutability":"mutable","name":"_inner","nameLocation":"5583:6:15","nodeType":"VariableDeclaration","scope":3649,"src":"5563:26:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3647,"nodeType":"UserDefinedTypeName","pathNode":{"id":3646,"name":"Bytes32ToBytes32Map","nameLocations":["5563:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"5563:19:15"},"referencedDeclaration":3419,"src":"5563:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"UintToUintMap","nameLocation":"5539:13:15","nodeType":"StructDefinition","scope":4525,"src":"5532:64:15","visibility":"public"},{"body":{"id":3675,"nodeType":"Block","src":"5945:69:15","statements":[{"expression":{"arguments":[{"expression":{"id":3663,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"5966:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5970:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"5966:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3667,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"5986:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5978:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5978:7:15","typeDescriptions":{}}},"id":3668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5978:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":3671,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3657,"src":"6000:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5992:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5992:7:15","typeDescriptions":{}}},"id":3672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5992:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3662,"name":"set","nodeType":"Identifier","overloadedDeclarations":[3447,3676,3889,4126,4366],"referencedDeclaration":3447,"src":"5962:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":3673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5962:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3661,"id":3674,"nodeType":"Return","src":"5955:52:15"}]},"documentation":{"id":3650,"nodeType":"StructuredDocumentation","src":"5602:216:15","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":3676,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"5832:3:15","nodeType":"FunctionDefinition","parameters":{"id":3658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3653,"mutability":"mutable","name":"map","nameLocation":"5867:3:15","nodeType":"VariableDeclaration","scope":3676,"src":"5845:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3652,"nodeType":"UserDefinedTypeName","pathNode":{"id":3651,"name":"UintToUintMap","nameLocations":["5845:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"5845:13:15"},"referencedDeclaration":3649,"src":"5845:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"key","nameLocation":"5888:3:15","nodeType":"VariableDeclaration","scope":3676,"src":"5880:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3654,"name":"uint256","nodeType":"ElementaryTypeName","src":"5880:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3657,"mutability":"mutable","name":"value","nameLocation":"5909:5:15","nodeType":"VariableDeclaration","scope":3676,"src":"5901:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3656,"name":"uint256","nodeType":"ElementaryTypeName","src":"5901:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5835:85:15"},"returnParameters":{"id":3661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3676,"src":"5939:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3659,"name":"bool","nodeType":"ElementaryTypeName","src":"5939:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5938:6:15"},"scope":4525,"src":"5823:191:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3696,"nodeType":"Block","src":"6253:56:15","statements":[{"expression":{"arguments":[{"expression":{"id":3688,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3680,"src":"6277:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6281:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"6277:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3692,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3682,"src":"6297:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6289:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6289:7:15","typeDescriptions":{}}},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3687,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[3471,3697,3910,4153,4384],"referencedDeclaration":3471,"src":"6270:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3686,"id":3695,"nodeType":"Return","src":"6263:39:15"}]},"documentation":{"id":3677,"nodeType":"StructuredDocumentation","src":"6020:148:15","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":3697,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6182:6:15","nodeType":"FunctionDefinition","parameters":{"id":3683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3680,"mutability":"mutable","name":"map","nameLocation":"6211:3:15","nodeType":"VariableDeclaration","scope":3697,"src":"6189:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3679,"nodeType":"UserDefinedTypeName","pathNode":{"id":3678,"name":"UintToUintMap","nameLocations":["6189:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"6189:13:15"},"referencedDeclaration":3649,"src":"6189:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3682,"mutability":"mutable","name":"key","nameLocation":"6224:3:15","nodeType":"VariableDeclaration","scope":3697,"src":"6216:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3681,"name":"uint256","nodeType":"ElementaryTypeName","src":"6216:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6188:40:15"},"returnParameters":{"id":3686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3697,"src":"6247:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3684,"name":"bool","nodeType":"ElementaryTypeName","src":"6247:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6246:6:15"},"scope":4525,"src":"6173:136:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3717,"nodeType":"Block","src":"6475:58:15","statements":[{"expression":{"arguments":[{"expression":{"id":3709,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3701,"src":"6501:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6505:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"6501:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3713,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3703,"src":"6521:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6513:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6513:7:15","typeDescriptions":{}}},"id":3714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6513:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3708,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"6492:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6492:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3707,"id":3716,"nodeType":"Return","src":"6485:41:15"}]},"documentation":{"id":3698,"nodeType":"StructuredDocumentation","src":"6315:68:15","text":" @dev Returns true if the key is in the map. O(1)."},"id":3718,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6397:8:15","nodeType":"FunctionDefinition","parameters":{"id":3704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"map","nameLocation":"6428:3:15","nodeType":"VariableDeclaration","scope":3718,"src":"6406:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3700,"nodeType":"UserDefinedTypeName","pathNode":{"id":3699,"name":"UintToUintMap","nameLocations":["6406:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"6406:13:15"},"referencedDeclaration":3649,"src":"6406:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3703,"mutability":"mutable","name":"key","nameLocation":"6441:3:15","nodeType":"VariableDeclaration","scope":3718,"src":"6433:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3702,"name":"uint256","nodeType":"ElementaryTypeName","src":"6433:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6405:40:15"},"returnParameters":{"id":3707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3718,"src":"6469:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3705,"name":"bool","nodeType":"ElementaryTypeName","src":"6469:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6468:6:15"},"scope":4525,"src":"6388:145:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3732,"nodeType":"Block","src":"6691:42:15","statements":[{"expression":{"arguments":[{"expression":{"id":3728,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"6715:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6719:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"6715:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}],"id":3727,"name":"length","nodeType":"Identifier","overloadedDeclarations":[3504,3733,3946,4195,4417],"referencedDeclaration":3504,"src":"6708:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":3730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6708:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3726,"id":3731,"nodeType":"Return","src":"6701:25:15"}]},"documentation":{"id":3719,"nodeType":"StructuredDocumentation","src":"6539:72:15","text":" @dev Returns the number of elements in the map. O(1)."},"id":3733,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6625:6:15","nodeType":"FunctionDefinition","parameters":{"id":3723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3722,"mutability":"mutable","name":"map","nameLocation":"6654:3:15","nodeType":"VariableDeclaration","scope":3733,"src":"6632:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3721,"nodeType":"UserDefinedTypeName","pathNode":{"id":3720,"name":"UintToUintMap","nameLocations":["6632:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"6632:13:15"},"referencedDeclaration":3649,"src":"6632:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"}],"src":"6631:27:15"},"returnParameters":{"id":3726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3733,"src":"6682:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3724,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6681:9:15"},"scope":4525,"src":"6616:117:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3766,"nodeType":"Block","src":"7165:116:15","statements":[{"assignments":[3747,3749],"declarations":[{"constant":false,"id":3747,"mutability":"mutable","name":"key","nameLocation":"7184:3:15","nodeType":"VariableDeclaration","scope":3766,"src":"7176:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7176:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3749,"mutability":"mutable","name":"value","nameLocation":"7197:5:15","nodeType":"VariableDeclaration","scope":3766,"src":"7189:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3755,"initialValue":{"arguments":[{"expression":{"id":3751,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3737,"src":"7209:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7213:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"7209:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":3753,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3739,"src":"7221:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3750,"name":"at","nodeType":"Identifier","overloadedDeclarations":[3533,3767,3986,4235,4448],"referencedDeclaration":3533,"src":"7206:2:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":3754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7206:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7175:52:15"},{"expression":{"components":[{"arguments":[{"id":3758,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3747,"src":"7253:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7245:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3756,"name":"uint256","nodeType":"ElementaryTypeName","src":"7245:7:15","typeDescriptions":{}}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7245:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3762,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3749,"src":"7267:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7259:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3760,"name":"uint256","nodeType":"ElementaryTypeName","src":"7259:7:15","typeDescriptions":{}}},"id":3763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7259:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3764,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7244:30:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":3745,"id":3765,"nodeType":"Return","src":"7237:37:15"}]},"documentation":{"id":3734,"nodeType":"StructuredDocumentation","src":"6739:326:15","text":" @dev Returns the element 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":3767,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7079:2:15","nodeType":"FunctionDefinition","parameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3737,"mutability":"mutable","name":"map","nameLocation":"7104:3:15","nodeType":"VariableDeclaration","scope":3767,"src":"7082:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3736,"nodeType":"UserDefinedTypeName","pathNode":{"id":3735,"name":"UintToUintMap","nameLocations":["7082:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"7082:13:15"},"referencedDeclaration":3649,"src":"7082:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3739,"mutability":"mutable","name":"index","nameLocation":"7117:5:15","nodeType":"VariableDeclaration","scope":3767,"src":"7109:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3738,"name":"uint256","nodeType":"ElementaryTypeName","src":"7109:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7081:42:15"},"returnParameters":{"id":3745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3767,"src":"7147:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3741,"name":"uint256","nodeType":"ElementaryTypeName","src":"7147:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3767,"src":"7156:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3743,"name":"uint256","nodeType":"ElementaryTypeName","src":"7156:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7146:18:15"},"scope":4525,"src":"7070:211:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3800,"nodeType":"Block","src":"7516:123:15","statements":[{"assignments":[3781,3783],"declarations":[{"constant":false,"id":3781,"mutability":"mutable","name":"success","nameLocation":"7532:7:15","nodeType":"VariableDeclaration","scope":3800,"src":"7527:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3780,"name":"bool","nodeType":"ElementaryTypeName","src":"7527:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3783,"mutability":"mutable","name":"value","nameLocation":"7549:5:15","nodeType":"VariableDeclaration","scope":3800,"src":"7541:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7541:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3792,"initialValue":{"arguments":[{"expression":{"id":3785,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"7565:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7569:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"7565:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3789,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3773,"src":"7585:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7577:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7577:7:15","typeDescriptions":{}}},"id":3790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7577:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3784,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[3577,3801,4026,4275,4479],"referencedDeclaration":3577,"src":"7558:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7558:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7526:64:15"},{"expression":{"components":[{"id":3793,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"7608:7:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":3796,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"7625:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7617:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3794,"name":"uint256","nodeType":"ElementaryTypeName","src":"7617:7:15","typeDescriptions":{}}},"id":3797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7617:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3798,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7607:25:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3779,"id":3799,"nodeType":"Return","src":"7600:32:15"}]},"documentation":{"id":3768,"nodeType":"StructuredDocumentation","src":"7287:130:15","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":3801,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"7431:6:15","nodeType":"FunctionDefinition","parameters":{"id":3774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3771,"mutability":"mutable","name":"map","nameLocation":"7460:3:15","nodeType":"VariableDeclaration","scope":3801,"src":"7438:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3770,"nodeType":"UserDefinedTypeName","pathNode":{"id":3769,"name":"UintToUintMap","nameLocations":["7438:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"7438:13:15"},"referencedDeclaration":3649,"src":"7438:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3773,"mutability":"mutable","name":"key","nameLocation":"7473:3:15","nodeType":"VariableDeclaration","scope":3801,"src":"7465:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3772,"name":"uint256","nodeType":"ElementaryTypeName","src":"7465:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7437:40:15"},"returnParameters":{"id":3779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3801,"src":"7501:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3775,"name":"bool","nodeType":"ElementaryTypeName","src":"7501:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3801,"src":"7507:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3777,"name":"uint256","nodeType":"ElementaryTypeName","src":"7507:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7500:15:15"},"scope":4525,"src":"7422:217:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3824,"nodeType":"Block","src":"7875:62:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3815,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"7904:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7908:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"7904:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3819,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3807,"src":"7924:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7916:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7916:7:15","typeDescriptions":{}}},"id":3820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7916:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3814,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3610,"src":"7900:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":3821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7900:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7892:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3812,"name":"uint256","nodeType":"ElementaryTypeName","src":"7892:7:15","typeDescriptions":{}}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3811,"id":3823,"nodeType":"Return","src":"7885:45:15"}]},"documentation":{"id":3802,"nodeType":"StructuredDocumentation","src":"7645:140:15","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":3825,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"7799:3:15","nodeType":"FunctionDefinition","parameters":{"id":3808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3805,"mutability":"mutable","name":"map","nameLocation":"7825:3:15","nodeType":"VariableDeclaration","scope":3825,"src":"7803:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3804,"nodeType":"UserDefinedTypeName","pathNode":{"id":3803,"name":"UintToUintMap","nameLocations":["7803:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"7803:13:15"},"referencedDeclaration":3649,"src":"7803:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3807,"mutability":"mutable","name":"key","nameLocation":"7838:3:15","nodeType":"VariableDeclaration","scope":3825,"src":"7830:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3806,"name":"uint256","nodeType":"ElementaryTypeName","src":"7830:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7802:40:15"},"returnParameters":{"id":3811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3825,"src":"7866:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3809,"name":"uint256","nodeType":"ElementaryTypeName","src":"7866:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7865:9:15"},"scope":4525,"src":"7790:147:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3851,"nodeType":"Block","src":"8360:76:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3841,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3829,"src":"8389:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":3842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8393:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3648,"src":"8389:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3845,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3831,"src":"8409:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8401:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8401:7:15","typeDescriptions":{}}},"id":3846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3847,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3833,"src":"8415:12:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3840,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3645,"src":"8385:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8385:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8377:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3838,"name":"uint256","nodeType":"ElementaryTypeName","src":"8377:7:15","typeDescriptions":{}}},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8377:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3837,"id":3850,"nodeType":"Return","src":"8370:59:15"}]},"documentation":{"id":3826,"nodeType":"StructuredDocumentation","src":"7943:269:15","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":3852,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"8226:3:15","nodeType":"FunctionDefinition","parameters":{"id":3834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3829,"mutability":"mutable","name":"map","nameLocation":"8261:3:15","nodeType":"VariableDeclaration","scope":3852,"src":"8239:25:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":3828,"nodeType":"UserDefinedTypeName","pathNode":{"id":3827,"name":"UintToUintMap","nameLocations":["8239:13:15"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"8239:13:15"},"referencedDeclaration":3649,"src":"8239:13:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":3831,"mutability":"mutable","name":"key","nameLocation":"8282:3:15","nodeType":"VariableDeclaration","scope":3852,"src":"8274:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3830,"name":"uint256","nodeType":"ElementaryTypeName","src":"8274:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3833,"mutability":"mutable","name":"errorMessage","nameLocation":"8309:12:15","nodeType":"VariableDeclaration","scope":3852,"src":"8295:26:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3832,"name":"string","nodeType":"ElementaryTypeName","src":"8295:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8229:98:15"},"returnParameters":{"id":3837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3852,"src":"8351:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3835,"name":"uint256","nodeType":"ElementaryTypeName","src":"8351:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8350:9:15"},"scope":4525,"src":"8217:219:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMapUpgradeable.UintToAddressMap","id":3856,"members":[{"constant":false,"id":3855,"mutability":"mutable","name":"_inner","nameLocation":"8521:6:15","nodeType":"VariableDeclaration","scope":3856,"src":"8501:26:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":3854,"nodeType":"UserDefinedTypeName","pathNode":{"id":3853,"name":"Bytes32ToBytes32Map","nameLocations":["8501:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"8501:19:15"},"referencedDeclaration":3419,"src":"8501:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"UintToAddressMap","nameLocation":"8474:16:15","nodeType":"StructDefinition","scope":4525,"src":"8467:67:15","visibility":"public"},{"body":{"id":3888,"nodeType":"Block","src":"8886:87:15","statements":[{"expression":{"arguments":[{"expression":{"id":3870,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3860,"src":"8907:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":3871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8911:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"8907:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3874,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3862,"src":"8927:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8919:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8919:7:15","typeDescriptions":{}}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"id":3882,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3864,"src":"8957:5:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8949:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3880,"name":"uint160","nodeType":"ElementaryTypeName","src":"8949:7:15","typeDescriptions":{}}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8949:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8941:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3878,"name":"uint256","nodeType":"ElementaryTypeName","src":"8941:7:15","typeDescriptions":{}}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8941:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8933:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8933:7:15","typeDescriptions":{}}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8933:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3869,"name":"set","nodeType":"Identifier","overloadedDeclarations":[3447,3676,3889,4126,4366],"referencedDeclaration":3447,"src":"8903:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":3886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8903:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3868,"id":3887,"nodeType":"Return","src":"8896:70:15"}]},"documentation":{"id":3857,"nodeType":"StructuredDocumentation","src":"8540:216:15","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":3889,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"8770:3:15","nodeType":"FunctionDefinition","parameters":{"id":3865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3860,"mutability":"mutable","name":"map","nameLocation":"8808:3:15","nodeType":"VariableDeclaration","scope":3889,"src":"8783:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3859,"nodeType":"UserDefinedTypeName","pathNode":{"id":3858,"name":"UintToAddressMap","nameLocations":["8783:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"8783:16:15"},"referencedDeclaration":3856,"src":"8783:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":3862,"mutability":"mutable","name":"key","nameLocation":"8829:3:15","nodeType":"VariableDeclaration","scope":3889,"src":"8821:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3861,"name":"uint256","nodeType":"ElementaryTypeName","src":"8821:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3864,"mutability":"mutable","name":"value","nameLocation":"8850:5:15","nodeType":"VariableDeclaration","scope":3889,"src":"8842:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3863,"name":"address","nodeType":"ElementaryTypeName","src":"8842:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8773:88:15"},"returnParameters":{"id":3868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3889,"src":"8880:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3866,"name":"bool","nodeType":"ElementaryTypeName","src":"8880:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8879:6:15"},"scope":4525,"src":"8761:212:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3909,"nodeType":"Block","src":"9215:56:15","statements":[{"expression":{"arguments":[{"expression":{"id":3901,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"9239:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":3902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9243:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"9239:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3905,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3895,"src":"9259:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9251:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9251:7:15","typeDescriptions":{}}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9251:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3900,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[3471,3697,3910,4153,4384],"referencedDeclaration":3471,"src":"9232:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9232:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3899,"id":3908,"nodeType":"Return","src":"9225:39:15"}]},"documentation":{"id":3890,"nodeType":"StructuredDocumentation","src":"8979:148:15","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":3910,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"9141:6:15","nodeType":"FunctionDefinition","parameters":{"id":3896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3893,"mutability":"mutable","name":"map","nameLocation":"9173:3:15","nodeType":"VariableDeclaration","scope":3910,"src":"9148:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3892,"nodeType":"UserDefinedTypeName","pathNode":{"id":3891,"name":"UintToAddressMap","nameLocations":["9148:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"9148:16:15"},"referencedDeclaration":3856,"src":"9148:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":3895,"mutability":"mutable","name":"key","nameLocation":"9186:3:15","nodeType":"VariableDeclaration","scope":3910,"src":"9178:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3894,"name":"uint256","nodeType":"ElementaryTypeName","src":"9178:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9147:43:15"},"returnParameters":{"id":3899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3910,"src":"9209:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3897,"name":"bool","nodeType":"ElementaryTypeName","src":"9209:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9208:6:15"},"scope":4525,"src":"9132:139:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3930,"nodeType":"Block","src":"9440:58:15","statements":[{"expression":{"arguments":[{"expression":{"id":3922,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3914,"src":"9466:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":3923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9470:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"9466:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":3926,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"9486:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9478:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9478:7:15","typeDescriptions":{}}},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3921,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"9457:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9457:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3920,"id":3929,"nodeType":"Return","src":"9450:41:15"}]},"documentation":{"id":3911,"nodeType":"StructuredDocumentation","src":"9277:68:15","text":" @dev Returns true if the key is in the map. O(1)."},"id":3931,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"9359:8:15","nodeType":"FunctionDefinition","parameters":{"id":3917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3914,"mutability":"mutable","name":"map","nameLocation":"9393:3:15","nodeType":"VariableDeclaration","scope":3931,"src":"9368:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3913,"nodeType":"UserDefinedTypeName","pathNode":{"id":3912,"name":"UintToAddressMap","nameLocations":["9368:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"9368:16:15"},"referencedDeclaration":3856,"src":"9368:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":3916,"mutability":"mutable","name":"key","nameLocation":"9406:3:15","nodeType":"VariableDeclaration","scope":3931,"src":"9398:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3915,"name":"uint256","nodeType":"ElementaryTypeName","src":"9398:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9367:43:15"},"returnParameters":{"id":3920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3931,"src":"9434:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3918,"name":"bool","nodeType":"ElementaryTypeName","src":"9434:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9433:6:15"},"scope":4525,"src":"9350:148:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3945,"nodeType":"Block","src":"9659:42:15","statements":[{"expression":{"arguments":[{"expression":{"id":3941,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3935,"src":"9683:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":3942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9687:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"9683:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}],"id":3940,"name":"length","nodeType":"Identifier","overloadedDeclarations":[3504,3733,3946,4195,4417],"referencedDeclaration":3504,"src":"9676:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":3943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9676:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3939,"id":3944,"nodeType":"Return","src":"9669:25:15"}]},"documentation":{"id":3932,"nodeType":"StructuredDocumentation","src":"9504:72:15","text":" @dev Returns the number of elements in the map. O(1)."},"id":3946,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9590:6:15","nodeType":"FunctionDefinition","parameters":{"id":3936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3935,"mutability":"mutable","name":"map","nameLocation":"9622:3:15","nodeType":"VariableDeclaration","scope":3946,"src":"9597:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3934,"nodeType":"UserDefinedTypeName","pathNode":{"id":3933,"name":"UintToAddressMap","nameLocations":["9597:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"9597:16:15"},"referencedDeclaration":3856,"src":"9597:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"}],"src":"9596:30:15"},"returnParameters":{"id":3939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3946,"src":"9650:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3937,"name":"uint256","nodeType":"ElementaryTypeName","src":"9650:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9649:9:15"},"scope":4525,"src":"9581:120:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3985,"nodeType":"Block","src":"10136:134:15","statements":[{"assignments":[3960,3962],"declarations":[{"constant":false,"id":3960,"mutability":"mutable","name":"key","nameLocation":"10155:3:15","nodeType":"VariableDeclaration","scope":3985,"src":"10147:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10147:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3962,"mutability":"mutable","name":"value","nameLocation":"10168:5:15","nodeType":"VariableDeclaration","scope":3985,"src":"10160:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10160:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3968,"initialValue":{"arguments":[{"expression":{"id":3964,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3950,"src":"10180:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":3965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10184:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"10180:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":3966,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"10192:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3963,"name":"at","nodeType":"Identifier","overloadedDeclarations":[3533,3767,3986,4235,4448],"referencedDeclaration":3533,"src":"10177:2:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10177:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"10146:52:15"},{"expression":{"components":[{"arguments":[{"id":3971,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3960,"src":"10224:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10216:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3969,"name":"uint256","nodeType":"ElementaryTypeName","src":"10216:7:15","typeDescriptions":{}}},"id":3972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10216:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"arguments":[{"id":3979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"10254:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10246:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3977,"name":"uint256","nodeType":"ElementaryTypeName","src":"10246:7:15","typeDescriptions":{}}},"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10238:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3975,"name":"uint160","nodeType":"ElementaryTypeName","src":"10238:7:15","typeDescriptions":{}}},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10238:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10230:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3973,"name":"address","nodeType":"ElementaryTypeName","src":"10230:7:15","typeDescriptions":{}}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10230:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3983,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10215:48:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":3958,"id":3984,"nodeType":"Return","src":"10208:55:15"}]},"documentation":{"id":3947,"nodeType":"StructuredDocumentation","src":"9707:326:15","text":" @dev Returns the element 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":3986,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"10047:2:15","nodeType":"FunctionDefinition","parameters":{"id":3953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3950,"mutability":"mutable","name":"map","nameLocation":"10075:3:15","nodeType":"VariableDeclaration","scope":3986,"src":"10050:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3949,"nodeType":"UserDefinedTypeName","pathNode":{"id":3948,"name":"UintToAddressMap","nameLocations":["10050:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"10050:16:15"},"referencedDeclaration":3856,"src":"10050:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":3952,"mutability":"mutable","name":"index","nameLocation":"10088:5:15","nodeType":"VariableDeclaration","scope":3986,"src":"10080:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3951,"name":"uint256","nodeType":"ElementaryTypeName","src":"10080:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10049:45:15"},"returnParameters":{"id":3958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3986,"src":"10118:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3954,"name":"uint256","nodeType":"ElementaryTypeName","src":"10118:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3986,"src":"10127:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3956,"name":"address","nodeType":"ElementaryTypeName","src":"10127:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10117:18:15"},"scope":4525,"src":"10038:232:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4025,"nodeType":"Block","src":"10508:141:15","statements":[{"assignments":[4000,4002],"declarations":[{"constant":false,"id":4000,"mutability":"mutable","name":"success","nameLocation":"10524:7:15","nodeType":"VariableDeclaration","scope":4025,"src":"10519:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3999,"name":"bool","nodeType":"ElementaryTypeName","src":"10519:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"value","nameLocation":"10541:5:15","nodeType":"VariableDeclaration","scope":4025,"src":"10533:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10533:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4011,"initialValue":{"arguments":[{"expression":{"id":4004,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"10557:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":4005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10561:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"10557:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":4008,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"10577:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10569:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10569:7:15","typeDescriptions":{}}},"id":4009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10569:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4003,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[3577,3801,4026,4275,4479],"referencedDeclaration":3577,"src":"10550:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":4010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"10518:64:15"},{"expression":{"components":[{"id":4012,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"10600:7:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"arguments":[{"id":4019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"10633:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10625:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4017,"name":"uint256","nodeType":"ElementaryTypeName","src":"10625:7:15","typeDescriptions":{}}},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10625:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10617:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4015,"name":"uint160","nodeType":"ElementaryTypeName","src":"10617:7:15","typeDescriptions":{}}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10617:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10609:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4013,"name":"address","nodeType":"ElementaryTypeName","src":"10609:7:15","typeDescriptions":{}}},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10609:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10599:43:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":3998,"id":4024,"nodeType":"Return","src":"10592:50:15"}]},"documentation":{"id":3987,"nodeType":"StructuredDocumentation","src":"10276:130:15","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":4026,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"10420:6:15","nodeType":"FunctionDefinition","parameters":{"id":3993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3990,"mutability":"mutable","name":"map","nameLocation":"10452:3:15","nodeType":"VariableDeclaration","scope":4026,"src":"10427:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":3989,"nodeType":"UserDefinedTypeName","pathNode":{"id":3988,"name":"UintToAddressMap","nameLocations":["10427:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"10427:16:15"},"referencedDeclaration":3856,"src":"10427:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":3992,"mutability":"mutable","name":"key","nameLocation":"10465:3:15","nodeType":"VariableDeclaration","scope":4026,"src":"10457:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3991,"name":"uint256","nodeType":"ElementaryTypeName","src":"10457:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10426:43:15"},"returnParameters":{"id":3998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4026,"src":"10493:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3994,"name":"bool","nodeType":"ElementaryTypeName","src":"10493:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3997,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4026,"src":"10499:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3996,"name":"address","nodeType":"ElementaryTypeName","src":"10499:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10492:15:15"},"scope":4525,"src":"10411:238:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4055,"nodeType":"Block","src":"10888:80:15","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4044,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4030,"src":"10933:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":4045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10937:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"10933:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":4048,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4032,"src":"10953:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10945:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10945:7:15","typeDescriptions":{}}},"id":4049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10945:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4043,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3610,"src":"10929:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":4050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10929:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4041,"name":"uint256","nodeType":"ElementaryTypeName","src":"10921:7:15","typeDescriptions":{}}},"id":4051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10913:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4039,"name":"uint160","nodeType":"ElementaryTypeName","src":"10913:7:15","typeDescriptions":{}}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10913:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10905:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4037,"name":"address","nodeType":"ElementaryTypeName","src":"10905:7:15","typeDescriptions":{}}},"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10905:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4036,"id":4054,"nodeType":"Return","src":"10898:63:15"}]},"documentation":{"id":4027,"nodeType":"StructuredDocumentation","src":"10655:140:15","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":4056,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"10809:3:15","nodeType":"FunctionDefinition","parameters":{"id":4033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4030,"mutability":"mutable","name":"map","nameLocation":"10838:3:15","nodeType":"VariableDeclaration","scope":4056,"src":"10813:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":4029,"nodeType":"UserDefinedTypeName","pathNode":{"id":4028,"name":"UintToAddressMap","nameLocations":["10813:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"10813:16:15"},"referencedDeclaration":3856,"src":"10813:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":4032,"mutability":"mutable","name":"key","nameLocation":"10851:3:15","nodeType":"VariableDeclaration","scope":4056,"src":"10843:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4031,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10812:43:15"},"returnParameters":{"id":4036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4056,"src":"10879:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4034,"name":"address","nodeType":"ElementaryTypeName","src":"10879:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10878:9:15"},"scope":4525,"src":"10800:168:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4088,"nodeType":"Block","src":"11394:94:15","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4076,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"11439:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap storage pointer"}},"id":4077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11443:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3855,"src":"11439:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":4080,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"11459:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11451:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11451:7:15","typeDescriptions":{}}},"id":4081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11451:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4082,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"11465:12:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4075,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3645,"src":"11435:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11435:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11427:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"11427:7:15","typeDescriptions":{}}},"id":4084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11427:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11419:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4071,"name":"uint160","nodeType":"ElementaryTypeName","src":"11419:7:15","typeDescriptions":{}}},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11419:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11411:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4069,"name":"address","nodeType":"ElementaryTypeName","src":"11411:7:15","typeDescriptions":{}}},"id":4086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11411:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4068,"id":4087,"nodeType":"Return","src":"11404:77:15"}]},"documentation":{"id":4057,"nodeType":"StructuredDocumentation","src":"10974:269:15","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":4089,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"11257:3:15","nodeType":"FunctionDefinition","parameters":{"id":4065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4060,"mutability":"mutable","name":"map","nameLocation":"11295:3:15","nodeType":"VariableDeclaration","scope":4089,"src":"11270:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"},"typeName":{"id":4059,"nodeType":"UserDefinedTypeName","pathNode":{"id":4058,"name":"UintToAddressMap","nameLocations":["11270:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":3856,"src":"11270:16:15"},"referencedDeclaration":3856,"src":"11270:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$3856_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":4062,"mutability":"mutable","name":"key","nameLocation":"11316:3:15","nodeType":"VariableDeclaration","scope":4089,"src":"11308:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4061,"name":"uint256","nodeType":"ElementaryTypeName","src":"11308:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4064,"mutability":"mutable","name":"errorMessage","nameLocation":"11343:12:15","nodeType":"VariableDeclaration","scope":4089,"src":"11329:26:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4063,"name":"string","nodeType":"ElementaryTypeName","src":"11329:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11260:101:15"},"returnParameters":{"id":4068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4089,"src":"11385:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4066,"name":"address","nodeType":"ElementaryTypeName","src":"11385:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11384:9:15"},"scope":4525,"src":"11248:240:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMapUpgradeable.AddressToUintMap","id":4093,"members":[{"constant":false,"id":4092,"mutability":"mutable","name":"_inner","nameLocation":"11573:6:15","nodeType":"VariableDeclaration","scope":4093,"src":"11553:26:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":4091,"nodeType":"UserDefinedTypeName","pathNode":{"id":4090,"name":"Bytes32ToBytes32Map","nameLocations":["11553:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"11553:19:15"},"referencedDeclaration":3419,"src":"11553:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"AddressToUintMap","nameLocation":"11526:16:15","nodeType":"StructDefinition","scope":4525,"src":"11519:67:15","visibility":"public"},{"body":{"id":4125,"nodeType":"Block","src":"11938:87:15","statements":[{"expression":{"arguments":[{"expression":{"id":4107,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4097,"src":"11959:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11963:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"11959:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4115,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4099,"src":"11995:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11987:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4113,"name":"uint160","nodeType":"ElementaryTypeName","src":"11987:7:15","typeDescriptions":{}}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11987:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11979:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4111,"name":"uint256","nodeType":"ElementaryTypeName","src":"11979:7:15","typeDescriptions":{}}},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11979:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11971:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11971:7:15","typeDescriptions":{}}},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11971:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":4121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"12011:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12003:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12003:7:15","typeDescriptions":{}}},"id":4122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4106,"name":"set","nodeType":"Identifier","overloadedDeclarations":[3447,3676,3889,4126,4366],"referencedDeclaration":3447,"src":"11955:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11955:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4105,"id":4124,"nodeType":"Return","src":"11948:70:15"}]},"documentation":{"id":4094,"nodeType":"StructuredDocumentation","src":"11592:216:15","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":4126,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"11822:3:15","nodeType":"FunctionDefinition","parameters":{"id":4102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4097,"mutability":"mutable","name":"map","nameLocation":"11860:3:15","nodeType":"VariableDeclaration","scope":4126,"src":"11835:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4096,"nodeType":"UserDefinedTypeName","pathNode":{"id":4095,"name":"AddressToUintMap","nameLocations":["11835:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"11835:16:15"},"referencedDeclaration":4093,"src":"11835:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4099,"mutability":"mutable","name":"key","nameLocation":"11881:3:15","nodeType":"VariableDeclaration","scope":4126,"src":"11873:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4098,"name":"address","nodeType":"ElementaryTypeName","src":"11873:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4101,"mutability":"mutable","name":"value","nameLocation":"11902:5:15","nodeType":"VariableDeclaration","scope":4126,"src":"11894:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4100,"name":"uint256","nodeType":"ElementaryTypeName","src":"11894:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11825:88:15"},"returnParameters":{"id":4105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4126,"src":"11932:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4103,"name":"bool","nodeType":"ElementaryTypeName","src":"11932:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11931:6:15"},"scope":4525,"src":"11813:212:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4152,"nodeType":"Block","src":"12267:74:15","statements":[{"expression":{"arguments":[{"expression":{"id":4138,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"12291:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12295:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"12291:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4146,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4132,"src":"12327:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12319:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4144,"name":"uint160","nodeType":"ElementaryTypeName","src":"12319:7:15","typeDescriptions":{}}},"id":4147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12319:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12311:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4142,"name":"uint256","nodeType":"ElementaryTypeName","src":"12311:7:15","typeDescriptions":{}}},"id":4148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12311:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12303:7:15","typeDescriptions":{}}},"id":4149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4137,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[3471,3697,3910,4153,4384],"referencedDeclaration":3471,"src":"12284:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12284:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4136,"id":4151,"nodeType":"Return","src":"12277:57:15"}]},"documentation":{"id":4127,"nodeType":"StructuredDocumentation","src":"12031:148:15","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":4153,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"12193:6:15","nodeType":"FunctionDefinition","parameters":{"id":4133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4130,"mutability":"mutable","name":"map","nameLocation":"12225:3:15","nodeType":"VariableDeclaration","scope":4153,"src":"12200:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4129,"nodeType":"UserDefinedTypeName","pathNode":{"id":4128,"name":"AddressToUintMap","nameLocations":["12200:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"12200:16:15"},"referencedDeclaration":4093,"src":"12200:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4132,"mutability":"mutable","name":"key","nameLocation":"12238:3:15","nodeType":"VariableDeclaration","scope":4153,"src":"12230:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4131,"name":"address","nodeType":"ElementaryTypeName","src":"12230:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12199:43:15"},"returnParameters":{"id":4136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4153,"src":"12261:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4134,"name":"bool","nodeType":"ElementaryTypeName","src":"12261:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12260:6:15"},"scope":4525,"src":"12184:157:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4179,"nodeType":"Block","src":"12510:76:15","statements":[{"expression":{"arguments":[{"expression":{"id":4165,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4157,"src":"12536:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12540:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"12536:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4173,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4159,"src":"12572:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12564:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4171,"name":"uint160","nodeType":"ElementaryTypeName","src":"12564:7:15","typeDescriptions":{}}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12564:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12556:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4169,"name":"uint256","nodeType":"ElementaryTypeName","src":"12556:7:15","typeDescriptions":{}}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12556:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12548:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12548:7:15","typeDescriptions":{}}},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12548:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4164,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"12527:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12527:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4163,"id":4178,"nodeType":"Return","src":"12520:59:15"}]},"documentation":{"id":4154,"nodeType":"StructuredDocumentation","src":"12347:68:15","text":" @dev Returns true if the key is in the map. O(1)."},"id":4180,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"12429:8:15","nodeType":"FunctionDefinition","parameters":{"id":4160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4157,"mutability":"mutable","name":"map","nameLocation":"12463:3:15","nodeType":"VariableDeclaration","scope":4180,"src":"12438:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4156,"nodeType":"UserDefinedTypeName","pathNode":{"id":4155,"name":"AddressToUintMap","nameLocations":["12438:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"12438:16:15"},"referencedDeclaration":4093,"src":"12438:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4159,"mutability":"mutable","name":"key","nameLocation":"12476:3:15","nodeType":"VariableDeclaration","scope":4180,"src":"12468:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4158,"name":"address","nodeType":"ElementaryTypeName","src":"12468:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12437:43:15"},"returnParameters":{"id":4163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4180,"src":"12504:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4161,"name":"bool","nodeType":"ElementaryTypeName","src":"12504:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12503:6:15"},"scope":4525,"src":"12420:166:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4194,"nodeType":"Block","src":"12747:42:15","statements":[{"expression":{"arguments":[{"expression":{"id":4190,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4184,"src":"12771:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12775:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"12771:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}],"id":4189,"name":"length","nodeType":"Identifier","overloadedDeclarations":[3504,3733,3946,4195,4417],"referencedDeclaration":3504,"src":"12764:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12764:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4188,"id":4193,"nodeType":"Return","src":"12757:25:15"}]},"documentation":{"id":4181,"nodeType":"StructuredDocumentation","src":"12592:72:15","text":" @dev Returns the number of elements in the map. O(1)."},"id":4195,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"12678:6:15","nodeType":"FunctionDefinition","parameters":{"id":4185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4184,"mutability":"mutable","name":"map","nameLocation":"12710:3:15","nodeType":"VariableDeclaration","scope":4195,"src":"12685:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4183,"nodeType":"UserDefinedTypeName","pathNode":{"id":4182,"name":"AddressToUintMap","nameLocations":["12685:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"12685:16:15"},"referencedDeclaration":4093,"src":"12685:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"}],"src":"12684:30:15"},"returnParameters":{"id":4188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4195,"src":"12738:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4186,"name":"uint256","nodeType":"ElementaryTypeName","src":"12738:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12737:9:15"},"scope":4525,"src":"12669:120:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4234,"nodeType":"Block","src":"13224:134:15","statements":[{"assignments":[4209,4211],"declarations":[{"constant":false,"id":4209,"mutability":"mutable","name":"key","nameLocation":"13243:3:15","nodeType":"VariableDeclaration","scope":4234,"src":"13235:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13235:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4211,"mutability":"mutable","name":"value","nameLocation":"13256:5:15","nodeType":"VariableDeclaration","scope":4234,"src":"13248:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13248:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4217,"initialValue":{"arguments":[{"expression":{"id":4213,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4199,"src":"13268:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13272:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"13268:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4215,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4201,"src":"13280:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4212,"name":"at","nodeType":"Identifier","overloadedDeclarations":[3533,3767,3986,4235,4448],"referencedDeclaration":3533,"src":"13265:2:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":4216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13265:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"13234:52:15"},{"expression":{"components":[{"arguments":[{"arguments":[{"arguments":[{"id":4224,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4209,"src":"13328:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13320:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4222,"name":"uint256","nodeType":"ElementaryTypeName","src":"13320:7:15","typeDescriptions":{}}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13320:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13312:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4220,"name":"uint160","nodeType":"ElementaryTypeName","src":"13312:7:15","typeDescriptions":{}}},"id":4226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13312:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13304:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4218,"name":"address","nodeType":"ElementaryTypeName","src":"13304:7:15","typeDescriptions":{}}},"id":4227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13304:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":4230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"13344:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13336:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4228,"name":"uint256","nodeType":"ElementaryTypeName","src":"13336:7:15","typeDescriptions":{}}},"id":4231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13336:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4232,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13303:48:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":4207,"id":4233,"nodeType":"Return","src":"13296:55:15"}]},"documentation":{"id":4196,"nodeType":"StructuredDocumentation","src":"12795:326:15","text":" @dev Returns the element 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":4235,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"13135:2:15","nodeType":"FunctionDefinition","parameters":{"id":4202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4199,"mutability":"mutable","name":"map","nameLocation":"13163:3:15","nodeType":"VariableDeclaration","scope":4235,"src":"13138:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4198,"nodeType":"UserDefinedTypeName","pathNode":{"id":4197,"name":"AddressToUintMap","nameLocations":["13138:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"13138:16:15"},"referencedDeclaration":4093,"src":"13138:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4201,"mutability":"mutable","name":"index","nameLocation":"13176:5:15","nodeType":"VariableDeclaration","scope":4235,"src":"13168:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4200,"name":"uint256","nodeType":"ElementaryTypeName","src":"13168:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13137:45:15"},"returnParameters":{"id":4207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4235,"src":"13206:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4203,"name":"address","nodeType":"ElementaryTypeName","src":"13206:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4235,"src":"13215:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4205,"name":"uint256","nodeType":"ElementaryTypeName","src":"13215:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13205:18:15"},"scope":4525,"src":"13126:232:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4274,"nodeType":"Block","src":"13596:141:15","statements":[{"assignments":[4249,4251],"declarations":[{"constant":false,"id":4249,"mutability":"mutable","name":"success","nameLocation":"13612:7:15","nodeType":"VariableDeclaration","scope":4274,"src":"13607:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4248,"name":"bool","nodeType":"ElementaryTypeName","src":"13607:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4251,"mutability":"mutable","name":"value","nameLocation":"13629:5:15","nodeType":"VariableDeclaration","scope":4274,"src":"13621:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13621:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4266,"initialValue":{"arguments":[{"expression":{"id":4253,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"13645:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13649:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"13645:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4261,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"13681:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13673:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4259,"name":"uint160","nodeType":"ElementaryTypeName","src":"13673:7:15","typeDescriptions":{}}},"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13673:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13665:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4257,"name":"uint256","nodeType":"ElementaryTypeName","src":"13665:7:15","typeDescriptions":{}}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13665:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13657:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13657:7:15","typeDescriptions":{}}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13657:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4252,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[3577,3801,4026,4275,4479],"referencedDeclaration":3577,"src":"13638:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13638:50:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"13606:82:15"},{"expression":{"components":[{"id":4267,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4249,"src":"13706:7:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":4270,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"13723:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13715:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"13715:7:15","typeDescriptions":{}}},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13715:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4272,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13705:25:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":4247,"id":4273,"nodeType":"Return","src":"13698:32:15"}]},"documentation":{"id":4236,"nodeType":"StructuredDocumentation","src":"13364:130:15","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":4275,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"13508:6:15","nodeType":"FunctionDefinition","parameters":{"id":4242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4239,"mutability":"mutable","name":"map","nameLocation":"13540:3:15","nodeType":"VariableDeclaration","scope":4275,"src":"13515:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4238,"nodeType":"UserDefinedTypeName","pathNode":{"id":4237,"name":"AddressToUintMap","nameLocations":["13515:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"13515:16:15"},"referencedDeclaration":4093,"src":"13515:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4241,"mutability":"mutable","name":"key","nameLocation":"13553:3:15","nodeType":"VariableDeclaration","scope":4275,"src":"13545:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4240,"name":"address","nodeType":"ElementaryTypeName","src":"13545:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13514:43:15"},"returnParameters":{"id":4247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4275,"src":"13581:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4243,"name":"bool","nodeType":"ElementaryTypeName","src":"13581:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4275,"src":"13587:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4245,"name":"uint256","nodeType":"ElementaryTypeName","src":"13587:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13580:15:15"},"scope":4525,"src":"13499:238:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4304,"nodeType":"Block","src":"13976:80:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":4289,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"14005:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14009:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"14005:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4297,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"14041:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14033:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4295,"name":"uint160","nodeType":"ElementaryTypeName","src":"14033:7:15","typeDescriptions":{}}},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14033:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14025:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4293,"name":"uint256","nodeType":"ElementaryTypeName","src":"14025:7:15","typeDescriptions":{}}},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14025:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14017:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14017:7:15","typeDescriptions":{}}},"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14017:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4288,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3610,"src":"14001:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":4301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14001:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13993:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4286,"name":"uint256","nodeType":"ElementaryTypeName","src":"13993:7:15","typeDescriptions":{}}},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13993:56:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4285,"id":4303,"nodeType":"Return","src":"13986:63:15"}]},"documentation":{"id":4276,"nodeType":"StructuredDocumentation","src":"13743:140:15","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":4305,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"13897:3:15","nodeType":"FunctionDefinition","parameters":{"id":4282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"map","nameLocation":"13926:3:15","nodeType":"VariableDeclaration","scope":4305,"src":"13901:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4278,"nodeType":"UserDefinedTypeName","pathNode":{"id":4277,"name":"AddressToUintMap","nameLocations":["13901:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"13901:16:15"},"referencedDeclaration":4093,"src":"13901:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4281,"mutability":"mutable","name":"key","nameLocation":"13939:3:15","nodeType":"VariableDeclaration","scope":4305,"src":"13931:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4280,"name":"address","nodeType":"ElementaryTypeName","src":"13931:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13900:43:15"},"returnParameters":{"id":4285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4305,"src":"13967:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4283,"name":"uint256","nodeType":"ElementaryTypeName","src":"13967:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13966:9:15"},"scope":4525,"src":"13888:168:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4337,"nodeType":"Block","src":"14482:94:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":4321,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4309,"src":"14511:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap storage pointer"}},"id":4322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14515:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4092,"src":"14511:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4329,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4311,"src":"14547:3:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14539:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4327,"name":"uint160","nodeType":"ElementaryTypeName","src":"14539:7:15","typeDescriptions":{}}},"id":4330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14539:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14531:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4325,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:15","typeDescriptions":{}}},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14531:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14523:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14523:7:15","typeDescriptions":{}}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14523:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4333,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"14555:12:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4320,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3645,"src":"14507:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14499:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4318,"name":"uint256","nodeType":"ElementaryTypeName","src":"14499:7:15","typeDescriptions":{}}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4317,"id":4336,"nodeType":"Return","src":"14492:77:15"}]},"documentation":{"id":4306,"nodeType":"StructuredDocumentation","src":"14062:269:15","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":4338,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"14345:3:15","nodeType":"FunctionDefinition","parameters":{"id":4314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4309,"mutability":"mutable","name":"map","nameLocation":"14383:3:15","nodeType":"VariableDeclaration","scope":4338,"src":"14358:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"},"typeName":{"id":4308,"nodeType":"UserDefinedTypeName","pathNode":{"id":4307,"name":"AddressToUintMap","nameLocations":["14358:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4093,"src":"14358:16:15"},"referencedDeclaration":4093,"src":"14358:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$4093_storage_ptr","typeString":"struct EnumerableMapUpgradeable.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":4311,"mutability":"mutable","name":"key","nameLocation":"14404:3:15","nodeType":"VariableDeclaration","scope":4338,"src":"14396:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4310,"name":"address","nodeType":"ElementaryTypeName","src":"14396:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4313,"mutability":"mutable","name":"errorMessage","nameLocation":"14431:12:15","nodeType":"VariableDeclaration","scope":4338,"src":"14417:26:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4312,"name":"string","nodeType":"ElementaryTypeName","src":"14417:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14348:101:15"},"returnParameters":{"id":4317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4338,"src":"14473:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4315,"name":"uint256","nodeType":"ElementaryTypeName","src":"14473:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14472:9:15"},"scope":4525,"src":"14336:240:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMapUpgradeable.Bytes32ToUintMap","id":4342,"members":[{"constant":false,"id":4341,"mutability":"mutable","name":"_inner","nameLocation":"14661:6:15","nodeType":"VariableDeclaration","scope":4342,"src":"14641:26:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"},"typeName":{"id":4340,"nodeType":"UserDefinedTypeName","pathNode":{"id":4339,"name":"Bytes32ToBytes32Map","nameLocations":["14641:19:15"],"nodeType":"IdentifierPath","referencedDeclaration":3419,"src":"14641:19:15"},"referencedDeclaration":3419,"src":"14641:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"Bytes32ToUintMap","nameLocation":"14614:16:15","nodeType":"StructDefinition","scope":4525,"src":"14607:67:15","visibility":"public"},{"body":{"id":4365,"nodeType":"Block","src":"15026:60:15","statements":[{"expression":{"arguments":[{"expression":{"id":4356,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"15047:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15051:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"15047:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4358,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4348,"src":"15059:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":4361,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4350,"src":"15072:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15064:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15064:7:15","typeDescriptions":{}}},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15064:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4355,"name":"set","nodeType":"Identifier","overloadedDeclarations":[3447,3676,3889,4126,4366],"referencedDeclaration":3447,"src":"15043:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15043:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4354,"id":4364,"nodeType":"Return","src":"15036:43:15"}]},"documentation":{"id":4343,"nodeType":"StructuredDocumentation","src":"14680:216:15","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":4366,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"14910:3:15","nodeType":"FunctionDefinition","parameters":{"id":4351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4346,"mutability":"mutable","name":"map","nameLocation":"14948:3:15","nodeType":"VariableDeclaration","scope":4366,"src":"14923:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4345,"nodeType":"UserDefinedTypeName","pathNode":{"id":4344,"name":"Bytes32ToUintMap","nameLocations":["14923:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"14923:16:15"},"referencedDeclaration":4342,"src":"14923:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4348,"mutability":"mutable","name":"key","nameLocation":"14969:3:15","nodeType":"VariableDeclaration","scope":4366,"src":"14961:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14961:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4350,"mutability":"mutable","name":"value","nameLocation":"14990:5:15","nodeType":"VariableDeclaration","scope":4366,"src":"14982:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4349,"name":"uint256","nodeType":"ElementaryTypeName","src":"14982:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14913:88:15"},"returnParameters":{"id":4354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4366,"src":"15020:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4352,"name":"bool","nodeType":"ElementaryTypeName","src":"15020:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15019:6:15"},"scope":4525,"src":"14901:185:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4383,"nodeType":"Block","src":"15328:47:15","statements":[{"expression":{"arguments":[{"expression":{"id":4378,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4370,"src":"15352:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15356:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"15352:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4380,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"15364:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4377,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[3471,3697,3910,4153,4384],"referencedDeclaration":3471,"src":"15345:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":4381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15345:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4376,"id":4382,"nodeType":"Return","src":"15338:30:15"}]},"documentation":{"id":4367,"nodeType":"StructuredDocumentation","src":"15092:148:15","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":4384,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"15254:6:15","nodeType":"FunctionDefinition","parameters":{"id":4373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4370,"mutability":"mutable","name":"map","nameLocation":"15286:3:15","nodeType":"VariableDeclaration","scope":4384,"src":"15261:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4369,"nodeType":"UserDefinedTypeName","pathNode":{"id":4368,"name":"Bytes32ToUintMap","nameLocations":["15261:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"15261:16:15"},"referencedDeclaration":4342,"src":"15261:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4372,"mutability":"mutable","name":"key","nameLocation":"15299:3:15","nodeType":"VariableDeclaration","scope":4384,"src":"15291:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15291:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15260:43:15"},"returnParameters":{"id":4376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4384,"src":"15322:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4374,"name":"bool","nodeType":"ElementaryTypeName","src":"15322:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15321:6:15"},"scope":4525,"src":"15245:130:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4401,"nodeType":"Block","src":"15544:49:15","statements":[{"expression":{"arguments":[{"expression":{"id":4396,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4388,"src":"15570:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15574:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"15570:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4398,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4390,"src":"15582:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4395,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[3489,3718,3931,4180,4402],"referencedDeclaration":3489,"src":"15561:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":4399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15561:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4394,"id":4400,"nodeType":"Return","src":"15554:32:15"}]},"documentation":{"id":4385,"nodeType":"StructuredDocumentation","src":"15381:68:15","text":" @dev Returns true if the key is in the map. O(1)."},"id":4402,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"15463:8:15","nodeType":"FunctionDefinition","parameters":{"id":4391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4388,"mutability":"mutable","name":"map","nameLocation":"15497:3:15","nodeType":"VariableDeclaration","scope":4402,"src":"15472:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4387,"nodeType":"UserDefinedTypeName","pathNode":{"id":4386,"name":"Bytes32ToUintMap","nameLocations":["15472:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"15472:16:15"},"referencedDeclaration":4342,"src":"15472:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4390,"mutability":"mutable","name":"key","nameLocation":"15510:3:15","nodeType":"VariableDeclaration","scope":4402,"src":"15502:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15502:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15471:43:15"},"returnParameters":{"id":4394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4402,"src":"15538:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4392,"name":"bool","nodeType":"ElementaryTypeName","src":"15538:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15537:6:15"},"scope":4525,"src":"15454:139:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4416,"nodeType":"Block","src":"15754:42:15","statements":[{"expression":{"arguments":[{"expression":{"id":4412,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"15778:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15782:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"15778:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}],"id":4411,"name":"length","nodeType":"Identifier","overloadedDeclarations":[3504,3733,3946,4195,4417],"referencedDeclaration":3504,"src":"15771:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15771:18:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4410,"id":4415,"nodeType":"Return","src":"15764:25:15"}]},"documentation":{"id":4403,"nodeType":"StructuredDocumentation","src":"15599:72:15","text":" @dev Returns the number of elements in the map. O(1)."},"id":4417,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"15685:6:15","nodeType":"FunctionDefinition","parameters":{"id":4407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4406,"mutability":"mutable","name":"map","nameLocation":"15717:3:15","nodeType":"VariableDeclaration","scope":4417,"src":"15692:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4405,"nodeType":"UserDefinedTypeName","pathNode":{"id":4404,"name":"Bytes32ToUintMap","nameLocations":["15692:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"15692:16:15"},"referencedDeclaration":4342,"src":"15692:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"}],"src":"15691:30:15"},"returnParameters":{"id":4410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4417,"src":"15745:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4408,"name":"uint256","nodeType":"ElementaryTypeName","src":"15745:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15744:9:15"},"scope":4525,"src":"15676:120:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4447,"nodeType":"Block","src":"16231:107:15","statements":[{"assignments":[4431,4433],"declarations":[{"constant":false,"id":4431,"mutability":"mutable","name":"key","nameLocation":"16250:3:15","nodeType":"VariableDeclaration","scope":4447,"src":"16242:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16242:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4433,"mutability":"mutable","name":"value","nameLocation":"16263:5:15","nodeType":"VariableDeclaration","scope":4447,"src":"16255:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16255:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4439,"initialValue":{"arguments":[{"expression":{"id":4435,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4421,"src":"16275:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16279:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"16275:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4437,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4423,"src":"16287:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4434,"name":"at","nodeType":"Identifier","overloadedDeclarations":[3533,3767,3986,4235,4448],"referencedDeclaration":3533,"src":"16272:2:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":4438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16272:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16241:52:15"},{"expression":{"components":[{"id":4440,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"16311:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":4443,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4433,"src":"16324:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16316:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4441,"name":"uint256","nodeType":"ElementaryTypeName","src":"16316:7:15","typeDescriptions":{}}},"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16316:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4445,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16310:21:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"functionReturnParameters":4429,"id":4446,"nodeType":"Return","src":"16303:28:15"}]},"documentation":{"id":4418,"nodeType":"StructuredDocumentation","src":"15802:326:15","text":" @dev Returns the element 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":4448,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"16142:2:15","nodeType":"FunctionDefinition","parameters":{"id":4424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4421,"mutability":"mutable","name":"map","nameLocation":"16170:3:15","nodeType":"VariableDeclaration","scope":4448,"src":"16145:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4420,"nodeType":"UserDefinedTypeName","pathNode":{"id":4419,"name":"Bytes32ToUintMap","nameLocations":["16145:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"16145:16:15"},"referencedDeclaration":4342,"src":"16145:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4423,"mutability":"mutable","name":"index","nameLocation":"16183:5:15","nodeType":"VariableDeclaration","scope":4448,"src":"16175:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4422,"name":"uint256","nodeType":"ElementaryTypeName","src":"16175:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16144:45:15"},"returnParameters":{"id":4429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4448,"src":"16213:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16213:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4448,"src":"16222:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4427,"name":"uint256","nodeType":"ElementaryTypeName","src":"16222:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16212:18:15"},"scope":4525,"src":"16133:205:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4478,"nodeType":"Block","src":"16576:114:15","statements":[{"assignments":[4462,4464],"declarations":[{"constant":false,"id":4462,"mutability":"mutable","name":"success","nameLocation":"16592:7:15","nodeType":"VariableDeclaration","scope":4478,"src":"16587:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4461,"name":"bool","nodeType":"ElementaryTypeName","src":"16587:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4464,"mutability":"mutable","name":"value","nameLocation":"16609:5:15","nodeType":"VariableDeclaration","scope":4478,"src":"16601:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16601:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4470,"initialValue":{"arguments":[{"expression":{"id":4466,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"16625:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16629:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"16625:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4468,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"16637:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4465,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[3577,3801,4026,4275,4479],"referencedDeclaration":3577,"src":"16618:6:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16618:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16586:55:15"},{"expression":{"components":[{"id":4471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"16659:7:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":4474,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4464,"src":"16676:5:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16668:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4472,"name":"uint256","nodeType":"ElementaryTypeName","src":"16668:7:15","typeDescriptions":{}}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16668:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16658:25:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":4460,"id":4477,"nodeType":"Return","src":"16651:32:15"}]},"documentation":{"id":4449,"nodeType":"StructuredDocumentation","src":"16344:130:15","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":4479,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"16488:6:15","nodeType":"FunctionDefinition","parameters":{"id":4455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4452,"mutability":"mutable","name":"map","nameLocation":"16520:3:15","nodeType":"VariableDeclaration","scope":4479,"src":"16495:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4451,"nodeType":"UserDefinedTypeName","pathNode":{"id":4450,"name":"Bytes32ToUintMap","nameLocations":["16495:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"16495:16:15"},"referencedDeclaration":4342,"src":"16495:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4454,"mutability":"mutable","name":"key","nameLocation":"16533:3:15","nodeType":"VariableDeclaration","scope":4479,"src":"16525:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16525:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16494:43:15"},"returnParameters":{"id":4460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"16561:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4456,"name":"bool","nodeType":"ElementaryTypeName","src":"16561:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4459,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"16567:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4458,"name":"uint256","nodeType":"ElementaryTypeName","src":"16567:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16560:15:15"},"scope":4525,"src":"16479:211:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4499,"nodeType":"Block","src":"16929:53:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":4493,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"16958:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16962:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"16958:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4495,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"16970:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4492,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3610,"src":"16954:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16954:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16946:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4490,"name":"uint256","nodeType":"ElementaryTypeName","src":"16946:7:15","typeDescriptions":{}}},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16946:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4489,"id":4498,"nodeType":"Return","src":"16939:36:15"}]},"documentation":{"id":4480,"nodeType":"StructuredDocumentation","src":"16696:140:15","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":4500,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"16850:3:15","nodeType":"FunctionDefinition","parameters":{"id":4486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4483,"mutability":"mutable","name":"map","nameLocation":"16879:3:15","nodeType":"VariableDeclaration","scope":4500,"src":"16854:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4482,"nodeType":"UserDefinedTypeName","pathNode":{"id":4481,"name":"Bytes32ToUintMap","nameLocations":["16854:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"16854:16:15"},"referencedDeclaration":4342,"src":"16854:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4485,"mutability":"mutable","name":"key","nameLocation":"16892:3:15","nodeType":"VariableDeclaration","scope":4500,"src":"16884:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16884:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16853:43:15"},"returnParameters":{"id":4489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4500,"src":"16920:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4487,"name":"uint256","nodeType":"ElementaryTypeName","src":"16920:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16919:9:15"},"scope":4525,"src":"16841:141:15","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4523,"nodeType":"Block","src":"17408:67:15","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":4516,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"17437:3:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap storage pointer"}},"id":4517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17441:6:15","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4341,"src":"17437:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"}},{"id":4518,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4506,"src":"17449:3:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4519,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4508,"src":"17454:12:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$3419_storage","typeString":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4515,"name":"get","nodeType":"Identifier","overloadedDeclarations":[3610,3645,3825,3852,4056,4089,4305,4338,4500,4524],"referencedDeclaration":3645,"src":"17433:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$3419_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMapUpgradeable.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17433:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17425:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4513,"name":"uint256","nodeType":"ElementaryTypeName","src":"17425:7:15","typeDescriptions":{}}},"id":4521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17425:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4512,"id":4522,"nodeType":"Return","src":"17418:50:15"}]},"documentation":{"id":4501,"nodeType":"StructuredDocumentation","src":"16988:269:15","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":4524,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"17271:3:15","nodeType":"FunctionDefinition","parameters":{"id":4509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4504,"mutability":"mutable","name":"map","nameLocation":"17309:3:15","nodeType":"VariableDeclaration","scope":4524,"src":"17284:28:15","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"},"typeName":{"id":4503,"nodeType":"UserDefinedTypeName","pathNode":{"id":4502,"name":"Bytes32ToUintMap","nameLocations":["17284:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"17284:16:15"},"referencedDeclaration":4342,"src":"17284:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$4342_storage_ptr","typeString":"struct EnumerableMapUpgradeable.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":4506,"mutability":"mutable","name":"key","nameLocation":"17330:3:15","nodeType":"VariableDeclaration","scope":4524,"src":"17322:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17322:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4508,"mutability":"mutable","name":"errorMessage","nameLocation":"17357:12:15","nodeType":"VariableDeclaration","scope":4524,"src":"17343:26:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4507,"name":"string","nodeType":"ElementaryTypeName","src":"17343:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17274:101:15"},"returnParameters":{"id":4512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4524,"src":"17399:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4510,"name":"uint256","nodeType":"ElementaryTypeName","src":"17399:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17398:9:15"},"scope":4525,"src":"17262:213:15","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":4526,"src":"1632:15845:15","usedErrors":[]}],"src":"205:17273:15"},"id":15},"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol","exportedSymbols":{"EnumerableSetUpgradeable":[5138]},"id":5139,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4527,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:16"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSetUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":4528,"nodeType":"StructuredDocumentation","src":"230:1090:16","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":5138,"linearizedBaseContracts":[5138],"name":"EnumerableSetUpgradeable","nameLocation":"1329:24:16","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSetUpgradeable.Set","id":4536,"members":[{"constant":false,"id":4531,"mutability":"mutable","name":"_values","nameLocation":"1864:7:16","nodeType":"VariableDeclaration","scope":4536,"src":"1854:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1854:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4530,"nodeType":"ArrayTypeName","src":"1854:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":4535,"mutability":"mutable","name":"_indexes","nameLocation":"2032:8:16","nodeType":"VariableDeclaration","scope":4536,"src":"2004:36:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":4534,"keyType":{"id":4532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2012:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2004:27:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":4533,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1807:3:16","nodeType":"StructDefinition","scope":5138,"src":"1800:247:16","visibility":"public"},{"body":{"id":4577,"nodeType":"Block","src":"2286:335:16","statements":[{"condition":{"id":4551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2300:22:16","subExpression":{"arguments":[{"id":4548,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"2311:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},{"id":4549,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"2316:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4547,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4681,"src":"2301:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"}},"id":4550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2301:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4575,"nodeType":"Block","src":"2578:37:16","statements":[{"expression":{"hexValue":"66616c7365","id":4573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2599:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4546,"id":4574,"nodeType":"Return","src":"2592:12:16"}]},"id":4576,"nodeType":"IfStatement","src":"2296:319:16","trueBody":{"id":4572,"nodeType":"Block","src":"2324:248:16","statements":[{"expression":{"arguments":[{"id":4557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"2355:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":4552,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"2338:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2342:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"2338:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:4:16","memberName":"push","nodeType":"MemberAccess","src":"2338:16:16","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":4558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4559,"nodeType":"ExpressionStatement","src":"2338:23:16"},{"expression":{"id":4568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4560,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"2496:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2500:8:16","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":4535,"src":"2496:12:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4564,"indexExpression":{"id":4562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"2509:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2496:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":4565,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4540,"src":"2518:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2522:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"2518:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2530:6:16","memberName":"length","nodeType":"MemberAccess","src":"2518:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2496:40:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4569,"nodeType":"ExpressionStatement","src":"2496:40:16"},{"expression":{"hexValue":"74727565","id":4570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2557:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4546,"id":4571,"nodeType":"Return","src":"2550:11:16"}]}}]},"documentation":{"id":4537,"nodeType":"StructuredDocumentation","src":"2053:159:16","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":4578,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2226:4:16","nodeType":"FunctionDefinition","parameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4540,"mutability":"mutable","name":"set","nameLocation":"2243:3:16","nodeType":"VariableDeclaration","scope":4578,"src":"2231:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4539,"nodeType":"UserDefinedTypeName","pathNode":{"id":4538,"name":"Set","nameLocations":["2231:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"2231:3:16"},"referencedDeclaration":4536,"src":"2231:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"},{"constant":false,"id":4542,"mutability":"mutable","name":"value","nameLocation":"2256:5:16","nodeType":"VariableDeclaration","scope":4578,"src":"2248:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2248:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2230:32:16"},"returnParameters":{"id":4546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4578,"src":"2280:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4544,"name":"bool","nodeType":"ElementaryTypeName","src":"2280:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2279:6:16"},"scope":5138,"src":"2217:404:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4661,"nodeType":"Block","src":"2861:1316:16","statements":[{"assignments":[4590],"declarations":[{"constant":false,"id":4590,"mutability":"mutable","name":"valueIndex","nameLocation":"2979:10:16","nodeType":"VariableDeclaration","scope":4661,"src":"2971:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"2971:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4595,"initialValue":{"baseExpression":{"expression":{"id":4591,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"2992:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:8:16","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":4535,"src":"2992:12:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4594,"indexExpression":{"id":4593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"3005:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2992:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2971:40:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4596,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"3026:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3040:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3026:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4659,"nodeType":"Block","src":"4134:37:16","statements":[{"expression":{"hexValue":"66616c7365","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4155:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4588,"id":4658,"nodeType":"Return","src":"4148:12:16"}]},"id":4660,"nodeType":"IfStatement","src":"3022:1149:16","trueBody":{"id":4656,"nodeType":"Block","src":"3043:1085:16","statements":[{"assignments":[4600],"declarations":[{"constant":false,"id":4600,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3403:13:16","nodeType":"VariableDeclaration","scope":4656,"src":"3395:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4599,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4604,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4601,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"3419:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3432:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3419:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3395:38:16"},{"assignments":[4606],"declarations":[{"constant":false,"id":4606,"mutability":"mutable","name":"lastIndex","nameLocation":"3455:9:16","nodeType":"VariableDeclaration","scope":4656,"src":"3447:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4605,"name":"uint256","nodeType":"ElementaryTypeName","src":"3447:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4612,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4607,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"3467:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3471:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"3467:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3479:6:16","memberName":"length","nodeType":"MemberAccess","src":"3467:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3488:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3467:22:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3447:42:16"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4613,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4606,"src":"3508:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":4614,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4600,"src":"3521:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3508:26:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4640,"nodeType":"IfStatement","src":"3504:398:16","trueBody":{"id":4639,"nodeType":"Block","src":"3536:366:16","statements":[{"assignments":[4617],"declarations":[{"constant":false,"id":4617,"mutability":"mutable","name":"lastValue","nameLocation":"3562:9:16","nodeType":"VariableDeclaration","scope":4639,"src":"3554:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3554:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4622,"initialValue":{"baseExpression":{"expression":{"id":4618,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"3574:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3578:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"3574:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4621,"indexExpression":{"id":4620,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4606,"src":"3586:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3574:22:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3554:42:16"},{"expression":{"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4623,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"3696:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3700:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"3696:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4627,"indexExpression":{"id":4625,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4600,"src":"3708:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3696:26:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4628,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4617,"src":"3725:9:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3696:38:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4630,"nodeType":"ExpressionStatement","src":"3696:38:16"},{"expression":{"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":4631,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"3808:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3812:8:16","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":4535,"src":"3808:12:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4635,"indexExpression":{"id":4633,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4617,"src":"3821:9:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3808:23:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4636,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4590,"src":"3834:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3808:36:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4638,"nodeType":"ExpressionStatement","src":"3808:36:16"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":4641,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"3980:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3984:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"3980:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3992:3:16","memberName":"pop","nodeType":"MemberAccess","src":"3980:15:16","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":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3980:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4647,"nodeType":"ExpressionStatement","src":"3980:17:16"},{"expression":{"id":4652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4065:26:16","subExpression":{"baseExpression":{"expression":{"id":4648,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4582,"src":"4072:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4076:8:16","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":4535,"src":"4072:12:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4651,"indexExpression":{"id":4650,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4584,"src":"4085:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4072:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4653,"nodeType":"ExpressionStatement","src":"4065:26:16"},{"expression":{"hexValue":"74727565","id":4654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4113:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4588,"id":4655,"nodeType":"Return","src":"4106:11:16"}]}}]},"documentation":{"id":4579,"nodeType":"StructuredDocumentation","src":"2627:157:16","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":4662,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2798:7:16","nodeType":"FunctionDefinition","parameters":{"id":4585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4582,"mutability":"mutable","name":"set","nameLocation":"2818:3:16","nodeType":"VariableDeclaration","scope":4662,"src":"2806:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4581,"nodeType":"UserDefinedTypeName","pathNode":{"id":4580,"name":"Set","nameLocations":["2806:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"2806:3:16"},"referencedDeclaration":4536,"src":"2806:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"},{"constant":false,"id":4584,"mutability":"mutable","name":"value","nameLocation":"2831:5:16","nodeType":"VariableDeclaration","scope":4662,"src":"2823:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2823:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2805:32:16"},"returnParameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4662,"src":"2855:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4586,"name":"bool","nodeType":"ElementaryTypeName","src":"2855:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2854:6:16"},"scope":5138,"src":"2789:1388:16","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":4680,"nodeType":"Block","src":"4337:48:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":4673,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"4354:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4358:8:16","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":4535,"src":"4354:12:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":4676,"indexExpression":{"id":4675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4668,"src":"4367:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4354:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4377:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4354:24:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4672,"id":4679,"nodeType":"Return","src":"4347:31:16"}]},"documentation":{"id":4663,"nodeType":"StructuredDocumentation","src":"4183:70:16","text":" @dev Returns true if the value is in the set. O(1)."},"id":4681,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4267:9:16","nodeType":"FunctionDefinition","parameters":{"id":4669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4666,"mutability":"mutable","name":"set","nameLocation":"4289:3:16","nodeType":"VariableDeclaration","scope":4681,"src":"4277:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4665,"nodeType":"UserDefinedTypeName","pathNode":{"id":4664,"name":"Set","nameLocations":["4277:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"4277:3:16"},"referencedDeclaration":4536,"src":"4277:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"},{"constant":false,"id":4668,"mutability":"mutable","name":"value","nameLocation":"4302:5:16","nodeType":"VariableDeclaration","scope":4681,"src":"4294:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4294:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4276:32:16"},"returnParameters":{"id":4672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4681,"src":"4331:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4670,"name":"bool","nodeType":"ElementaryTypeName","src":"4331:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4330:6:16"},"scope":5138,"src":"4258:127:16","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4694,"nodeType":"Block","src":"4531:42:16","statements":[{"expression":{"expression":{"expression":{"id":4690,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4685,"src":"4548:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4552:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"4548:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4560:6:16","memberName":"length","nodeType":"MemberAccess","src":"4548:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4689,"id":4693,"nodeType":"Return","src":"4541:25:16"}]},"documentation":{"id":4682,"nodeType":"StructuredDocumentation","src":"4391:70:16","text":" @dev Returns the number of values on the set. O(1)."},"id":4695,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4475:7:16","nodeType":"FunctionDefinition","parameters":{"id":4686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4685,"mutability":"mutable","name":"set","nameLocation":"4495:3:16","nodeType":"VariableDeclaration","scope":4695,"src":"4483:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4684,"nodeType":"UserDefinedTypeName","pathNode":{"id":4683,"name":"Set","nameLocations":["4483:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"4483:3:16"},"referencedDeclaration":4536,"src":"4483:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"}],"src":"4482:17:16"},"returnParameters":{"id":4689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4695,"src":"4522:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4687,"name":"uint256","nodeType":"ElementaryTypeName","src":"4522:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4521:9:16"},"scope":5138,"src":"4466:107:16","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4711,"nodeType":"Block","src":"4991:42:16","statements":[{"expression":{"baseExpression":{"expression":{"id":4706,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4699,"src":"5008:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5012:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"5008:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":4709,"indexExpression":{"id":4708,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4701,"src":"5020:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5008:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4705,"id":4710,"nodeType":"Return","src":"5001:25:16"}]},"documentation":{"id":4696,"nodeType":"StructuredDocumentation","src":"4579:331:16","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":4712,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4924:3:16","nodeType":"FunctionDefinition","parameters":{"id":4702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4699,"mutability":"mutable","name":"set","nameLocation":"4940:3:16","nodeType":"VariableDeclaration","scope":4712,"src":"4928:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4698,"nodeType":"UserDefinedTypeName","pathNode":{"id":4697,"name":"Set","nameLocations":["4928:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"4928:3:16"},"referencedDeclaration":4536,"src":"4928:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"},{"constant":false,"id":4701,"mutability":"mutable","name":"index","nameLocation":"4953:5:16","nodeType":"VariableDeclaration","scope":4712,"src":"4945:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4700,"name":"uint256","nodeType":"ElementaryTypeName","src":"4945:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4927:32:16"},"returnParameters":{"id":4705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4712,"src":"4982:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4982:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4981:9:16"},"scope":5138,"src":"4915:118:16","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4725,"nodeType":"Block","src":"5647:35:16","statements":[{"expression":{"expression":{"id":4722,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4716,"src":"5664:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set storage pointer"}},"id":4723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5668:7:16","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":4531,"src":"5664:11:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":4721,"id":4724,"nodeType":"Return","src":"5657:18:16"}]},"documentation":{"id":4713,"nodeType":"StructuredDocumentation","src":"5039:529:16","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":4726,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5582:7:16","nodeType":"FunctionDefinition","parameters":{"id":4717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4716,"mutability":"mutable","name":"set","nameLocation":"5602:3:16","nodeType":"VariableDeclaration","scope":4726,"src":"5590:15:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4715,"nodeType":"UserDefinedTypeName","pathNode":{"id":4714,"name":"Set","nameLocations":["5590:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"5590:3:16"},"referencedDeclaration":4536,"src":"5590:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"}],"src":"5589:17:16"},"returnParameters":{"id":4721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4726,"src":"5629:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5629:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4719,"nodeType":"ArrayTypeName","src":"5629:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5628:18:16"},"scope":5138,"src":"5573:109:16","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSetUpgradeable.Bytes32Set","id":4730,"members":[{"constant":false,"id":4729,"mutability":"mutable","name":"_inner","nameLocation":"5739:6:16","nodeType":"VariableDeclaration","scope":4730,"src":"5735:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4728,"nodeType":"UserDefinedTypeName","pathNode":{"id":4727,"name":"Set","nameLocations":["5735:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"5735:3:16"},"referencedDeclaration":4536,"src":"5735:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5714:10:16","nodeType":"StructDefinition","scope":5138,"src":"5707:45:16","visibility":"public"},{"body":{"id":4747,"nodeType":"Block","src":"5998:47:16","statements":[{"expression":{"arguments":[{"expression":{"id":4742,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4734,"src":"6020:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6024:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"6020:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":4744,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"6032:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4741,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"6015:4:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4740,"id":4746,"nodeType":"Return","src":"6008:30:16"}]},"documentation":{"id":4731,"nodeType":"StructuredDocumentation","src":"5758:159:16","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":4748,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5931:3:16","nodeType":"FunctionDefinition","parameters":{"id":4737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4734,"mutability":"mutable","name":"set","nameLocation":"5954:3:16","nodeType":"VariableDeclaration","scope":4748,"src":"5935:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4733,"nodeType":"UserDefinedTypeName","pathNode":{"id":4732,"name":"Bytes32Set","nameLocations":["5935:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"5935:10:16"},"referencedDeclaration":4730,"src":"5935:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4736,"mutability":"mutable","name":"value","nameLocation":"5967:5:16","nodeType":"VariableDeclaration","scope":4748,"src":"5959:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5959:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5934:39:16"},"returnParameters":{"id":4740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4748,"src":"5992:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4738,"name":"bool","nodeType":"ElementaryTypeName","src":"5992:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5991:6:16"},"scope":5138,"src":"5922:123:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4765,"nodeType":"Block","src":"6292:50:16","statements":[{"expression":{"arguments":[{"expression":{"id":4760,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"6317:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6321:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"6317:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":4762,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4754,"src":"6329:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4759,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"6309:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6309:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4758,"id":4764,"nodeType":"Return","src":"6302:33:16"}]},"documentation":{"id":4749,"nodeType":"StructuredDocumentation","src":"6051:157:16","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":4766,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6222:6:16","nodeType":"FunctionDefinition","parameters":{"id":4755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"set","nameLocation":"6248:3:16","nodeType":"VariableDeclaration","scope":4766,"src":"6229:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4751,"nodeType":"UserDefinedTypeName","pathNode":{"id":4750,"name":"Bytes32Set","nameLocations":["6229:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"6229:10:16"},"referencedDeclaration":4730,"src":"6229:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4754,"mutability":"mutable","name":"value","nameLocation":"6261:5:16","nodeType":"VariableDeclaration","scope":4766,"src":"6253:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6253:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6228:39:16"},"returnParameters":{"id":4758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4766,"src":"6286:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4756,"name":"bool","nodeType":"ElementaryTypeName","src":"6286:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6285:6:16"},"scope":5138,"src":"6213:129:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4783,"nodeType":"Block","src":"6509:52:16","statements":[{"expression":{"arguments":[{"expression":{"id":4778,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"6536:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6540:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"6536:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":4780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4772,"src":"6548:5:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4777,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4681,"src":"6526:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"}},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6526:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4776,"id":4782,"nodeType":"Return","src":"6519:35:16"}]},"documentation":{"id":4767,"nodeType":"StructuredDocumentation","src":"6348:70:16","text":" @dev Returns true if the value is in the set. O(1)."},"id":4784,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6432:8:16","nodeType":"FunctionDefinition","parameters":{"id":4773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4770,"mutability":"mutable","name":"set","nameLocation":"6460:3:16","nodeType":"VariableDeclaration","scope":4784,"src":"6441:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4769,"nodeType":"UserDefinedTypeName","pathNode":{"id":4768,"name":"Bytes32Set","nameLocations":["6441:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"6441:10:16"},"referencedDeclaration":4730,"src":"6441:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4772,"mutability":"mutable","name":"value","nameLocation":"6473:5:16","nodeType":"VariableDeclaration","scope":4784,"src":"6465:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6465:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6440:39:16"},"returnParameters":{"id":4776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4784,"src":"6503:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4774,"name":"bool","nodeType":"ElementaryTypeName","src":"6503:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6502:6:16"},"scope":5138,"src":"6423:138:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4798,"nodeType":"Block","src":"6714:43:16","statements":[{"expression":{"arguments":[{"expression":{"id":4794,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"6739:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6743:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"6739:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":4793,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4695,"src":"6731:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"}},"id":4796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6731:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4792,"id":4797,"nodeType":"Return","src":"6724:26:16"}]},"documentation":{"id":4785,"nodeType":"StructuredDocumentation","src":"6567:70:16","text":" @dev Returns the number of values in the set. O(1)."},"id":4799,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6651:6:16","nodeType":"FunctionDefinition","parameters":{"id":4789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"set","nameLocation":"6677:3:16","nodeType":"VariableDeclaration","scope":4799,"src":"6658:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4787,"nodeType":"UserDefinedTypeName","pathNode":{"id":4786,"name":"Bytes32Set","nameLocations":["6658:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"6658:10:16"},"referencedDeclaration":4730,"src":"6658:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"}],"src":"6657:24:16"},"returnParameters":{"id":4792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4799,"src":"6705:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4790,"name":"uint256","nodeType":"ElementaryTypeName","src":"6705:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6704:9:16"},"scope":5138,"src":"6642:115:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4816,"nodeType":"Block","src":"7182:46:16","statements":[{"expression":{"arguments":[{"expression":{"id":4811,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4803,"src":"7203:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7207:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"7203:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":4813,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"7215:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4810,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"7199:3:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"}},"id":4814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7199:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":4809,"id":4815,"nodeType":"Return","src":"7192:29:16"}]},"documentation":{"id":4800,"nodeType":"StructuredDocumentation","src":"6763:331:16","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":4817,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7108:2:16","nodeType":"FunctionDefinition","parameters":{"id":4806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4803,"mutability":"mutable","name":"set","nameLocation":"7130:3:16","nodeType":"VariableDeclaration","scope":4817,"src":"7111:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4802,"nodeType":"UserDefinedTypeName","pathNode":{"id":4801,"name":"Bytes32Set","nameLocations":["7111:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"7111:10:16"},"referencedDeclaration":4730,"src":"7111:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":4805,"mutability":"mutable","name":"index","nameLocation":"7143:5:16","nodeType":"VariableDeclaration","scope":4817,"src":"7135:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4804,"name":"uint256","nodeType":"ElementaryTypeName","src":"7135:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7110:39:16"},"returnParameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4817,"src":"7173:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7173:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7172:9:16"},"scope":5138,"src":"7099:129:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4846,"nodeType":"Block","src":"7849:219:16","statements":[{"assignments":[4831],"declarations":[{"constant":false,"id":4831,"mutability":"mutable","name":"store","nameLocation":"7876:5:16","nodeType":"VariableDeclaration","scope":4846,"src":"7859:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7859:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4830,"nodeType":"ArrayTypeName","src":"7859:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4836,"initialValue":{"arguments":[{"expression":{"id":4833,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4821,"src":"7892:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set storage pointer"}},"id":4834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7896:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4729,"src":"7892:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":4832,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4726,"src":"7884:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (bytes32[] memory)"}},"id":4835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7884:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7859:44:16"},{"assignments":[4841],"declarations":[{"constant":false,"id":4841,"mutability":"mutable","name":"result","nameLocation":"7930:6:16","nodeType":"VariableDeclaration","scope":4846,"src":"7913:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7913:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4840,"nodeType":"ArrayTypeName","src":"7913:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4842,"nodeType":"VariableDeclarationStatement","src":"7913:23:16"},{"AST":{"nodeType":"YulBlock","src":"7999:39:16","statements":[{"nodeType":"YulAssignment","src":"8013:15:16","value":{"name":"store","nodeType":"YulIdentifier","src":"8023:5:16"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8013:6:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4841,"isOffset":false,"isSlot":false,"src":"8013:6:16","valueSize":1},{"declaration":4831,"isOffset":false,"isSlot":false,"src":"8023:5:16","valueSize":1}],"id":4843,"nodeType":"InlineAssembly","src":"7990:48:16"},{"expression":{"id":4844,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4841,"src":"8055:6:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":4826,"id":4845,"nodeType":"Return","src":"8048:13:16"}]},"documentation":{"id":4818,"nodeType":"StructuredDocumentation","src":"7234:529:16","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":4847,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7777:6:16","nodeType":"FunctionDefinition","parameters":{"id":4822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4821,"mutability":"mutable","name":"set","nameLocation":"7803:3:16","nodeType":"VariableDeclaration","scope":4847,"src":"7784:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"},"typeName":{"id":4820,"nodeType":"UserDefinedTypeName","pathNode":{"id":4819,"name":"Bytes32Set","nameLocations":["7784:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4730,"src":"7784:10:16"},"referencedDeclaration":4730,"src":"7784:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$4730_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Bytes32Set"}},"visibility":"internal"}],"src":"7783:24:16"},"returnParameters":{"id":4826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4847,"src":"7831:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7831:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4824,"nodeType":"ArrayTypeName","src":"7831:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7830:18:16"},"scope":5138,"src":"7768:300:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSetUpgradeable.AddressSet","id":4851,"members":[{"constant":false,"id":4850,"mutability":"mutable","name":"_inner","nameLocation":"8125:6:16","nodeType":"VariableDeclaration","scope":4851,"src":"8121:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":4849,"nodeType":"UserDefinedTypeName","pathNode":{"id":4848,"name":"Set","nameLocations":["8121:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"8121:3:16"},"referencedDeclaration":4536,"src":"8121:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8100:10:16","nodeType":"StructDefinition","scope":5138,"src":"8093:45:16","visibility":"public"},{"body":{"id":4877,"nodeType":"Block","src":"8384:74:16","statements":[{"expression":{"arguments":[{"expression":{"id":4863,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4855,"src":"8406:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8410:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"8406:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4857,"src":"8442:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8434:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4869,"name":"uint160","nodeType":"ElementaryTypeName","src":"8434:7:16","typeDescriptions":{}}},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8426:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4867,"name":"uint256","nodeType":"ElementaryTypeName","src":"8426:7:16","typeDescriptions":{}}},"id":4873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8426:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8418:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8418:7:16","typeDescriptions":{}}},"id":4874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8418:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4862,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"8401:4:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8401:50:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4861,"id":4876,"nodeType":"Return","src":"8394:57:16"}]},"documentation":{"id":4852,"nodeType":"StructuredDocumentation","src":"8144:159:16","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":4878,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8317:3:16","nodeType":"FunctionDefinition","parameters":{"id":4858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4855,"mutability":"mutable","name":"set","nameLocation":"8340:3:16","nodeType":"VariableDeclaration","scope":4878,"src":"8321:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4854,"nodeType":"UserDefinedTypeName","pathNode":{"id":4853,"name":"AddressSet","nameLocations":["8321:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"8321:10:16"},"referencedDeclaration":4851,"src":"8321:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4857,"mutability":"mutable","name":"value","nameLocation":"8353:5:16","nodeType":"VariableDeclaration","scope":4878,"src":"8345:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4856,"name":"address","nodeType":"ElementaryTypeName","src":"8345:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8320:39:16"},"returnParameters":{"id":4861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4878,"src":"8378:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4859,"name":"bool","nodeType":"ElementaryTypeName","src":"8378:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8377:6:16"},"scope":5138,"src":"8308:150:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4904,"nodeType":"Block","src":"8705:77:16","statements":[{"expression":{"arguments":[{"expression":{"id":4890,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4882,"src":"8730:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8734:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"8730:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4884,"src":"8766:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8758:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4896,"name":"uint160","nodeType":"ElementaryTypeName","src":"8758:7:16","typeDescriptions":{}}},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8758:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8750:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4894,"name":"uint256","nodeType":"ElementaryTypeName","src":"8750:7:16","typeDescriptions":{}}},"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8750:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8742:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8742:7:16","typeDescriptions":{}}},"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8742:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4889,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"8722:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8722:53:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4888,"id":4903,"nodeType":"Return","src":"8715:60:16"}]},"documentation":{"id":4879,"nodeType":"StructuredDocumentation","src":"8464:157:16","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":4905,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8635:6:16","nodeType":"FunctionDefinition","parameters":{"id":4885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4882,"mutability":"mutable","name":"set","nameLocation":"8661:3:16","nodeType":"VariableDeclaration","scope":4905,"src":"8642:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4881,"nodeType":"UserDefinedTypeName","pathNode":{"id":4880,"name":"AddressSet","nameLocations":["8642:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"8642:10:16"},"referencedDeclaration":4851,"src":"8642:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4884,"mutability":"mutable","name":"value","nameLocation":"8674:5:16","nodeType":"VariableDeclaration","scope":4905,"src":"8666:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4883,"name":"address","nodeType":"ElementaryTypeName","src":"8666:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8641:39:16"},"returnParameters":{"id":4888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4905,"src":"8699:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4886,"name":"bool","nodeType":"ElementaryTypeName","src":"8699:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8698:6:16"},"scope":5138,"src":"8626:156:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":4931,"nodeType":"Block","src":"8949:79:16","statements":[{"expression":{"arguments":[{"expression":{"id":4917,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4909,"src":"8976:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8980:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"8976:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":4925,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4911,"src":"9012:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9004:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4923,"name":"uint160","nodeType":"ElementaryTypeName","src":"9004:7:16","typeDescriptions":{}}},"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8996:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4921,"name":"uint256","nodeType":"ElementaryTypeName","src":"8996:7:16","typeDescriptions":{}}},"id":4927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8996:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8988:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":4919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8988:7:16","typeDescriptions":{}}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8988:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4916,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4681,"src":"8966:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"}},"id":4929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8966:55:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4915,"id":4930,"nodeType":"Return","src":"8959:62:16"}]},"documentation":{"id":4906,"nodeType":"StructuredDocumentation","src":"8788:70:16","text":" @dev Returns true if the value is in the set. O(1)."},"id":4932,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8872:8:16","nodeType":"FunctionDefinition","parameters":{"id":4912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4909,"mutability":"mutable","name":"set","nameLocation":"8900:3:16","nodeType":"VariableDeclaration","scope":4932,"src":"8881:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4908,"nodeType":"UserDefinedTypeName","pathNode":{"id":4907,"name":"AddressSet","nameLocations":["8881:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"8881:10:16"},"referencedDeclaration":4851,"src":"8881:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4911,"mutability":"mutable","name":"value","nameLocation":"8913:5:16","nodeType":"VariableDeclaration","scope":4932,"src":"8905:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4910,"name":"address","nodeType":"ElementaryTypeName","src":"8905:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8880:39:16"},"returnParameters":{"id":4915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4932,"src":"8943:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4913,"name":"bool","nodeType":"ElementaryTypeName","src":"8943:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8942:6:16"},"scope":5138,"src":"8863:165:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4946,"nodeType":"Block","src":"9181:43:16","statements":[{"expression":{"arguments":[{"expression":{"id":4942,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4936,"src":"9206:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9210:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"9206:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":4941,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4695,"src":"9198:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"}},"id":4944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9198:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4940,"id":4945,"nodeType":"Return","src":"9191:26:16"}]},"documentation":{"id":4933,"nodeType":"StructuredDocumentation","src":"9034:70:16","text":" @dev Returns the number of values in the set. O(1)."},"id":4947,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9118:6:16","nodeType":"FunctionDefinition","parameters":{"id":4937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4936,"mutability":"mutable","name":"set","nameLocation":"9144:3:16","nodeType":"VariableDeclaration","scope":4947,"src":"9125:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4935,"nodeType":"UserDefinedTypeName","pathNode":{"id":4934,"name":"AddressSet","nameLocations":["9125:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"9125:10:16"},"referencedDeclaration":4851,"src":"9125:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"}],"src":"9124:24:16"},"returnParameters":{"id":4940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4947,"src":"9172:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4938,"name":"uint256","nodeType":"ElementaryTypeName","src":"9172:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9171:9:16"},"scope":5138,"src":"9109:115:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4973,"nodeType":"Block","src":"9649:73:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":4965,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4951,"src":"9694:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"9694:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":4967,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4953,"src":"9706:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4964,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"9690:3:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9690:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9682:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4962,"name":"uint256","nodeType":"ElementaryTypeName","src":"9682:7:16","typeDescriptions":{}}},"id":4969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9682:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9674:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4960,"name":"uint160","nodeType":"ElementaryTypeName","src":"9674:7:16","typeDescriptions":{}}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9674:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":4959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9666:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4958,"name":"address","nodeType":"ElementaryTypeName","src":"9666:7:16","typeDescriptions":{}}},"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9666:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4957,"id":4972,"nodeType":"Return","src":"9659:56:16"}]},"documentation":{"id":4948,"nodeType":"StructuredDocumentation","src":"9230:331:16","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":4974,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9575:2:16","nodeType":"FunctionDefinition","parameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4951,"mutability":"mutable","name":"set","nameLocation":"9597:3:16","nodeType":"VariableDeclaration","scope":4974,"src":"9578:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4950,"nodeType":"UserDefinedTypeName","pathNode":{"id":4949,"name":"AddressSet","nameLocations":["9578:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"9578:10:16"},"referencedDeclaration":4851,"src":"9578:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"},{"constant":false,"id":4953,"mutability":"mutable","name":"index","nameLocation":"9610:5:16","nodeType":"VariableDeclaration","scope":4974,"src":"9602:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"9602:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9577:39:16"},"returnParameters":{"id":4957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4974,"src":"9640:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4955,"name":"address","nodeType":"ElementaryTypeName","src":"9640:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9639:9:16"},"scope":5138,"src":"9566:156:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5003,"nodeType":"Block","src":"10343:219:16","statements":[{"assignments":[4988],"declarations":[{"constant":false,"id":4988,"mutability":"mutable","name":"store","nameLocation":"10370:5:16","nodeType":"VariableDeclaration","scope":5003,"src":"10353:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":4986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10353:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4987,"nodeType":"ArrayTypeName","src":"10353:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":4993,"initialValue":{"arguments":[{"expression":{"id":4990,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4978,"src":"10386:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet storage pointer"}},"id":4991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10390:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":4850,"src":"10386:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":4989,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4726,"src":"10378:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (bytes32[] memory)"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10378:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10353:44:16"},{"assignments":[4998],"declarations":[{"constant":false,"id":4998,"mutability":"mutable","name":"result","nameLocation":"10424:6:16","nodeType":"VariableDeclaration","scope":5003,"src":"10407:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4996,"name":"address","nodeType":"ElementaryTypeName","src":"10407:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4997,"nodeType":"ArrayTypeName","src":"10407:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":4999,"nodeType":"VariableDeclarationStatement","src":"10407:23:16"},{"AST":{"nodeType":"YulBlock","src":"10493:39:16","statements":[{"nodeType":"YulAssignment","src":"10507:15:16","value":{"name":"store","nodeType":"YulIdentifier","src":"10517:5:16"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10507:6:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":4998,"isOffset":false,"isSlot":false,"src":"10507:6:16","valueSize":1},{"declaration":4988,"isOffset":false,"isSlot":false,"src":"10517:5:16","valueSize":1}],"id":5000,"nodeType":"InlineAssembly","src":"10484:48:16"},{"expression":{"id":5001,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"10549:6:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":4983,"id":5002,"nodeType":"Return","src":"10542:13:16"}]},"documentation":{"id":4975,"nodeType":"StructuredDocumentation","src":"9728:529:16","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":5004,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10271:6:16","nodeType":"FunctionDefinition","parameters":{"id":4979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4978,"mutability":"mutable","name":"set","nameLocation":"10297:3:16","nodeType":"VariableDeclaration","scope":5004,"src":"10278:22:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"},"typeName":{"id":4977,"nodeType":"UserDefinedTypeName","pathNode":{"id":4976,"name":"AddressSet","nameLocations":["10278:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":4851,"src":"10278:10:16"},"referencedDeclaration":4851,"src":"10278:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$4851_storage_ptr","typeString":"struct EnumerableSetUpgradeable.AddressSet"}},"visibility":"internal"}],"src":"10277:24:16"},"returnParameters":{"id":4983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5004,"src":"10325:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4980,"name":"address","nodeType":"ElementaryTypeName","src":"10325:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4981,"nodeType":"ArrayTypeName","src":"10325:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10324:18:16"},"scope":5138,"src":"10262:300:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSetUpgradeable.UintSet","id":5008,"members":[{"constant":false,"id":5007,"mutability":"mutable","name":"_inner","nameLocation":"10613:6:16","nodeType":"VariableDeclaration","scope":5008,"src":"10609:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"},"typeName":{"id":5006,"nodeType":"UserDefinedTypeName","pathNode":{"id":5005,"name":"Set","nameLocations":["10609:3:16"],"nodeType":"IdentifierPath","referencedDeclaration":4536,"src":"10609:3:16"},"referencedDeclaration":4536,"src":"10609:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage_ptr","typeString":"struct EnumerableSetUpgradeable.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10591:7:16","nodeType":"StructDefinition","scope":5138,"src":"10584:42:16","visibility":"public"},{"body":{"id":5028,"nodeType":"Block","src":"10869:56:16","statements":[{"expression":{"arguments":[{"expression":{"id":5020,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5012,"src":"10891:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10895:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"10891:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"id":5024,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"10911:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10903:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10903:7:16","typeDescriptions":{}}},"id":5025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5019,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4578,"src":"10886:4:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10886:32:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5018,"id":5027,"nodeType":"Return","src":"10879:39:16"}]},"documentation":{"id":5009,"nodeType":"StructuredDocumentation","src":"10632:159:16","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":5029,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10805:3:16","nodeType":"FunctionDefinition","parameters":{"id":5015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5012,"mutability":"mutable","name":"set","nameLocation":"10825:3:16","nodeType":"VariableDeclaration","scope":5029,"src":"10809:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5011,"nodeType":"UserDefinedTypeName","pathNode":{"id":5010,"name":"UintSet","nameLocations":["10809:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"10809:7:16"},"referencedDeclaration":5008,"src":"10809:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"value","nameLocation":"10838:5:16","nodeType":"VariableDeclaration","scope":5029,"src":"10830:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5013,"name":"uint256","nodeType":"ElementaryTypeName","src":"10830:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10808:36:16"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5029,"src":"10863:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5016,"name":"bool","nodeType":"ElementaryTypeName","src":"10863:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10862:6:16"},"scope":5138,"src":"10796:129:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5049,"nodeType":"Block","src":"11169:59:16","statements":[{"expression":{"arguments":[{"expression":{"id":5041,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"11194:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11198:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"11194:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"id":5045,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5035,"src":"11214:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11206:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11206:7:16","typeDescriptions":{}}},"id":5046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11206:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5040,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"11186:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) returns (bool)"}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11186:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5039,"id":5048,"nodeType":"Return","src":"11179:42:16"}]},"documentation":{"id":5030,"nodeType":"StructuredDocumentation","src":"10931:157:16","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":5050,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11102:6:16","nodeType":"FunctionDefinition","parameters":{"id":5036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5033,"mutability":"mutable","name":"set","nameLocation":"11125:3:16","nodeType":"VariableDeclaration","scope":5050,"src":"11109:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5032,"nodeType":"UserDefinedTypeName","pathNode":{"id":5031,"name":"UintSet","nameLocations":["11109:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"11109:7:16"},"referencedDeclaration":5008,"src":"11109:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"},{"constant":false,"id":5035,"mutability":"mutable","name":"value","nameLocation":"11138:5:16","nodeType":"VariableDeclaration","scope":5050,"src":"11130:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5034,"name":"uint256","nodeType":"ElementaryTypeName","src":"11130:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11108:36:16"},"returnParameters":{"id":5039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5050,"src":"11163:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5037,"name":"bool","nodeType":"ElementaryTypeName","src":"11163:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11162:6:16"},"scope":5138,"src":"11093:135:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5070,"nodeType":"Block","src":"11392:61:16","statements":[{"expression":{"arguments":[{"expression":{"id":5062,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"11419:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11423:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"11419:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"arguments":[{"id":5066,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"11439:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11431:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11431:7:16","typeDescriptions":{}}},"id":5067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11431:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5061,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4681,"src":"11409:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,bytes32) view returns (bool)"}},"id":5068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11409:37:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5060,"id":5069,"nodeType":"Return","src":"11402:44:16"}]},"documentation":{"id":5051,"nodeType":"StructuredDocumentation","src":"11234:70:16","text":" @dev Returns true if the value is in the set. O(1)."},"id":5071,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11318:8:16","nodeType":"FunctionDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5054,"mutability":"mutable","name":"set","nameLocation":"11343:3:16","nodeType":"VariableDeclaration","scope":5071,"src":"11327:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5053,"nodeType":"UserDefinedTypeName","pathNode":{"id":5052,"name":"UintSet","nameLocations":["11327:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"11327:7:16"},"referencedDeclaration":5008,"src":"11327:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"},{"constant":false,"id":5056,"mutability":"mutable","name":"value","nameLocation":"11356:5:16","nodeType":"VariableDeclaration","scope":5071,"src":"11348:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5055,"name":"uint256","nodeType":"ElementaryTypeName","src":"11348:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11326:36:16"},"returnParameters":{"id":5060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5071,"src":"11386:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5058,"name":"bool","nodeType":"ElementaryTypeName","src":"11386:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11385:6:16"},"scope":5138,"src":"11309:144:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5085,"nodeType":"Block","src":"11603:43:16","statements":[{"expression":{"arguments":[{"expression":{"id":5081,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5075,"src":"11628:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11632:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"11628:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":5080,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4695,"src":"11620:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (uint256)"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11620:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5079,"id":5084,"nodeType":"Return","src":"11613:26:16"}]},"documentation":{"id":5072,"nodeType":"StructuredDocumentation","src":"11459:70:16","text":" @dev Returns the number of values in the set. O(1)."},"id":5086,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11543:6:16","nodeType":"FunctionDefinition","parameters":{"id":5076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5075,"mutability":"mutable","name":"set","nameLocation":"11566:3:16","nodeType":"VariableDeclaration","scope":5086,"src":"11550:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5074,"nodeType":"UserDefinedTypeName","pathNode":{"id":5073,"name":"UintSet","nameLocations":["11550:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"11550:7:16"},"referencedDeclaration":5008,"src":"11550:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"}],"src":"11549:21:16"},"returnParameters":{"id":5079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5086,"src":"11594:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5077,"name":"uint256","nodeType":"ElementaryTypeName","src":"11594:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11593:9:16"},"scope":5138,"src":"11534:112:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5106,"nodeType":"Block","src":"12068:55:16","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":5100,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5090,"src":"12097:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12101:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"12097:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}},{"id":5102,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5092,"src":"12109:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5099,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4712,"src":"12093:3:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer,uint256) view returns (bytes32)"}},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12093:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12085:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5097,"name":"uint256","nodeType":"ElementaryTypeName","src":"12085:7:16","typeDescriptions":{}}},"id":5104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12085:31:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5096,"id":5105,"nodeType":"Return","src":"12078:38:16"}]},"documentation":{"id":5087,"nodeType":"StructuredDocumentation","src":"11652:331:16","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":5107,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11997:2:16","nodeType":"FunctionDefinition","parameters":{"id":5093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5090,"mutability":"mutable","name":"set","nameLocation":"12016:3:16","nodeType":"VariableDeclaration","scope":5107,"src":"12000:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5089,"nodeType":"UserDefinedTypeName","pathNode":{"id":5088,"name":"UintSet","nameLocations":["12000:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"12000:7:16"},"referencedDeclaration":5008,"src":"12000:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"},{"constant":false,"id":5092,"mutability":"mutable","name":"index","nameLocation":"12029:5:16","nodeType":"VariableDeclaration","scope":5107,"src":"12021:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5091,"name":"uint256","nodeType":"ElementaryTypeName","src":"12021:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11999:36:16"},"returnParameters":{"id":5096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5107,"src":"12059:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5094,"name":"uint256","nodeType":"ElementaryTypeName","src":"12059:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12058:9:16"},"scope":5138,"src":"11988:135:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":5136,"nodeType":"Block","src":"12741:219:16","statements":[{"assignments":[5121],"declarations":[{"constant":false,"id":5121,"mutability":"mutable","name":"store","nameLocation":"12768:5:16","nodeType":"VariableDeclaration","scope":5136,"src":"12751:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12751:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5120,"nodeType":"ArrayTypeName","src":"12751:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":5126,"initialValue":{"arguments":[{"expression":{"id":5123,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5111,"src":"12784:3:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet storage pointer"}},"id":5124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12788:6:16","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":5007,"src":"12784:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$4536_storage","typeString":"struct EnumerableSetUpgradeable.Set storage ref"}],"id":5122,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4726,"src":"12776:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$4536_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSetUpgradeable.Set storage pointer) view returns (bytes32[] memory)"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12776:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12751:44:16"},{"assignments":[5131],"declarations":[{"constant":false,"id":5131,"mutability":"mutable","name":"result","nameLocation":"12822:6:16","nodeType":"VariableDeclaration","scope":5136,"src":"12805:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5129,"name":"uint256","nodeType":"ElementaryTypeName","src":"12805:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5130,"nodeType":"ArrayTypeName","src":"12805:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":5132,"nodeType":"VariableDeclarationStatement","src":"12805:23:16"},{"AST":{"nodeType":"YulBlock","src":"12891:39:16","statements":[{"nodeType":"YulAssignment","src":"12905:15:16","value":{"name":"store","nodeType":"YulIdentifier","src":"12915:5:16"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12905:6:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":5131,"isOffset":false,"isSlot":false,"src":"12905:6:16","valueSize":1},{"declaration":5121,"isOffset":false,"isSlot":false,"src":"12915:5:16","valueSize":1}],"id":5133,"nodeType":"InlineAssembly","src":"12882:48:16"},{"expression":{"id":5134,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"12947:6:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":5116,"id":5135,"nodeType":"Return","src":"12940:13:16"}]},"documentation":{"id":5108,"nodeType":"StructuredDocumentation","src":"12129:529:16","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":5137,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12672:6:16","nodeType":"FunctionDefinition","parameters":{"id":5112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5111,"mutability":"mutable","name":"set","nameLocation":"12695:3:16","nodeType":"VariableDeclaration","scope":5137,"src":"12679:19:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"},"typeName":{"id":5110,"nodeType":"UserDefinedTypeName","pathNode":{"id":5109,"name":"UintSet","nameLocations":["12679:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":5008,"src":"12679:7:16"},"referencedDeclaration":5008,"src":"12679:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$5008_storage_ptr","typeString":"struct EnumerableSetUpgradeable.UintSet"}},"visibility":"internal"}],"src":"12678:21:16"},"returnParameters":{"id":5116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5137,"src":"12723:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5113,"name":"uint256","nodeType":"ElementaryTypeName","src":"12723:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5114,"nodeType":"ArrayTypeName","src":"12723:9:16","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12722:18:16"},"scope":5138,"src":"12663:297:16","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":5139,"src":"1321:11641:16","usedErrors":[]}],"src":"205:12758:16"},"id":16},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[5454],"Context":[14324],"ERC165":[15326],"IAccessControl":[5527],"IERC165":[15338],"Math":[16203],"Strings":[14573]},"id":5455,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5140,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:17"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":5141,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5455,"sourceUnit":5528,"src":"133:30:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5455,"sourceUnit":14325,"src":"164:30:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":5143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5455,"sourceUnit":14574,"src":"195:30:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":5144,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5455,"sourceUnit":15327,"src":"226:43:17","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5146,"name":"Context","nameLocations":["1841:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"1841:7:17"},"id":5147,"nodeType":"InheritanceSpecifier","src":"1841:7:17"},{"baseName":{"id":5148,"name":"IAccessControl","nameLocations":["1850:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":5527,"src":"1850:14:17"},"id":5149,"nodeType":"InheritanceSpecifier","src":"1850:14:17"},{"baseName":{"id":5150,"name":"ERC165","nameLocations":["1866:6:17"],"nodeType":"IdentifierPath","referencedDeclaration":15326,"src":"1866:6:17"},"id":5151,"nodeType":"InheritanceSpecifier","src":"1866:6:17"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":5145,"nodeType":"StructuredDocumentation","src":"271:1534:17","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":5454,"linearizedBaseContracts":[5454,15326,15338,5527,14324],"name":"AccessControl","nameLocation":"1824:13:17","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":5158,"members":[{"constant":false,"id":5155,"mutability":"mutable","name":"members","nameLocation":"1930:7:17","nodeType":"VariableDeclaration","scope":5158,"src":"1905:32:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":5154,"keyType":{"id":5152,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":5153,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":5157,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:17","nodeType":"VariableDeclaration","scope":5158,"src":"1947:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:17","nodeType":"StructDefinition","scope":5454,"src":"1879:92:17","visibility":"public"},{"constant":false,"id":5163,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:17","nodeType":"VariableDeclaration","scope":5454,"src":"1977:43:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":5162,"keyType":{"id":5159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":5161,"nodeType":"UserDefinedTypeName","pathNode":{"id":5160,"name":"RoleData","nameLocations":["1996:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5158,"src":"1996:8:17"},"referencedDeclaration":5158,"src":"1996:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":5166,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:17","nodeType":"VariableDeclaration","scope":5454,"src":"2027:49:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":5165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":5176,"nodeType":"Block","src":"2495:44:17","statements":[{"expression":{"arguments":[{"id":5172,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"2516:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5171,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[5231,5270],"referencedDeclaration":5231,"src":"2505:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2505:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5174,"nodeType":"ExpressionStatement","src":"2505:16:17"},{"id":5175,"nodeType":"PlaceholderStatement","src":"2531:1:17"}]},"documentation":{"id":5167,"nodeType":"StructuredDocumentation","src":"2083:375:17","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":5177,"name":"onlyRole","nameLocation":"2472:8:17","nodeType":"ModifierDefinition","parameters":{"id":5170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5169,"mutability":"mutable","name":"role","nameLocation":"2489:4:17","nodeType":"VariableDeclaration","scope":5177,"src":"2481:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:17"},"src":"2463:76:17","virtual":false,"visibility":"internal"},{"baseFunctions":[15325],"body":{"id":5198,"nodeType":"Block","src":"2697:111:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5186,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5180,"src":"2714:11:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5188,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"2734:14:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$5527_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$5527_$","typeString":"type(contract IAccessControl)"}],"id":5187,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2729:4:17","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:20:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$5527","typeString":"type(contract IAccessControl)"}},"id":5190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2750:11:17","memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5194,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5180,"src":"2789:11:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5192,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2765:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$5454_$","typeString":"type(contract super AccessControl)"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:17:17","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":15325,"src":"2765:23:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5185,"id":5197,"nodeType":"Return","src":"2707:94:17"}]},"documentation":{"id":5178,"nodeType":"StructuredDocumentation","src":"2545:56:17","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5199,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:17","nodeType":"FunctionDefinition","overrides":{"id":5182,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:17"},"parameters":{"id":5181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5180,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:17","nodeType":"VariableDeclaration","scope":5199,"src":"2633:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5179,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:17"},"returnParameters":{"id":5185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5199,"src":"2691:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5183,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:17"},"scope":5454,"src":"2606:202:17","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5494],"body":{"id":5217,"nodeType":"Block","src":"2987:53:17","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":5210,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"3004:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5212,"indexExpression":{"id":5211,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5202,"src":"3011:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3017:7:17","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5155,"src":"3004:20:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5215,"indexExpression":{"id":5214,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5204,"src":"3025:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5209,"id":5216,"nodeType":"Return","src":"2997:36:17"}]},"documentation":{"id":5200,"nodeType":"StructuredDocumentation","src":"2814:76:17","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":5218,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:17","nodeType":"FunctionDefinition","overrides":{"id":5206,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:17"},"parameters":{"id":5205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5202,"mutability":"mutable","name":"role","nameLocation":"2920:4:17","nodeType":"VariableDeclaration","scope":5218,"src":"2912:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5204,"mutability":"mutable","name":"account","nameLocation":"2934:7:17","nodeType":"VariableDeclaration","scope":5218,"src":"2926:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5203,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:17"},"returnParameters":{"id":5209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5218,"src":"2981:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5207,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:17"},"scope":5454,"src":"2895:145:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5230,"nodeType":"Block","src":"3390:47:17","statements":[{"expression":{"arguments":[{"id":5225,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"3411:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5226,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"3417:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3417:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5224,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[5231,5270],"referencedDeclaration":5270,"src":"3400:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3400:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5229,"nodeType":"ExpressionStatement","src":"3400:30:17"}]},"documentation":{"id":5219,"nodeType":"StructuredDocumentation","src":"3046:283:17","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":5231,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:17","nodeType":"FunctionDefinition","parameters":{"id":5222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5221,"mutability":"mutable","name":"role","nameLocation":"3362:4:17","nodeType":"VariableDeclaration","scope":5231,"src":"3354:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:17"},"returnParameters":{"id":5223,"nodeType":"ParameterList","parameters":[],"src":"3390:0:17"},"scope":5454,"src":"3334:103:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5269,"nodeType":"Block","src":"3791:406:17","statements":[{"condition":{"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:17","subExpression":{"arguments":[{"id":5240,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"3814:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5241,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5236,"src":"3820:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5239,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"3806:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3806:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5268,"nodeType":"IfStatement","src":"3801:390:17","trueBody":{"id":5267,"nodeType":"Block","src":"3830:361:17","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":5249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"id":5252,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5236,"src":"4009:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5250,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14573,"src":"3989:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$14573_$","typeString":"type(library Strings)"}},"id":5251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3997:11:17","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":14572,"src":"3989:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":5254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4043:19:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":5259,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"4116:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4108:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5257,"name":"uint256","nodeType":"ElementaryTypeName","src":"4108:7:17","typeDescriptions":{}}},"id":5260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4108:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":5261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4123:2:17","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":5255,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14573,"src":"4088:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$14573_$","typeString":"type(library Strings)"}},"id":5256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:11:17","memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":14552,"src":"4088:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4088:38:17","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":5247,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3896:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3900:12:17","memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:252:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5245,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:17","typeDescriptions":{}}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:298:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5244,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3844:6:17","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3844:336:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5266,"nodeType":"ExpressionStatement","src":"3844:336:17"}]}}]},"documentation":{"id":5232,"nodeType":"StructuredDocumentation","src":"3443:270:17","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":5270,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:17","nodeType":"FunctionDefinition","parameters":{"id":5237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5234,"mutability":"mutable","name":"role","nameLocation":"3746:4:17","nodeType":"VariableDeclaration","scope":5270,"src":"3738:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5236,"mutability":"mutable","name":"account","nameLocation":"3760:7:17","nodeType":"VariableDeclaration","scope":5270,"src":"3752:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5235,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:17"},"returnParameters":{"id":5238,"nodeType":"ParameterList","parameters":[],"src":"3791:0:17"},"scope":5454,"src":"3718:479:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[5502],"body":{"id":5284,"nodeType":"Block","src":"4461:46:17","statements":[{"expression":{"expression":{"baseExpression":{"id":5279,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"4478:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5281,"indexExpression":{"id":5280,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"4485:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4478:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4491:9:17","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":5157,"src":"4478:22:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5278,"id":5283,"nodeType":"Return","src":"4471:29:17"}]},"documentation":{"id":5271,"nodeType":"StructuredDocumentation","src":"4203:170:17","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":5285,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4387:12:17","nodeType":"FunctionDefinition","overrides":{"id":5275,"nodeType":"OverrideSpecifier","overrides":[],"src":"4434:8:17"},"parameters":{"id":5274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5273,"mutability":"mutable","name":"role","nameLocation":"4408:4:17","nodeType":"VariableDeclaration","scope":5285,"src":"4400:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4400:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4399:14:17"},"returnParameters":{"id":5278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5285,"src":"4452:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4451:9:17"},"scope":5454,"src":"4378:129:17","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5510],"body":{"id":5304,"nodeType":"Block","src":"4906:42:17","statements":[{"expression":{"arguments":[{"id":5300,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5288,"src":"4927:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5301,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5290,"src":"4933:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5299,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5422,"src":"4916:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4916:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5303,"nodeType":"ExpressionStatement","src":"4916:25:17"}]},"documentation":{"id":5286,"nodeType":"StructuredDocumentation","src":"4513:285:17","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":5305,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":5295,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5288,"src":"4899:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5294,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5285,"src":"4886:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4886:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5297,"kind":"modifierInvocation","modifierName":{"id":5293,"name":"onlyRole","nameLocations":["4877:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5177,"src":"4877:8:17"},"nodeType":"ModifierInvocation","src":"4877:28:17"}],"name":"grantRole","nameLocation":"4812:9:17","nodeType":"FunctionDefinition","overrides":{"id":5292,"nodeType":"OverrideSpecifier","overrides":[],"src":"4868:8:17"},"parameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5288,"mutability":"mutable","name":"role","nameLocation":"4830:4:17","nodeType":"VariableDeclaration","scope":5305,"src":"4822:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4822:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5290,"mutability":"mutable","name":"account","nameLocation":"4844:7:17","nodeType":"VariableDeclaration","scope":5305,"src":"4836:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4821:31:17"},"returnParameters":{"id":5298,"nodeType":"ParameterList","parameters":[],"src":"4906:0:17"},"scope":5454,"src":"4803:145:17","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5518],"body":{"id":5324,"nodeType":"Block","src":"5332:43:17","statements":[{"expression":{"arguments":[{"id":5320,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5308,"src":"5354:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5321,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5310,"src":"5360:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5319,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"5342:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5323,"nodeType":"ExpressionStatement","src":"5342:26:17"}]},"documentation":{"id":5306,"nodeType":"StructuredDocumentation","src":"4954:269:17","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":5325,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":5315,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5308,"src":"5325:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5314,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5285,"src":"5312:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5317,"kind":"modifierInvocation","modifierName":{"id":5313,"name":"onlyRole","nameLocations":["5303:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5177,"src":"5303:8:17"},"nodeType":"ModifierInvocation","src":"5303:28:17"}],"name":"revokeRole","nameLocation":"5237:10:17","nodeType":"FunctionDefinition","overrides":{"id":5312,"nodeType":"OverrideSpecifier","overrides":[],"src":"5294:8:17"},"parameters":{"id":5311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5308,"mutability":"mutable","name":"role","nameLocation":"5256:4:17","nodeType":"VariableDeclaration","scope":5325,"src":"5248:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5248:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5310,"mutability":"mutable","name":"account","nameLocation":"5270:7:17","nodeType":"VariableDeclaration","scope":5325,"src":"5262:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5309,"name":"address","nodeType":"ElementaryTypeName","src":"5262:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5247:31:17"},"returnParameters":{"id":5318,"nodeType":"ParameterList","parameters":[],"src":"5332:0:17"},"scope":5454,"src":"5228:147:17","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[5526],"body":{"id":5347,"nodeType":"Block","src":"5989:137:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5335,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5330,"src":"6007:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5336,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"6018:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6007:23:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":5339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6032:49:17","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":5334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5999:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5999:83:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5341,"nodeType":"ExpressionStatement","src":"5999:83:17"},{"expression":{"arguments":[{"id":5343,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5328,"src":"6105:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5344,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5330,"src":"6111:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5342,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"6093:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6093:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5346,"nodeType":"ExpressionStatement","src":"6093:26:17"}]},"documentation":{"id":5326,"nodeType":"StructuredDocumentation","src":"5381:526:17","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":5348,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5921:12:17","nodeType":"FunctionDefinition","overrides":{"id":5332,"nodeType":"OverrideSpecifier","overrides":[],"src":"5980:8:17"},"parameters":{"id":5331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5328,"mutability":"mutable","name":"role","nameLocation":"5942:4:17","nodeType":"VariableDeclaration","scope":5348,"src":"5934:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5330,"mutability":"mutable","name":"account","nameLocation":"5956:7:17","nodeType":"VariableDeclaration","scope":5348,"src":"5948:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5329,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5933:31:17"},"returnParameters":{"id":5333,"nodeType":"ParameterList","parameters":[],"src":"5989:0:17"},"scope":5454,"src":"5912:214:17","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5361,"nodeType":"Block","src":"6879:42:17","statements":[{"expression":{"arguments":[{"id":5357,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5351,"src":"6900:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5358,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5353,"src":"6906:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5356,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5422,"src":"6889:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6889:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5360,"nodeType":"ExpressionStatement","src":"6889:25:17"}]},"documentation":{"id":5349,"nodeType":"StructuredDocumentation","src":"6132:674:17","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":5362,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6820:10:17","nodeType":"FunctionDefinition","parameters":{"id":5354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5351,"mutability":"mutable","name":"role","nameLocation":"6839:4:17","nodeType":"VariableDeclaration","scope":5362,"src":"6831:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6831:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5353,"mutability":"mutable","name":"account","nameLocation":"6853:7:17","nodeType":"VariableDeclaration","scope":5362,"src":"6845:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5352,"name":"address","nodeType":"ElementaryTypeName","src":"6845:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6830:31:17"},"returnParameters":{"id":5355,"nodeType":"ParameterList","parameters":[],"src":"6879:0:17"},"scope":5454,"src":"6811:110:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5389,"nodeType":"Block","src":"7119:174:17","statements":[{"assignments":[5371],"declarations":[{"constant":false,"id":5371,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7137:17:17","nodeType":"VariableDeclaration","scope":5389,"src":"7129:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7129:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5375,"initialValue":{"arguments":[{"id":5373,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"7170:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5372,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5285,"src":"7157:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7157:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7129:46:17"},{"expression":{"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5376,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"7185:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5378,"indexExpression":{"id":5377,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"7192:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7185:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7198:9:17","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":5157,"src":"7185:22:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5380,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"7210:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7185:34:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5382,"nodeType":"ExpressionStatement","src":"7185:34:17"},{"eventCall":{"arguments":[{"id":5384,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"7251:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5385,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5371,"src":"7257:17:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5386,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5367,"src":"7276:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5383,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5466,"src":"7234:16:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":5387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7234:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5388,"nodeType":"EmitStatement","src":"7229:57:17"}]},"documentation":{"id":5363,"nodeType":"StructuredDocumentation","src":"6927:114:17","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":5390,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7055:13:17","nodeType":"FunctionDefinition","parameters":{"id":5368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"role","nameLocation":"7077:4:17","nodeType":"VariableDeclaration","scope":5390,"src":"7069:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5367,"mutability":"mutable","name":"adminRole","nameLocation":"7091:9:17","nodeType":"VariableDeclaration","scope":5390,"src":"7083:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7083:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:33:17"},"returnParameters":{"id":5369,"nodeType":"ParameterList","parameters":[],"src":"7119:0:17"},"scope":5454,"src":"7046:247:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5421,"nodeType":"Block","src":"7529:165:17","statements":[{"condition":{"id":5402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7543:23:17","subExpression":{"arguments":[{"id":5399,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"7552:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5400,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"7558:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5398,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"7544:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5420,"nodeType":"IfStatement","src":"7539:149:17","trueBody":{"id":5419,"nodeType":"Block","src":"7568:120:17","statements":[{"expression":{"id":5410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5403,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"7582:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5405,"indexExpression":{"id":5404,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"7589:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7582:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7595:7:17","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5155,"src":"7582:20:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5408,"indexExpression":{"id":5407,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"7603:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7582:29:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7614:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7582:36:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5411,"nodeType":"ExpressionStatement","src":"7582:36:17"},{"eventCall":{"arguments":[{"id":5413,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"7649:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5414,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"7655:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5415,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"7664:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7664:12:17","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":5412,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5475,"src":"7637:11:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7637:40:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5418,"nodeType":"EmitStatement","src":"7632:45:17"}]}}]},"documentation":{"id":5391,"nodeType":"StructuredDocumentation","src":"7299:157:17","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":5422,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7470:10:17","nodeType":"FunctionDefinition","parameters":{"id":5396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5393,"mutability":"mutable","name":"role","nameLocation":"7489:4:17","nodeType":"VariableDeclaration","scope":5422,"src":"7481:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7481:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5395,"mutability":"mutable","name":"account","nameLocation":"7503:7:17","nodeType":"VariableDeclaration","scope":5422,"src":"7495:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5394,"name":"address","nodeType":"ElementaryTypeName","src":"7495:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7480:31:17"},"returnParameters":{"id":5397,"nodeType":"ParameterList","parameters":[],"src":"7529:0:17"},"scope":5454,"src":"7461:233:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":5452,"nodeType":"Block","src":"7934:165:17","statements":[{"condition":{"arguments":[{"id":5431,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5425,"src":"7956:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5432,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"7962:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5430,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"7948:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7948:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5451,"nodeType":"IfStatement","src":"7944:149:17","trueBody":{"id":5450,"nodeType":"Block","src":"7972:121:17","statements":[{"expression":{"id":5441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":5434,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5163,"src":"7986:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$5158_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":5436,"indexExpression":{"id":5435,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5425,"src":"7993:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7986:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$5158_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":5437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7999:7:17","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":5155,"src":"7986:20:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":5439,"indexExpression":{"id":5438,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"8007:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7986:29:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8018:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7986:37:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5442,"nodeType":"ExpressionStatement","src":"7986:37:17"},{"eventCall":{"arguments":[{"id":5444,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5425,"src":"8054:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5445,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"8060:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5446,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"8069:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:12:17","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":5443,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5484,"src":"8042:11:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8042:40:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5449,"nodeType":"EmitStatement","src":"8037:45:17"}]}}]},"documentation":{"id":5423,"nodeType":"StructuredDocumentation","src":"7700:160:17","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":5453,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7874:11:17","nodeType":"FunctionDefinition","parameters":{"id":5428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5425,"mutability":"mutable","name":"role","nameLocation":"7894:4:17","nodeType":"VariableDeclaration","scope":5453,"src":"7886:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7886:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5427,"mutability":"mutable","name":"account","nameLocation":"7908:7:17","nodeType":"VariableDeclaration","scope":5453,"src":"7900:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5426,"name":"address","nodeType":"ElementaryTypeName","src":"7900:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7885:31:17"},"returnParameters":{"id":5429,"nodeType":"ParameterList","parameters":[],"src":"7934:0:17"},"scope":5454,"src":"7865:234:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5455,"src":"1806:6295:17","usedErrors":[]}],"src":"108:7994:17"},"id":17},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[5527]},"id":5528,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5456,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:18"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":5457,"nodeType":"StructuredDocumentation","src":"119:89:18","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":5527,"linearizedBaseContracts":[5527],"name":"IAccessControl","nameLocation":"219:14:18","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":5458,"nodeType":"StructuredDocumentation","src":"240:292:18","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":5466,"name":"RoleAdminChanged","nameLocation":"543:16:18","nodeType":"EventDefinition","parameters":{"id":5465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5460,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:18","nodeType":"VariableDeclaration","scope":5466,"src":"560:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5462,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:18","nodeType":"VariableDeclaration","scope":5466,"src":"582:33:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5464,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:18","nodeType":"VariableDeclaration","scope":5466,"src":"617:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:18"},"src":"537:110:18"},{"anonymous":false,"documentation":{"id":5467,"nodeType":"StructuredDocumentation","src":"653:212:18","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":5475,"name":"RoleGranted","nameLocation":"876:11:18","nodeType":"EventDefinition","parameters":{"id":5474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5469,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:18","nodeType":"VariableDeclaration","scope":5475,"src":"888:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5471,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:18","nodeType":"VariableDeclaration","scope":5475,"src":"910:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5470,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5473,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:18","nodeType":"VariableDeclaration","scope":5475,"src":"935:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5472,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:18"},"src":"870:89:18"},{"anonymous":false,"documentation":{"id":5476,"nodeType":"StructuredDocumentation","src":"965:275:18","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":5484,"name":"RoleRevoked","nameLocation":"1251:11:18","nodeType":"EventDefinition","parameters":{"id":5483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5478,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:18","nodeType":"VariableDeclaration","scope":5484,"src":"1263:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5480,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:18","nodeType":"VariableDeclaration","scope":5484,"src":"1285:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5479,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5482,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:18","nodeType":"VariableDeclaration","scope":5484,"src":"1310:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5481,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:18"},"src":"1245:89:18"},{"documentation":{"id":5485,"nodeType":"StructuredDocumentation","src":"1340:76:18","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":5494,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:18","nodeType":"FunctionDefinition","parameters":{"id":5490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5487,"mutability":"mutable","name":"role","nameLocation":"1446:4:18","nodeType":"VariableDeclaration","scope":5494,"src":"1438:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5489,"mutability":"mutable","name":"account","nameLocation":"1460:7:18","nodeType":"VariableDeclaration","scope":5494,"src":"1452:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5488,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:18"},"returnParameters":{"id":5493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5494,"src":"1492:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5491,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:18"},"scope":5527,"src":"1421:77:18","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5495,"nodeType":"StructuredDocumentation","src":"1504:184:18","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":5502,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:18","nodeType":"FunctionDefinition","parameters":{"id":5498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5497,"mutability":"mutable","name":"role","nameLocation":"1723:4:18","nodeType":"VariableDeclaration","scope":5502,"src":"1715:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:18"},"returnParameters":{"id":5501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5502,"src":"1752:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:18"},"scope":5527,"src":"1693:68:18","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":5503,"nodeType":"StructuredDocumentation","src":"1767:239:18","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":5510,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:18","nodeType":"FunctionDefinition","parameters":{"id":5508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5505,"mutability":"mutable","name":"role","nameLocation":"2038:4:18","nodeType":"VariableDeclaration","scope":5510,"src":"2030:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5507,"mutability":"mutable","name":"account","nameLocation":"2052:7:18","nodeType":"VariableDeclaration","scope":5510,"src":"2044:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5506,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:18"},"returnParameters":{"id":5509,"nodeType":"ParameterList","parameters":[],"src":"2069:0:18"},"scope":5527,"src":"2011:59:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5511,"nodeType":"StructuredDocumentation","src":"2076:223:18","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":5518,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:18","nodeType":"FunctionDefinition","parameters":{"id":5516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5513,"mutability":"mutable","name":"role","nameLocation":"2332:4:18","nodeType":"VariableDeclaration","scope":5518,"src":"2324:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5515,"mutability":"mutable","name":"account","nameLocation":"2346:7:18","nodeType":"VariableDeclaration","scope":5518,"src":"2338:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5514,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:18"},"returnParameters":{"id":5517,"nodeType":"ParameterList","parameters":[],"src":"2363:0:18"},"scope":5527,"src":"2304:60:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":5519,"nodeType":"StructuredDocumentation","src":"2370:480:18","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":5526,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:18","nodeType":"FunctionDefinition","parameters":{"id":5524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5521,"mutability":"mutable","name":"role","nameLocation":"2885:4:18","nodeType":"VariableDeclaration","scope":5526,"src":"2877:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5523,"mutability":"mutable","name":"account","nameLocation":"2899:7:18","nodeType":"VariableDeclaration","scope":5526,"src":"2891:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5522,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:18"},"returnParameters":{"id":5525,"nodeType":"ParameterList","parameters":[],"src":"2916:0:18"},"scope":5527,"src":"2855:62:18","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5528,"src":"209:2710:18","usedErrors":[]}],"src":"94:2826:18"},"id":18},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[14324],"Ownable":[5640]},"id":5641,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5529,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:19"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5530,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5641,"sourceUnit":14325,"src":"127:30:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5532,"name":"Context","nameLocations":["683:7:19"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"683:7:19"},"id":5533,"nodeType":"InheritanceSpecifier","src":"683:7:19"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":5531,"nodeType":"StructuredDocumentation","src":"159:494:19","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":5640,"linearizedBaseContracts":[5640,14324],"name":"Ownable","nameLocation":"672:7:19","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5535,"mutability":"mutable","name":"_owner","nameLocation":"713:6:19","nodeType":"VariableDeclaration","scope":5640,"src":"697:22:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5534,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":5541,"name":"OwnershipTransferred","nameLocation":"732:20:19","nodeType":"EventDefinition","parameters":{"id":5540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5537,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:19","nodeType":"VariableDeclaration","scope":5541,"src":"753:29:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5536,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5539,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:19","nodeType":"VariableDeclaration","scope":5541,"src":"784:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5538,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:19"},"src":"726:84:19"},{"body":{"id":5550,"nodeType":"Block","src":"926:49:19","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5546,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"955:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5545,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"936:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5549,"nodeType":"ExpressionStatement","src":"936:32:19"}]},"documentation":{"id":5542,"nodeType":"StructuredDocumentation","src":"816:91:19","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":5551,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5543,"nodeType":"ParameterList","parameters":[],"src":"923:2:19"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[],"src":"926:0:19"},"scope":5640,"src":"912:63:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5558,"nodeType":"Block","src":"1084:41:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5554,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5582,"src":"1094:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":5555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5556,"nodeType":"ExpressionStatement","src":"1094:13:19"},{"id":5557,"nodeType":"PlaceholderStatement","src":"1117:1:19"}]},"documentation":{"id":5552,"nodeType":"StructuredDocumentation","src":"981:77:19","text":" @dev Throws if called by any account other than the owner."},"id":5559,"name":"onlyOwner","nameLocation":"1072:9:19","nodeType":"ModifierDefinition","parameters":{"id":5553,"nodeType":"ParameterList","parameters":[],"src":"1081:2:19"},"src":"1063:62:19","virtual":false,"visibility":"internal"},{"body":{"id":5567,"nodeType":"Block","src":"1256:30:19","statements":[{"expression":{"id":5565,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"1273:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5564,"id":5566,"nodeType":"Return","src":"1266:13:19"}]},"documentation":{"id":5560,"nodeType":"StructuredDocumentation","src":"1131:65:19","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":5568,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:19","nodeType":"FunctionDefinition","parameters":{"id":5561,"nodeType":"ParameterList","parameters":[],"src":"1215:2:19"},"returnParameters":{"id":5564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5568,"src":"1247:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5562,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:19"},"scope":5640,"src":"1201:85:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":5581,"nodeType":"Block","src":"1404:85:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5573,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"1422:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5575,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"1433:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:19","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":5572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5580,"nodeType":"ExpressionStatement","src":"1414:68:19"}]},"documentation":{"id":5569,"nodeType":"StructuredDocumentation","src":"1292:62:19","text":" @dev Throws if the sender is not the owner."},"id":5582,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:19","nodeType":"FunctionDefinition","parameters":{"id":5570,"nodeType":"ParameterList","parameters":[],"src":"1379:2:19"},"returnParameters":{"id":5571,"nodeType":"ParameterList","parameters":[],"src":"1404:0:19"},"scope":5640,"src":"1359:130:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":5595,"nodeType":"Block","src":"1885:47:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":5591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922: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":5590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5589,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:19","typeDescriptions":{}}},"id":5592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5588,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"1895:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:30:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5594,"nodeType":"ExpressionStatement","src":"1895:30:19"}]},"documentation":{"id":5583,"nodeType":"StructuredDocumentation","src":"1495:331:19","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":5596,"implemented":true,"kind":"function","modifiers":[{"id":5586,"kind":"modifierInvocation","modifierName":{"id":5585,"name":"onlyOwner","nameLocations":["1875:9:19"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"1875:9:19"},"nodeType":"ModifierInvocation","src":"1875:9:19"}],"name":"renounceOwnership","nameLocation":"1840:17:19","nodeType":"FunctionDefinition","parameters":{"id":5584,"nodeType":"ParameterList","parameters":[],"src":"1857:2:19"},"returnParameters":{"id":5587,"nodeType":"ParameterList","parameters":[],"src":"1885:0:19"},"scope":5640,"src":"1831:101:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5618,"nodeType":"Block","src":"2151:128:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5605,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"2169:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189: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":5607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5606,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:19","typeDescriptions":{}}},"id":5609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2181:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":5611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:19","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":5604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2161:73:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5613,"nodeType":"ExpressionStatement","src":"2161:73:19"},{"expression":{"arguments":[{"id":5615,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"2263:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5614,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"2244:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:28:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5617,"nodeType":"ExpressionStatement","src":"2244:28:19"}]},"documentation":{"id":5597,"nodeType":"StructuredDocumentation","src":"1938:138:19","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":5619,"implemented":true,"kind":"function","modifiers":[{"id":5602,"kind":"modifierInvocation","modifierName":{"id":5601,"name":"onlyOwner","nameLocations":["2141:9:19"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"2141:9:19"},"nodeType":"ModifierInvocation","src":"2141:9:19"}],"name":"transferOwnership","nameLocation":"2090:17:19","nodeType":"FunctionDefinition","parameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:19","nodeType":"VariableDeclaration","scope":5619,"src":"2108:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5598,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:19"},"returnParameters":{"id":5603,"nodeType":"ParameterList","parameters":[],"src":"2151:0:19"},"scope":5640,"src":"2081:198:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":5638,"nodeType":"Block","src":"2496:124:19","statements":[{"assignments":[5626],"declarations":[{"constant":false,"id":5626,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:19","nodeType":"VariableDeclaration","scope":5638,"src":"2506:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5625,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5628,"initialValue":{"id":5627,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"2525:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:19"},{"expression":{"id":5631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5629,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5535,"src":"2541:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5630,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5622,"src":"2550:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5632,"nodeType":"ExpressionStatement","src":"2541:17:19"},{"eventCall":{"arguments":[{"id":5634,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"2594:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5635,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5622,"src":"2604:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5633,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5541,"src":"2573:20:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5637,"nodeType":"EmitStatement","src":"2568:45:19"}]},"documentation":{"id":5620,"nodeType":"StructuredDocumentation","src":"2285:143:19","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":5639,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:19","nodeType":"FunctionDefinition","parameters":{"id":5623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5622,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:19","nodeType":"VariableDeclaration","scope":5639,"src":"2461:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5621,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:19"},"returnParameters":{"id":5624,"nodeType":"ParameterList","parameters":[],"src":"2496:0:19"},"scope":5640,"src":"2433:187:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":5641,"src":"654:1968:19","usedErrors":[]}],"src":"102:2521:19"},"id":19},"@openzeppelin/contracts/governance/Governor.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"Timers":[14787]},"id":6949,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5642,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:20"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../token/ERC721/IERC721Receiver.sol","id":5643,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":12065,"src":"132:45:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../token/ERC1155/IERC1155Receiver.sol","id":5644,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":9346,"src":"178:47:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../utils/cryptography/ECDSA.sol","id":5645,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":15149,"src":"226:41:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"../utils/cryptography/EIP712.sol","id":5646,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":15303,"src":"268:42:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":5647,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":15327,"src":"311:43:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../utils/math/SafeCast.sol","id":5648,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":17745,"src":"355:36:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol","file":"../utils/structs/DoubleEndedQueue.sol","id":5649,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":18086,"src":"392:47:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../utils/Address.sol","id":5650,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":12932,"src":"440:30:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5651,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":14325,"src":"471:30:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Timers.sol","file":"../utils/Timers.sol","id":5652,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":14788,"src":"502:29:20","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","file":"./IGovernor.sol","id":5653,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6949,"sourceUnit":7246,"src":"532:25:20","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":5655,"name":"Context","nameLocations":["1028:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"1028:7:20"},"id":5656,"nodeType":"InheritanceSpecifier","src":"1028:7:20"},{"baseName":{"id":5657,"name":"ERC165","nameLocations":["1037:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":15326,"src":"1037:6:20"},"id":5658,"nodeType":"InheritanceSpecifier","src":"1037:6:20"},{"baseName":{"id":5659,"name":"EIP712","nameLocations":["1045:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":15302,"src":"1045:6:20"},"id":5660,"nodeType":"InheritanceSpecifier","src":"1045:6:20"},{"baseName":{"id":5661,"name":"IGovernor","nameLocations":["1053:9:20"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"1053:9:20"},"id":5662,"nodeType":"InheritanceSpecifier","src":"1053:9:20"},{"baseName":{"id":5663,"name":"IERC721Receiver","nameLocations":["1064:15:20"],"nodeType":"IdentifierPath","referencedDeclaration":12064,"src":"1064:15:20"},"id":5664,"nodeType":"InheritanceSpecifier","src":"1064:15:20"},{"baseName":{"id":5665,"name":"IERC1155Receiver","nameLocations":["1081:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":9345,"src":"1081:16:20"},"id":5666,"nodeType":"InheritanceSpecifier","src":"1081:16:20"}],"canonicalName":"Governor","contractDependencies":[],"contractKind":"contract","documentation":{"id":5654,"nodeType":"StructuredDocumentation","src":"559:438:20","text":" @dev Core of the governance system, designed to be extended though various modules.\n This contract is abstract and requires several function to be implemented in various modules:\n - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote}\n - A voting module must implement {_getVotes}\n - Additionanly, the {votingPeriod} must also be implemented\n _Available since v4.3._"},"fullyImplemented":false,"id":6948,"linearizedBaseContracts":[6948,9345,12064,7245,15302,15326,15338,14324],"name":"Governor","nameLocation":"1016:8:20","nodeType":"ContractDefinition","nodes":[{"global":false,"id":5670,"libraryName":{"id":5667,"name":"DoubleEndedQueue","nameLocations":["1110:16:20"],"nodeType":"IdentifierPath","referencedDeclaration":18085,"src":"1110:16:20"},"nodeType":"UsingForDirective","src":"1104:57:20","typeName":{"id":5669,"nodeType":"UserDefinedTypeName","pathNode":{"id":5668,"name":"DoubleEndedQueue.Bytes32Deque","nameLocations":["1131:16:20","1148:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"1131:29:20"},"referencedDeclaration":17763,"src":"1131:29:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}}},{"global":false,"id":5673,"libraryName":{"id":5671,"name":"SafeCast","nameLocations":["1172:8:20"],"nodeType":"IdentifierPath","referencedDeclaration":17744,"src":"1172:8:20"},"nodeType":"UsingForDirective","src":"1166:27:20","typeName":{"id":5672,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"global":false,"id":5677,"libraryName":{"id":5674,"name":"Timers","nameLocations":["1204:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":14787,"src":"1204:6:20"},"nodeType":"UsingForDirective","src":"1198:36:20","typeName":{"id":5676,"nodeType":"UserDefinedTypeName","pathNode":{"id":5675,"name":"Timers.BlockNumber","nameLocations":["1215:6:20","1222:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1215:18:20"},"referencedDeclaration":14684,"src":"1215:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}}},{"constant":true,"functionSelector":"deaaa7cc","id":5682,"mutability":"constant","name":"BALLOT_TYPEHASH","nameLocation":"1264:15:20","nodeType":"VariableDeclaration","scope":6948,"src":"1240:95:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1240:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429","id":5680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1292:42:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""},"value":"Ballot(uint256 proposalId,uint8 support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""}],"id":5679,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1282:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1282:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"2fe3e261","id":5687,"mutability":"constant","name":"EXTENDED_BALLOT_TYPEHASH","nameLocation":"1365:24:20","nodeType":"VariableDeclaration","scope":6948,"src":"1341:147:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1341:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"457874656e64656442616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f72742c737472696e6720726561736f6e2c627974657320706172616d7329","id":5685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1410:77:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af88","typeString":"literal_string \"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\""},"value":"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af88","typeString":"literal_string \"ExtendedBallot(uint256 proposalId,uint8 support,string reason,bytes params)\""}],"id":5684,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1400:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1400:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"canonicalName":"Governor.ProposalCore","id":5698,"members":[{"constant":false,"id":5690,"mutability":"mutable","name":"voteStart","nameLocation":"1544:9:20","nodeType":"VariableDeclaration","scope":5698,"src":"1525:28:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":5689,"nodeType":"UserDefinedTypeName","pathNode":{"id":5688,"name":"Timers.BlockNumber","nameLocations":["1525:6:20","1532:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1525:18:20"},"referencedDeclaration":14684,"src":"1525:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":5693,"mutability":"mutable","name":"voteEnd","nameLocation":"1582:7:20","nodeType":"VariableDeclaration","scope":5698,"src":"1563:26:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":5692,"nodeType":"UserDefinedTypeName","pathNode":{"id":5691,"name":"Timers.BlockNumber","nameLocations":["1563:6:20","1570:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1563:18:20"},"referencedDeclaration":14684,"src":"1563:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":5695,"mutability":"mutable","name":"executed","nameLocation":"1604:8:20","nodeType":"VariableDeclaration","scope":5698,"src":"1599:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5694,"name":"bool","nodeType":"ElementaryTypeName","src":"1599:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5697,"mutability":"mutable","name":"canceled","nameLocation":"1627:8:20","nodeType":"VariableDeclaration","scope":5698,"src":"1622:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5696,"name":"bool","nodeType":"ElementaryTypeName","src":"1622:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ProposalCore","nameLocation":"1502:12:20","nodeType":"StructDefinition","scope":6948,"src":"1495:147:20","visibility":"public"},{"constant":false,"id":5700,"mutability":"mutable","name":"_name","nameLocation":"1663:5:20","nodeType":"VariableDeclaration","scope":6948,"src":"1648:20:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5699,"name":"string","nodeType":"ElementaryTypeName","src":"1648:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":5705,"mutability":"mutable","name":"_proposals","nameLocation":"1716:10:20","nodeType":"VariableDeclaration","scope":6948,"src":"1675:51:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore)"},"typeName":{"id":5704,"keyType":{"id":5701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1675:32:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore)"},"valueType":{"id":5703,"nodeType":"UserDefinedTypeName","pathNode":{"id":5702,"name":"ProposalCore","nameLocations":["1694:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":5698,"src":"1694:12:20"},"referencedDeclaration":5698,"src":"1694:12:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"}}},"visibility":"private"},{"constant":false,"id":5708,"mutability":"mutable","name":"_governanceCall","nameLocation":"2203:15:20","nodeType":"VariableDeclaration","scope":6948,"src":"2165:53:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":5707,"nodeType":"UserDefinedTypeName","pathNode":{"id":5706,"name":"DoubleEndedQueue.Bytes32Deque","nameLocations":["2165:16:20","2182:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"2165:29:20"},"referencedDeclaration":17763,"src":"2165:29:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"private"},{"body":{"id":5744,"nodeType":"Block","src":"2989:378:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5712,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"3007:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5714,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"3023:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3007:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a206f6e6c79476f7665726e616e6365","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3036:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f","typeString":"literal_string \"Governor: onlyGovernance\""},"value":"Governor: onlyGovernance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f","typeString":"literal_string \"Governor: onlyGovernance\""}],"id":5711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2999:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5719,"nodeType":"ExpressionStatement","src":"2999:64:20"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5720,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"3077:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3077:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":5724,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3100:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":5723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3092:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5722,"name":"address","nodeType":"ElementaryTypeName","src":"3092:7:20","typeDescriptions":{}}},"id":5725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3092:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3077:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5742,"nodeType":"IfStatement","src":"3073:277:20","trueBody":{"id":5741,"nodeType":"Block","src":"3107:243:20","statements":[{"assignments":[5728],"declarations":[{"constant":false,"id":5728,"mutability":"mutable","name":"msgDataHash","nameLocation":"3129:11:20","nodeType":"VariableDeclaration","scope":5741,"src":"3121:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3121:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5733,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5730,"name":"_msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14323,"src":"3153:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_calldata_ptr_$","typeString":"function () view returns (bytes calldata)"}},"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3153:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5729,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3143:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3143:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3121:43:20"},{"body":{"id":5739,"nodeType":"Block","src":"3338:2:20","statements":[]},"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5734,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5708,"src":"3295:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":5735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3311:8:20","memberName":"popFront","nodeType":"MemberAccess","referencedDeclaration":17921,"src":"3295:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_Bytes32Deque_$17763_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) returns (bytes32)"}},"id":5736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5737,"name":"msgDataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5728,"src":"3325:11:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3295:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5740,"nodeType":"WhileStatement","src":"3288:52:20"}]}},{"id":5743,"nodeType":"PlaceholderStatement","src":"3359:1:20"}]},"documentation":{"id":5709,"nodeType":"StructuredDocumentation","src":"2225:733:20","text":" @dev Restricts a function so it can only be executed through governance proposals. For example, governance\n parameter setters in {GovernorSettings} are protected using this modifier.\n The governance executing address may be different from the Governor's own address, for example it could be a\n timelock. This can be customized by modules by overriding {_executor}. The executor is only able to invoke these\n functions during the execution of the governor's {execute} function, and not under any other circumstances. Thus,\n for example, additional timelock proposers are not able to change governance parameters without going through the\n governance protocol (since v4.6)."},"id":5745,"name":"onlyGovernance","nameLocation":"2972:14:20","nodeType":"ModifierDefinition","parameters":{"id":5710,"nodeType":"ParameterList","parameters":[],"src":"2986:2:20"},"src":"2963:404:20","virtual":false,"visibility":"internal"},{"body":{"id":5760,"nodeType":"Block","src":"3499:30:20","statements":[{"expression":{"id":5758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5756,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"3509:5:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5757,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5748,"src":"3517:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3509:13:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5759,"nodeType":"ExpressionStatement","src":"3509:13:20"}]},"documentation":{"id":5746,"nodeType":"StructuredDocumentation","src":"3373:63:20","text":" @dev Sets the value for {name} and {version}"},"id":5761,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5751,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5748,"src":"3481:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5752,"name":"version","nodeType":"Identifier","overloadedDeclarations":[5847],"referencedDeclaration":5847,"src":"3488:7:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:9:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":5754,"kind":"baseConstructorSpecifier","modifierName":{"id":5750,"name":"EIP712","nameLocations":["3474:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":15302,"src":"3474:6:20"},"nodeType":"ModifierInvocation","src":"3474:24:20"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5748,"mutability":"mutable","name":"name_","nameLocation":"3467:5:20","nodeType":"VariableDeclaration","scope":5761,"src":"3453:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5747,"name":"string","nodeType":"ElementaryTypeName","src":"3453:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3452:21:20"},"returnParameters":{"id":5755,"nodeType":"ParameterList","parameters":[],"src":"3499:0:20"},"scope":6948,"src":"3441:88:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":5775,"nodeType":"Block","src":"3708:54:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5766,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"3726:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3726:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":5770,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3749:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":5769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3741:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5768,"name":"address","nodeType":"ElementaryTypeName","src":"3741:7:20","typeDescriptions":{}}},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3741:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3726:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5765,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3718:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3718:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5774,"nodeType":"ExpressionStatement","src":"3718:37:20"}]},"documentation":{"id":5762,"nodeType":"StructuredDocumentation","src":"3535:133:20","text":" @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract)"},"id":5776,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":5763,"nodeType":"ParameterList","parameters":[],"src":"3680:2:20"},"returnParameters":{"id":5764,"nodeType":"ParameterList","parameters":[],"src":"3708:0:20"},"scope":6948,"src":"3673:89:20","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[15325,15337],"body":{"id":5826,"nodeType":"Block","src":"3937:630:20","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5787,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"4153:11:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":5789,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7245,"src":"4186:9:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernor_$7245_$","typeString":"type(contract IGovernor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernor_$7245_$","typeString":"type(contract IGovernor)"}],"id":5788,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4181:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4181:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernor_$7245","typeString":"type(contract IGovernor)"}},"id":5791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4197:11:20","memberName":"interfaceId","nodeType":"MemberAccess","src":"4181:27:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":5792,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4227:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4232:27:20","memberName":"castVoteWithReasonAndParams","nodeType":"MemberAccess","referencedDeclaration":6632,"src":"4227:32:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint8,string memory,bytes memory) external returns (uint256)"}},"id":5794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4260:8:20","memberName":"selector","nodeType":"MemberAccess","src":"4227:41:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4181:87:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":5796,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4287:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4292:32:20","memberName":"castVoteWithReasonAndParamsBySig","nodeType":"MemberAccess","referencedDeclaration":6734,"src":"4287:37:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,uint8,string memory,bytes memory,uint8,bytes32,bytes32) external returns (uint256)"}},"id":5798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4325:8:20","memberName":"selector","nodeType":"MemberAccess","src":"4287:46:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4181:152:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"expression":{"id":5800,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4352:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":5801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4357:18:20","memberName":"getVotesWithParams","nodeType":"MemberAccess","referencedDeclaration":6553,"src":"4352:23:20","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view external returns (uint256)"}},"id":5802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4376:8:20","memberName":"selector","nodeType":"MemberAccess","src":"4352:32:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4181:203:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":5804,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4180:205:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4153:232:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5806,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"4401:11:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5808,"name":"IGovernor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7245,"src":"4421:9:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernor_$7245_$","typeString":"type(contract IGovernor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernor_$7245_$","typeString":"type(contract IGovernor)"}],"id":5807,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4416:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernor_$7245","typeString":"type(contract IGovernor)"}},"id":5810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4432:11:20","memberName":"interfaceId","nodeType":"MemberAccess","src":"4416:27:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4401:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4153:290:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5813,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"4459:11:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":5815,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"4479:16:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$9345_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$9345_$","typeString":"type(contract IERC1155Receiver)"}],"id":5814,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4474:4:20","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4474:22:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$9345","typeString":"type(contract IERC1155Receiver)"}},"id":5817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4497:11:20","memberName":"interfaceId","nodeType":"MemberAccess","src":"4474:34:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4459:49:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4153:355:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":5822,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"4548:11:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":5820,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4524:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Governor_$6948_$","typeString":"type(contract super Governor)"}},"id":5821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4530:17:20","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":15325,"src":"4524:23:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":5823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4524:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4153:407:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5786,"id":5825,"nodeType":"Return","src":"4134:426:20"}]},"documentation":{"id":5777,"nodeType":"StructuredDocumentation","src":"3768:56:20","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":5827,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3838:17:20","nodeType":"FunctionDefinition","overrides":{"id":5783,"nodeType":"OverrideSpecifier","overrides":[{"id":5781,"name":"IERC165","nameLocations":["3905:7:20"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"3905:7:20"},{"id":5782,"name":"ERC165","nameLocations":["3914:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":15326,"src":"3914:6:20"}],"src":"3896:25:20"},"parameters":{"id":5780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5779,"mutability":"mutable","name":"interfaceId","nameLocation":"3863:11:20","nodeType":"VariableDeclaration","scope":5827,"src":"3856:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5778,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3856:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3855:20:20"},"returnParameters":{"id":5786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5827,"src":"3931:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5784,"name":"bool","nodeType":"ElementaryTypeName","src":"3931:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3930:6:20"},"scope":6948,"src":"3829:738:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7032],"body":{"id":5836,"nodeType":"Block","src":"4692:29:20","statements":[{"expression":{"id":5834,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5700,"src":"4709:5:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5833,"id":5835,"nodeType":"Return","src":"4702:12:20"}]},"documentation":{"id":5828,"nodeType":"StructuredDocumentation","src":"4573:45:20","text":" @dev See {IGovernor-name}."},"functionSelector":"06fdde03","id":5837,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"4632:4:20","nodeType":"FunctionDefinition","overrides":{"id":5830,"nodeType":"OverrideSpecifier","overrides":[],"src":"4659:8:20"},"parameters":{"id":5829,"nodeType":"ParameterList","parameters":[],"src":"4636:2:20"},"returnParameters":{"id":5833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5837,"src":"4677:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5831,"name":"string","nodeType":"ElementaryTypeName","src":"4677:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4676:15:20"},"scope":6948,"src":"4623:98:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7038],"body":{"id":5846,"nodeType":"Block","src":"4852:27:20","statements":[{"expression":{"hexValue":"31","id":5844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4869:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"functionReturnParameters":5843,"id":5845,"nodeType":"Return","src":"4862:10:20"}]},"documentation":{"id":5838,"nodeType":"StructuredDocumentation","src":"4727:48:20","text":" @dev See {IGovernor-version}."},"functionSelector":"54fd4d50","id":5847,"implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"4789:7:20","nodeType":"FunctionDefinition","overrides":{"id":5840,"nodeType":"OverrideSpecifier","overrides":[],"src":"4819:8:20"},"parameters":{"id":5839,"nodeType":"ParameterList","parameters":[],"src":"4796:2:20"},"returnParameters":{"id":5843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5847,"src":"4837:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5841,"name":"string","nodeType":"ElementaryTypeName","src":"4837:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4836:15:20"},"scope":6948,"src":"4780:99:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7061],"body":{"id":5878,"nodeType":"Block","src":"6033:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":5870,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"6079:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":5871,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5854,"src":"6088:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":5872,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"6096:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":5873,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5859,"src":"6107:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5868,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6068:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6072:6:20","memberName":"encode","nodeType":"MemberAccess","src":"6068:10:20","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6068:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5867,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6058:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6058:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6050:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5865,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:20","typeDescriptions":{}}},"id":5876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6050:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5864,"id":5877,"nodeType":"Return","src":"6043:82:20"}]},"documentation":{"id":5848,"nodeType":"StructuredDocumentation","src":"4885:934:20","text":" @dev See {IGovernor-hashProposal}.\n The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array\n and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id\n can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in\n advance, before the proposal is submitted.\n Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the\n same proposal (with same operation and same description) will have the same id if submitted on multiple governors\n across multiple networks. This also means that in order to execute the same operation twice (on the same\n governor) the proposer will have to change the description in order to avoid proposal id conflicts."},"functionSelector":"c59057e4","id":5879,"implemented":true,"kind":"function","modifiers":[],"name":"hashProposal","nameLocation":"5833:12:20","nodeType":"FunctionDefinition","overrides":{"id":5861,"nodeType":"OverrideSpecifier","overrides":[],"src":"6006:8:20"},"parameters":{"id":5860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5851,"mutability":"mutable","name":"targets","nameLocation":"5872:7:20","nodeType":"VariableDeclaration","scope":5879,"src":"5855:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5849,"name":"address","nodeType":"ElementaryTypeName","src":"5855:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5850,"nodeType":"ArrayTypeName","src":"5855:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"values","nameLocation":"5906:6:20","nodeType":"VariableDeclaration","scope":5879,"src":"5889:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5852,"name":"uint256","nodeType":"ElementaryTypeName","src":"5889:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5853,"nodeType":"ArrayTypeName","src":"5889:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"calldatas","nameLocation":"5937:9:20","nodeType":"VariableDeclaration","scope":5879,"src":"5922:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5855,"name":"bytes","nodeType":"ElementaryTypeName","src":"5922:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5856,"nodeType":"ArrayTypeName","src":"5922:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":5859,"mutability":"mutable","name":"descriptionHash","nameLocation":"5964:15:20","nodeType":"VariableDeclaration","scope":5879,"src":"5956:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5956:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5845:140:20"},"returnParameters":{"id":5864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5879,"src":"6024:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6024:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6023:9:20"},"scope":6948,"src":"5824:308:20","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[7070],"body":{"id":5965,"nodeType":"Block","src":"6277:826:20","statements":[{"assignments":[5891],"declarations":[{"constant":false,"id":5891,"mutability":"mutable","name":"proposal","nameLocation":"6308:8:20","nodeType":"VariableDeclaration","scope":5965,"src":"6287:29:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":5890,"nodeType":"UserDefinedTypeName","pathNode":{"id":5889,"name":"ProposalCore","nameLocations":["6287:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":5698,"src":"6287:12:20"},"referencedDeclaration":5698,"src":"6287:12:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":5895,"initialValue":{"baseExpression":{"id":5892,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"6319:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":5894,"indexExpression":{"id":5893,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6330:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6319:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6287:54:20"},{"condition":{"expression":{"id":5896,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"6356:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":5897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6365:8:20","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5695,"src":"6356:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5902,"nodeType":"IfStatement","src":"6352:77:20","trueBody":{"id":5901,"nodeType":"Block","src":"6375:54:20","statements":[{"expression":{"expression":{"id":5898,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"6396:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6410:8:20","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":6962,"src":"6396:22:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5900,"nodeType":"Return","src":"6389:29:20"}]}},{"condition":{"expression":{"id":5903,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5891,"src":"6443:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":5904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:8:20","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5697,"src":"6443:17:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5909,"nodeType":"IfStatement","src":"6439:77:20","trueBody":{"id":5908,"nodeType":"Block","src":"6462:54:20","statements":[{"expression":{"expression":{"id":5905,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"6483:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6497:8:20","memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":6957,"src":"6483:22:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5907,"nodeType":"Return","src":"6476:29:20"}]}},{"assignments":[5911],"declarations":[{"constant":false,"id":5911,"mutability":"mutable","name":"snapshot","nameLocation":"6534:8:20","nodeType":"VariableDeclaration","scope":5965,"src":"6526:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5910,"name":"uint256","nodeType":"ElementaryTypeName","src":"6526:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5915,"initialValue":{"arguments":[{"id":5913,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6562:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5912,"name":"proposalSnapshot","nodeType":"Identifier","overloadedDeclarations":[5983],"referencedDeclaration":5983,"src":"6545:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6545:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6526:47:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5916,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5911,"src":"6588:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6600:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6588:13:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5924,"nodeType":"IfStatement","src":"6584:83:20","trueBody":{"id":5923,"nodeType":"Block","src":"6603:64:20","statements":[{"expression":{"arguments":[{"hexValue":"476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964","id":5920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6624:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892","typeString":"literal_string \"Governor: unknown proposal id\""},"value":"Governor: unknown proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892","typeString":"literal_string \"Governor: unknown proposal id\""}],"id":5919,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6617:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":5921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6617:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5922,"nodeType":"ExpressionStatement","src":"6617:39:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5925,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5911,"src":"6681:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":5926,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6693:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6699:6:20","memberName":"number","nodeType":"MemberAccess","src":"6693:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6681:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5933,"nodeType":"IfStatement","src":"6677:83:20","trueBody":{"id":5932,"nodeType":"Block","src":"6707:53:20","statements":[{"expression":{"expression":{"id":5929,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"6728:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6742:7:20","memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":6955,"src":"6728:21:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5931,"nodeType":"Return","src":"6721:28:20"}]}},{"assignments":[5935],"declarations":[{"constant":false,"id":5935,"mutability":"mutable","name":"deadline","nameLocation":"6778:8:20","nodeType":"VariableDeclaration","scope":5965,"src":"6770:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5934,"name":"uint256","nodeType":"ElementaryTypeName","src":"6770:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5939,"initialValue":{"arguments":[{"id":5937,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6806:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5936,"name":"proposalDeadline","nodeType":"Identifier","overloadedDeclarations":[6000],"referencedDeclaration":6000,"src":"6789:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6789:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6770:47:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5940,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"6832:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":5941,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6844:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6850:6:20","memberName":"number","nodeType":"MemberAccess","src":"6844:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6832:24:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5948,"nodeType":"IfStatement","src":"6828:82:20","trueBody":{"id":5947,"nodeType":"Block","src":"6858:52:20","statements":[{"expression":{"expression":{"id":5944,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"6879:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6893:6:20","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":6956,"src":"6879:20:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5946,"nodeType":"Return","src":"6872:27:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5950,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6939:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5949,"name":"_quorumReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"6924:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6924:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":5953,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5882,"src":"6969:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5952,"name":"_voteSucceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"6954:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":5954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6954:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6924:56:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5963,"nodeType":"Block","src":"7043:54:20","statements":[{"expression":{"expression":{"id":5960,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"7064:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7078:8:20","memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":6958,"src":"7064:22:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5962,"nodeType":"Return","src":"7057:29:20"}]},"id":5964,"nodeType":"IfStatement","src":"6920:177:20","trueBody":{"id":5959,"nodeType":"Block","src":"6982:55:20","statements":[{"expression":{"expression":{"id":5956,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"7003:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":5957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7017:9:20","memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":6959,"src":"7003:23:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":5888,"id":5958,"nodeType":"Return","src":"6996:30:20"}]}}]},"documentation":{"id":5880,"nodeType":"StructuredDocumentation","src":"6138:46:20","text":" @dev See {IGovernor-state}."},"functionSelector":"3e4f49e6","id":5966,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"6198:5:20","nodeType":"FunctionDefinition","overrides":{"id":5884,"nodeType":"OverrideSpecifier","overrides":[],"src":"6244:8:20"},"parameters":{"id":5883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5882,"mutability":"mutable","name":"proposalId","nameLocation":"6212:10:20","nodeType":"VariableDeclaration","scope":5966,"src":"6204:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5881,"name":"uint256","nodeType":"ElementaryTypeName","src":"6204:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6203:20:20"},"returnParameters":{"id":5888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5966,"src":"6262:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":5886,"nodeType":"UserDefinedTypeName","pathNode":{"id":5885,"name":"ProposalState","nameLocations":["6262:13:20"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"6262:13:20"},"referencedDeclaration":6963,"src":"6262:13:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"6261:15:20"},"scope":6948,"src":"6189:914:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7078],"body":{"id":5982,"nodeType":"Block","src":"7264:70:20","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":5975,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"7281:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":5977,"indexExpression":{"id":5976,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5969,"src":"7292:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7281:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":5978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7304:9:20","memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":5690,"src":"7281:32:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":5979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7314:11:20","memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":14696,"src":"7281:44:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$14684_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$14684_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":5980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7281:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5974,"id":5981,"nodeType":"Return","src":"7274:53:20"}]},"documentation":{"id":5967,"nodeType":"StructuredDocumentation","src":"7109:57:20","text":" @dev See {IGovernor-proposalSnapshot}."},"functionSelector":"2d63f693","id":5983,"implemented":true,"kind":"function","modifiers":[],"name":"proposalSnapshot","nameLocation":"7180:16:20","nodeType":"FunctionDefinition","overrides":{"id":5971,"nodeType":"OverrideSpecifier","overrides":[],"src":"7237:8:20"},"parameters":{"id":5970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5969,"mutability":"mutable","name":"proposalId","nameLocation":"7205:10:20","nodeType":"VariableDeclaration","scope":5983,"src":"7197:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5968,"name":"uint256","nodeType":"ElementaryTypeName","src":"7197:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7196:20:20"},"returnParameters":{"id":5974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5983,"src":"7255:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"7255:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7254:9:20"},"scope":6948,"src":"7171:163:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7086],"body":{"id":5999,"nodeType":"Block","src":"7495:68:20","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":5992,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"7512:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":5994,"indexExpression":{"id":5993,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5986,"src":"7523:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7512:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":5995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7535:7:20","memberName":"voteEnd","nodeType":"MemberAccess","referencedDeclaration":5693,"src":"7512:30:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":5996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7543:11:20","memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":14696,"src":"7512:42:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$14684_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$14684_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":5997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7512:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5991,"id":5998,"nodeType":"Return","src":"7505:51:20"}]},"documentation":{"id":5984,"nodeType":"StructuredDocumentation","src":"7340:57:20","text":" @dev See {IGovernor-proposalDeadline}."},"functionSelector":"c01f9e37","id":6000,"implemented":true,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"7411:16:20","nodeType":"FunctionDefinition","overrides":{"id":5988,"nodeType":"OverrideSpecifier","overrides":[],"src":"7468:8:20"},"parameters":{"id":5987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5986,"mutability":"mutable","name":"proposalId","nameLocation":"7436:10:20","nodeType":"VariableDeclaration","scope":6000,"src":"7428:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5985,"name":"uint256","nodeType":"ElementaryTypeName","src":"7428:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7427:20:20"},"returnParameters":{"id":5991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6000,"src":"7486:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5989,"name":"uint256","nodeType":"ElementaryTypeName","src":"7486:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7485:9:20"},"scope":6948,"src":"7402:161:20","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6008,"nodeType":"Block","src":"7780:25:20","statements":[{"expression":{"hexValue":"30","id":6006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7797:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":6005,"id":6007,"nodeType":"Return","src":"7790:8:20"}]},"documentation":{"id":6001,"nodeType":"StructuredDocumentation","src":"7569:139:20","text":" @dev Part of the Governor Bravo's interface: _\"The number of votes required in order for a voter to become a proposer\"_."},"functionSelector":"b58131b0","id":6009,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"7722:17:20","nodeType":"FunctionDefinition","parameters":{"id":6002,"nodeType":"ParameterList","parameters":[],"src":"7739:2:20"},"returnParameters":{"id":6005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6009,"src":"7771:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6003,"name":"uint256","nodeType":"ElementaryTypeName","src":"7771:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7770:9:20"},"scope":6948,"src":"7713:92:20","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":6010,"nodeType":"StructuredDocumentation","src":"7811:80:20","text":" @dev Amount of votes already cast passes the threshold limit."},"id":6017,"implemented":false,"kind":"function","modifiers":[],"name":"_quorumReached","nameLocation":"7905:14:20","nodeType":"FunctionDefinition","parameters":{"id":6013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6012,"mutability":"mutable","name":"proposalId","nameLocation":"7928:10:20","nodeType":"VariableDeclaration","scope":6017,"src":"7920:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6011,"name":"uint256","nodeType":"ElementaryTypeName","src":"7920:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7919:20:20"},"returnParameters":{"id":6016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6017,"src":"7971:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6014,"name":"bool","nodeType":"ElementaryTypeName","src":"7971:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7970:6:20"},"scope":6948,"src":"7896:81:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":6018,"nodeType":"StructuredDocumentation","src":"7983:58:20","text":" @dev Is the proposal successful or not."},"id":6025,"implemented":false,"kind":"function","modifiers":[],"name":"_voteSucceeded","nameLocation":"8055:14:20","nodeType":"FunctionDefinition","parameters":{"id":6021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6020,"mutability":"mutable","name":"proposalId","nameLocation":"8078:10:20","nodeType":"VariableDeclaration","scope":6025,"src":"8070:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6019,"name":"uint256","nodeType":"ElementaryTypeName","src":"8070:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8069:20:20"},"returnParameters":{"id":6024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6025,"src":"8121:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6022,"name":"bool","nodeType":"ElementaryTypeName","src":"8121:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8120:6:20"},"scope":6948,"src":"8046:81:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":6026,"nodeType":"StructuredDocumentation","src":"8133:124:20","text":" @dev Get the voting weight of `account` at a specific `blockNumber`, for a vote as described by `params`."},"id":6037,"implemented":false,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"8271:9:20","nodeType":"FunctionDefinition","parameters":{"id":6033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6028,"mutability":"mutable","name":"account","nameLocation":"8298:7:20","nodeType":"VariableDeclaration","scope":6037,"src":"8290:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6027,"name":"address","nodeType":"ElementaryTypeName","src":"8290:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6030,"mutability":"mutable","name":"blockNumber","nameLocation":"8323:11:20","nodeType":"VariableDeclaration","scope":6037,"src":"8315:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6029,"name":"uint256","nodeType":"ElementaryTypeName","src":"8315:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6032,"mutability":"mutable","name":"params","nameLocation":"8357:6:20","nodeType":"VariableDeclaration","scope":6037,"src":"8344:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6031,"name":"bytes","nodeType":"ElementaryTypeName","src":"8344:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8280:89:20"},"returnParameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6037,"src":"8401:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"8401:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8400:9:20"},"scope":6948,"src":"8262:148:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"documentation":{"id":6038,"nodeType":"StructuredDocumentation","src":"8416:239:20","text":" @dev Register a vote for `proposalId` by `account` with a given `support`, voting `weight` and voting `params`.\n Note: Support is generic and can represent various things depending on the voting system used."},"id":6051,"implemented":false,"kind":"function","modifiers":[],"name":"_countVote","nameLocation":"8669:10:20","nodeType":"FunctionDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6040,"mutability":"mutable","name":"proposalId","nameLocation":"8697:10:20","nodeType":"VariableDeclaration","scope":6051,"src":"8689:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6039,"name":"uint256","nodeType":"ElementaryTypeName","src":"8689:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6042,"mutability":"mutable","name":"account","nameLocation":"8725:7:20","nodeType":"VariableDeclaration","scope":6051,"src":"8717:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6041,"name":"address","nodeType":"ElementaryTypeName","src":"8717:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6044,"mutability":"mutable","name":"support","nameLocation":"8748:7:20","nodeType":"VariableDeclaration","scope":6051,"src":"8742:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6043,"name":"uint8","nodeType":"ElementaryTypeName","src":"8742:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6046,"mutability":"mutable","name":"weight","nameLocation":"8773:6:20","nodeType":"VariableDeclaration","scope":6051,"src":"8765:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6045,"name":"uint256","nodeType":"ElementaryTypeName","src":"8765:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6048,"mutability":"mutable","name":"params","nameLocation":"8802:6:20","nodeType":"VariableDeclaration","scope":6051,"src":"8789:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6047,"name":"bytes","nodeType":"ElementaryTypeName","src":"8789:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8679:135:20"},"returnParameters":{"id":6050,"nodeType":"ParameterList","parameters":[],"src":"8831:0:20"},"scope":6948,"src":"8660:172:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6059,"nodeType":"Block","src":"9205:26:20","statements":[{"expression":{"hexValue":"","id":6057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9222:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":6056,"id":6058,"nodeType":"Return","src":"9215:9:20"}]},"documentation":{"id":6052,"nodeType":"StructuredDocumentation","src":"8838:291:20","text":" @dev Default additional encoded parameters used by castVote methods that don't include them\n Note: Should be overridden by specific implementations to use an appropriate value, the\n meaning of the additional params, in the context of that implementation"},"id":6060,"implemented":true,"kind":"function","modifiers":[],"name":"_defaultParams","nameLocation":"9143:14:20","nodeType":"FunctionDefinition","parameters":{"id":6053,"nodeType":"ParameterList","parameters":[],"src":"9157:2:20"},"returnParameters":{"id":6056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6060,"src":"9191:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6054,"name":"bytes","nodeType":"ElementaryTypeName","src":"9191:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9190:14:20"},"scope":6948,"src":"9134:97:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7155],"body":{"id":6205,"nodeType":"Block","src":"9491:1207:20","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":6080,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"9531:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9531:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6082,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9545:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9551:6:20","memberName":"number","nodeType":"MemberAccess","src":"9545:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":6084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9560:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9545:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6079,"name":"getVotes","nodeType":"Identifier","overloadedDeclarations":[6533],"referencedDeclaration":6533,"src":"9522:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9522:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6087,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"9566:17:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9566:19:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9522:63:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":6090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9599:51:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86","typeString":"literal_string \"Governor: proposer votes below proposal threshold\""},"value":"Governor: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86","typeString":"literal_string \"Governor: proposer votes below proposal threshold\""}],"id":6078,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9501:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9501:159:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6092,"nodeType":"ExpressionStatement","src":"9501:159:20"},{"assignments":[6094],"declarations":[{"constant":false,"id":6094,"mutability":"mutable","name":"proposalId","nameLocation":"9679:10:20","nodeType":"VariableDeclaration","scope":6205,"src":"9671:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6093,"name":"uint256","nodeType":"ElementaryTypeName","src":"9671:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6106,"initialValue":{"arguments":[{"id":6096,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"9705:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6097,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"9714:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6098,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6070,"src":"9722:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"arguments":[{"arguments":[{"id":6102,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6072,"src":"9749:11:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9743:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6100,"name":"bytes","nodeType":"ElementaryTypeName","src":"9743:5:20","typeDescriptions":{}}},"id":6103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6099,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9733:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9733:29:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6095,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[5879],"referencedDeclaration":5879,"src":"9692:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9692:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9671:92:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6108,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"9782:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9790:6:20","memberName":"length","nodeType":"MemberAccess","src":"9782:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6110,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"9800:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9807:6:20","memberName":"length","nodeType":"MemberAccess","src":"9800:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9782:31:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677468","id":6113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9815:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""},"value":"Governor: invalid proposal length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""}],"id":6107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9774:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9774:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6115,"nodeType":"ExpressionStatement","src":"9774:77:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6117,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"9869:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9877:6:20","memberName":"length","nodeType":"MemberAccess","src":"9869:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6119,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6070,"src":"9887:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9897:6:20","memberName":"length","nodeType":"MemberAccess","src":"9887:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9869:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677468","id":6122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9905:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""},"value":"Governor: invalid proposal length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d","typeString":"literal_string \"Governor: invalid proposal length\""}],"id":6116,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9861:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6124,"nodeType":"ExpressionStatement","src":"9861:80:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6126,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"9959:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9967:6:20","memberName":"length","nodeType":"MemberAccess","src":"9959:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9976:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9959:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20656d7074792070726f706f73616c","id":6130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9979:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513","typeString":"literal_string \"Governor: empty proposal\""},"value":"Governor: empty proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513","typeString":"literal_string \"Governor: empty proposal\""}],"id":6125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9951:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9951:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6132,"nodeType":"ExpressionStatement","src":"9951:55:20"},{"assignments":[6135],"declarations":[{"constant":false,"id":6135,"mutability":"mutable","name":"proposal","nameLocation":"10038:8:20","nodeType":"VariableDeclaration","scope":6205,"src":"10017:29:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":6134,"nodeType":"UserDefinedTypeName","pathNode":{"id":6133,"name":"ProposalCore","nameLocations":["10017:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":5698,"src":"10017:12:20"},"referencedDeclaration":5698,"src":"10017:12:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":6139,"initialValue":{"baseExpression":{"id":6136,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"10049:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":6138,"indexExpression":{"id":6137,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"10060:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10049:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10017:54:20"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6141,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"10089:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":6142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10098:9:20","memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":5690,"src":"10089:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":6143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10108:7:20","memberName":"isUnset","nodeType":"MemberAccess","referencedDeclaration":14738,"src":"10089:26:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$14684_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_BlockNumber_$14684_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (bool)"}},"id":6144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10089:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c20616c726561647920657869737473","id":6145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10119:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40","typeString":"literal_string \"Governor: proposal already exists\""},"value":"Governor: proposal already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40","typeString":"literal_string \"Governor: proposal already exists\""}],"id":6140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10081:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10081:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6147,"nodeType":"ExpressionStatement","src":"10081:74:20"},{"assignments":[6149],"declarations":[{"constant":false,"id":6149,"mutability":"mutable","name":"snapshot","nameLocation":"10173:8:20","nodeType":"VariableDeclaration","scope":6205,"src":"10166:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6148,"name":"uint64","nodeType":"ElementaryTypeName","src":"10166:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":6159,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6150,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10184:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10190:6:20","memberName":"number","nodeType":"MemberAccess","src":"10184:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10197:8:20","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":16806,"src":"10184:21:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":6153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10184:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6154,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"10210:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10224:8:20","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":16806,"src":"10210:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":6157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10210:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10184:50:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10166:68:20"},{"assignments":[6161],"declarations":[{"constant":false,"id":6161,"mutability":"mutable","name":"deadline","nameLocation":"10251:8:20","nodeType":"VariableDeclaration","scope":6205,"src":"10244:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6160,"name":"uint64","nodeType":"ElementaryTypeName","src":"10244:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":6168,"initialValue":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6162,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"10262:8:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6163,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"10273:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":6164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10273:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10288:8:20","memberName":"toUint64","nodeType":"MemberAccess","referencedDeclaration":16806,"src":"10273:23:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint64)"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10273:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"10262:36:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"10244:54:20"},{"expression":{"arguments":[{"id":6174,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"10340:8:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":6169,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"10309:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":6172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10318:9:20","memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":5690,"src":"10309:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":6173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10328:11:20","memberName":"setDeadline","nodeType":"MemberAccess","referencedDeclaration":14711,"src":"10309:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockNumber_$14684_storage_ptr_$_t_uint64_$returns$__$bound_to$_t_struct$_BlockNumber_$14684_storage_ptr_$","typeString":"function (struct Timers.BlockNumber storage pointer,uint64)"}},"id":6175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10309:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6176,"nodeType":"ExpressionStatement","src":"10309:40:20"},{"expression":{"arguments":[{"id":6182,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6161,"src":"10388:8:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"expression":{"id":6177,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"10359:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":6180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10368:7:20","memberName":"voteEnd","nodeType":"MemberAccess","referencedDeclaration":5693,"src":"10359:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":6181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10376:11:20","memberName":"setDeadline","nodeType":"MemberAccess","referencedDeclaration":14711,"src":"10359:28:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_BlockNumber_$14684_storage_ptr_$_t_uint64_$returns$__$bound_to$_t_struct$_BlockNumber_$14684_storage_ptr_$","typeString":"function (struct Timers.BlockNumber storage pointer,uint64)"}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10359:38:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6184,"nodeType":"ExpressionStatement","src":"10359:38:20"},{"eventCall":{"arguments":[{"id":6186,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"10442:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6187,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"10466:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10466:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6189,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"10492:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6190,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6067,"src":"10513:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"arguments":[{"expression":{"id":6194,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6064,"src":"10546:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10554:6:20","memberName":"length","nodeType":"MemberAccess","src":"10546:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10533:12:20","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (string memory[] memory)"},"typeName":{"baseType":{"id":6191,"name":"string","nodeType":"ElementaryTypeName","src":"10537:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6192,"nodeType":"ArrayTypeName","src":"10537:8:20","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10533:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":6197,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6070,"src":"10575:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6198,"name":"snapshot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6149,"src":"10598:8:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6199,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6161,"src":"10620:8:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6200,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6072,"src":"10642:11:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6185,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6988,"src":"10413:15:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)"}},"id":6201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10413:250:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6202,"nodeType":"EmitStatement","src":"10408:255:20"},{"expression":{"id":6203,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"10681:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6077,"id":6204,"nodeType":"Return","src":"10674:17:20"}]},"documentation":{"id":6061,"nodeType":"StructuredDocumentation","src":"9237:48:20","text":" @dev See {IGovernor-propose}."},"functionSelector":"7d5e81e2","id":6206,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"9299:7:20","nodeType":"FunctionDefinition","overrides":{"id":6074,"nodeType":"OverrideSpecifier","overrides":[],"src":"9464:8:20"},"parameters":{"id":6073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6064,"mutability":"mutable","name":"targets","nameLocation":"9333:7:20","nodeType":"VariableDeclaration","scope":6206,"src":"9316:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6062,"name":"address","nodeType":"ElementaryTypeName","src":"9316:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6063,"nodeType":"ArrayTypeName","src":"9316:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6067,"mutability":"mutable","name":"values","nameLocation":"9367:6:20","nodeType":"VariableDeclaration","scope":6206,"src":"9350:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6065,"name":"uint256","nodeType":"ElementaryTypeName","src":"9350:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6066,"nodeType":"ArrayTypeName","src":"9350:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6070,"mutability":"mutable","name":"calldatas","nameLocation":"9398:9:20","nodeType":"VariableDeclaration","scope":6206,"src":"9383:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6068,"name":"bytes","nodeType":"ElementaryTypeName","src":"9383:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6069,"nodeType":"ArrayTypeName","src":"9383:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6072,"mutability":"mutable","name":"description","nameLocation":"9431:11:20","nodeType":"VariableDeclaration","scope":6206,"src":"9417:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6071,"name":"string","nodeType":"ElementaryTypeName","src":"9417:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9306:142:20"},"returnParameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6206,"src":"9482:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"9482:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9481:9:20"},"scope":6948,"src":"9290:1408:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7172],"body":{"id":6290,"nodeType":"Block","src":"10964:660:20","statements":[{"assignments":[6225],"declarations":[{"constant":false,"id":6225,"mutability":"mutable","name":"proposalId","nameLocation":"10982:10:20","nodeType":"VariableDeclaration","scope":6290,"src":"10974:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6224,"name":"uint256","nodeType":"ElementaryTypeName","src":"10974:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6232,"initialValue":{"arguments":[{"id":6227,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"11008:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6228,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"11017:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6229,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"11025:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6230,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"11036:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6226,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[5879],"referencedDeclaration":5879,"src":"10995:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10995:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10974:78:20"},{"assignments":[6235],"declarations":[{"constant":false,"id":6235,"mutability":"mutable","name":"status","nameLocation":"11077:6:20","nodeType":"VariableDeclaration","scope":6290,"src":"11063:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":6234,"nodeType":"UserDefinedTypeName","pathNode":{"id":6233,"name":"ProposalState","nameLocations":["11063:13:20"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"11063:13:20"},"referencedDeclaration":6963,"src":"11063:13:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":6239,"initialValue":{"arguments":[{"id":6237,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11092:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6236,"name":"state","nodeType":"Identifier","overloadedDeclarations":[5966],"referencedDeclaration":5966,"src":"11086:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11086:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"11063:40:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6241,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"11134:6:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6242,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"11144:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11158:9:20","memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":6959,"src":"11144:23:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"11134:33:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6245,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"11171:6:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6246,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"11181:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11195:6:20","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":6960,"src":"11181:20:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"11171:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11134:67:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756c","id":6250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11215:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""},"value":"Governor: proposal not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""}],"id":6240,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11113:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11113:147:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6252,"nodeType":"ExpressionStatement","src":"11113:147:20"},{"expression":{"id":6258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":6253,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"11270:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":6255,"indexExpression":{"id":6254,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11281:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11270:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":6256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11293:8:20","memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5695,"src":"11270:31:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11304:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11270:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6259,"nodeType":"ExpressionStatement","src":"11270:38:20"},{"eventCall":{"arguments":[{"id":6261,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11341:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6260,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"11324:16:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11324:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6263,"nodeType":"EmitStatement","src":"11319:33:20"},{"expression":{"arguments":[{"id":6265,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11378:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6266,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"11390:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6267,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"11399:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6268,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"11407:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6269,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"11418:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6264,"name":"_beforeExecute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6411,"src":"11363:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":6270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6271,"nodeType":"ExpressionStatement","src":"11363:71:20"},{"expression":{"arguments":[{"id":6273,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11453:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6274,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"11465:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6275,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"11474:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6276,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"11482:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6277,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"11493:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6272,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6351,"src":"11444:8:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11444:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6279,"nodeType":"ExpressionStatement","src":"11444:65:20"},{"expression":{"arguments":[{"id":6281,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11533:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6282,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"11545:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6283,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"11554:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6284,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"11562:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6285,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6218,"src":"11573:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6280,"name":"_afterExecute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6449,"src":"11519:13:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":6286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11519:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6287,"nodeType":"ExpressionStatement","src":"11519:70:20"},{"expression":{"id":6288,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"11607:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6223,"id":6289,"nodeType":"Return","src":"11600:17:20"}]},"documentation":{"id":6207,"nodeType":"StructuredDocumentation","src":"10704:48:20","text":" @dev See {IGovernor-execute}."},"functionSelector":"2656227d","id":6291,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"10766:7:20","nodeType":"FunctionDefinition","overrides":{"id":6220,"nodeType":"OverrideSpecifier","overrides":[],"src":"10937:8:20"},"parameters":{"id":6219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"targets","nameLocation":"10800:7:20","nodeType":"VariableDeclaration","scope":6291,"src":"10783:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6208,"name":"address","nodeType":"ElementaryTypeName","src":"10783:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6209,"nodeType":"ArrayTypeName","src":"10783:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6213,"mutability":"mutable","name":"values","nameLocation":"10834:6:20","nodeType":"VariableDeclaration","scope":6291,"src":"10817:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6211,"name":"uint256","nodeType":"ElementaryTypeName","src":"10817:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6212,"nodeType":"ArrayTypeName","src":"10817:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6216,"mutability":"mutable","name":"calldatas","nameLocation":"10865:9:20","nodeType":"VariableDeclaration","scope":6291,"src":"10850:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6214,"name":"bytes","nodeType":"ElementaryTypeName","src":"10850:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6215,"nodeType":"ArrayTypeName","src":"10850:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6218,"mutability":"mutable","name":"descriptionHash","nameLocation":"10892:15:20","nodeType":"VariableDeclaration","scope":6291,"src":"10884:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10884:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10773:140:20"},"returnParameters":{"id":6223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6291,"src":"10955:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6221,"name":"uint256","nodeType":"ElementaryTypeName","src":"10955:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10954:9:20"},"scope":6948,"src":"10757:867:20","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6350,"nodeType":"Block","src":"11962:328:20","statements":[{"assignments":[6309],"declarations":[{"constant":false,"id":6309,"mutability":"mutable","name":"errorMessage","nameLocation":"11986:12:20","nodeType":"VariableDeclaration","scope":6350,"src":"11972:26:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6308,"name":"string","nodeType":"ElementaryTypeName","src":"11972:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":6311,"initialValue":{"hexValue":"476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765","id":6310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12001:41:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_60bfcc3776c91812db2df5ee8e14efc111acb8df47a38be82f94cf8f4bc73336","typeString":"literal_string \"Governor: call reverted without message\""},"value":"Governor: call reverted without message"},"nodeType":"VariableDeclarationStatement","src":"11972:70:20"},{"body":{"id":6348,"nodeType":"Block","src":"12097:187:20","statements":[{"assignments":[6324,6326],"declarations":[{"constant":false,"id":6324,"mutability":"mutable","name":"success","nameLocation":"12117:7:20","nodeType":"VariableDeclaration","scope":6348,"src":"12112:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6323,"name":"bool","nodeType":"ElementaryTypeName","src":"12112:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6326,"mutability":"mutable","name":"returndata","nameLocation":"12139:10:20","nodeType":"VariableDeclaration","scope":6348,"src":"12126:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6325,"name":"bytes","nodeType":"ElementaryTypeName","src":"12126:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6339,"initialValue":{"arguments":[{"baseExpression":{"id":6335,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"12187:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6337,"indexExpression":{"id":6336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"12197:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12187:12:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":6327,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"12153:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6329,"indexExpression":{"id":6328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"12161:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12153:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12164:4:20","memberName":"call","nodeType":"MemberAccess","src":"12153:15:20","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":6334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"baseExpression":{"id":6331,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6300,"src":"12176:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":6333,"indexExpression":{"id":6332,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"12183:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12176:9:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12153:33:20","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":6338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12153:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12111:89:20"},{"expression":{"arguments":[{"id":6343,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"12239:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6344,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6326,"src":"12248:10:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6345,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6309,"src":"12260:12:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6340,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"12214:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$12931_$","typeString":"type(library Address)"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12222:16:20","memberName":"verifyCallResult","nodeType":"MemberAccess","referencedDeclaration":12910,"src":"12214:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":6346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6347,"nodeType":"ExpressionStatement","src":"12214:59:20"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"12072:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6317,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"12076:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12084:6:20","memberName":"length","nodeType":"MemberAccess","src":"12076:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12072:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6349,"initializationExpression":{"assignments":[6313],"declarations":[{"constant":false,"id":6313,"mutability":"mutable","name":"i","nameLocation":"12065:1:20","nodeType":"VariableDeclaration","scope":6349,"src":"12057:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6312,"name":"uint256","nodeType":"ElementaryTypeName","src":"12057:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6315,"initialValue":{"hexValue":"30","id":6314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12069:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12057:13:20"},"loopExpression":{"expression":{"id":6321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12092:3:20","subExpression":{"id":6320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"12094:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6322,"nodeType":"ExpressionStatement","src":"12092:3:20"},"nodeType":"ForStatement","src":"12052:232:20"}]},"documentation":{"id":6292,"nodeType":"StructuredDocumentation","src":"11630:114:20","text":" @dev Internal execution mechanism. Can be overridden to implement different execution mechanism"},"id":6351,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"11758:8:20","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6351,"src":"11776:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6293,"name":"uint256","nodeType":"ElementaryTypeName","src":"11776:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6297,"mutability":"mutable","name":"targets","nameLocation":"11827:7:20","nodeType":"VariableDeclaration","scope":6351,"src":"11810:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6295,"name":"address","nodeType":"ElementaryTypeName","src":"11810:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6296,"nodeType":"ArrayTypeName","src":"11810:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6300,"mutability":"mutable","name":"values","nameLocation":"11861:6:20","nodeType":"VariableDeclaration","scope":6351,"src":"11844:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6298,"name":"uint256","nodeType":"ElementaryTypeName","src":"11844:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6299,"nodeType":"ArrayTypeName","src":"11844:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6303,"mutability":"mutable","name":"calldatas","nameLocation":"11892:9:20","nodeType":"VariableDeclaration","scope":6351,"src":"11877:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6301,"name":"bytes","nodeType":"ElementaryTypeName","src":"11877:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6302,"nodeType":"ArrayTypeName","src":"11877:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6351,"src":"11911:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11911:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11766:178:20"},"returnParameters":{"id":6307,"nodeType":"ParameterList","parameters":[],"src":"11962:0:20"},"scope":6948,"src":"11749:541:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6410,"nodeType":"Block","src":"12585:274:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6368,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"12599:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":6372,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12622:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":6371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12614:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6370,"name":"address","nodeType":"ElementaryTypeName","src":"12614:7:20","typeDescriptions":{}}},"id":6373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12614:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12599:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6409,"nodeType":"IfStatement","src":"12595:258:20","trueBody":{"id":6408,"nodeType":"Block","src":"12629:224:20","statements":[{"body":{"id":6406,"nodeType":"Block","src":"12688:155:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":6386,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"12710:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6388,"indexExpression":{"id":6387,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"12718:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12710:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":6391,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12732:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":6390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12724:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6389,"name":"address","nodeType":"ElementaryTypeName","src":"12724:7:20","typeDescriptions":{}}},"id":6392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12724:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12710:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6405,"nodeType":"IfStatement","src":"12706:123:20","trueBody":{"id":6404,"nodeType":"Block","src":"12739:90:20","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":6398,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6363,"src":"12796:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":6400,"indexExpression":{"id":6399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"12806:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12796:12:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6397,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12786:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12786:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6394,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5708,"src":"12761:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":6396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12777:8:20","memberName":"pushBack","nodeType":"MemberAccess","referencedDeclaration":17795,"src":"12761:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$17763_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_struct$_Bytes32Deque_$17763_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer,bytes32)"}},"id":6402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12761:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6403,"nodeType":"ExpressionStatement","src":"12761:49:20"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6379,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"12663:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":6380,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"12667:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12675:6:20","memberName":"length","nodeType":"MemberAccess","src":"12667:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12663:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6407,"initializationExpression":{"assignments":[6376],"declarations":[{"constant":false,"id":6376,"mutability":"mutable","name":"i","nameLocation":"12656:1:20","nodeType":"VariableDeclaration","scope":6407,"src":"12648:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6375,"name":"uint256","nodeType":"ElementaryTypeName","src":"12648:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6378,"initialValue":{"hexValue":"30","id":6377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12660:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12648:13:20"},"loopExpression":{"expression":{"id":6384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"12683:3:20","subExpression":{"id":6383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"12685:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6385,"nodeType":"ExpressionStatement","src":"12683:3:20"},"nodeType":"ForStatement","src":"12643:200:20"}]}}]},"documentation":{"id":6352,"nodeType":"StructuredDocumentation","src":"12296:59:20","text":" @dev Hook before execution is triggered."},"id":6411,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeExecute","nameLocation":"12369:14:20","nodeType":"FunctionDefinition","parameters":{"id":6366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6411,"src":"12393:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6353,"name":"uint256","nodeType":"ElementaryTypeName","src":"12393:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6357,"mutability":"mutable","name":"targets","nameLocation":"12444:7:20","nodeType":"VariableDeclaration","scope":6411,"src":"12427:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6355,"name":"address","nodeType":"ElementaryTypeName","src":"12427:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6356,"nodeType":"ArrayTypeName","src":"12427:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6411,"src":"12461:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6358,"name":"uint256","nodeType":"ElementaryTypeName","src":"12461:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6359,"nodeType":"ArrayTypeName","src":"12461:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6363,"mutability":"mutable","name":"calldatas","nameLocation":"12515:9:20","nodeType":"VariableDeclaration","scope":6411,"src":"12500:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6361,"name":"bytes","nodeType":"ElementaryTypeName","src":"12500:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6362,"nodeType":"ArrayTypeName","src":"12500:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6411,"src":"12534:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12534:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12383:184:20"},"returnParameters":{"id":6367,"nodeType":"ParameterList","parameters":[],"src":"12585:0:20"},"scope":6948,"src":"12360:499:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6448,"nodeType":"Block","src":"13164:160:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6428,"name":"_executor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6881,"src":"13178:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13178:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":6432,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13201:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":6431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13193:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6430,"name":"address","nodeType":"ElementaryTypeName","src":"13193:7:20","typeDescriptions":{}}},"id":6433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13193:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13178:28:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6447,"nodeType":"IfStatement","src":"13174:144:20","trueBody":{"id":6446,"nodeType":"Block","src":"13208:110:20","statements":[{"condition":{"id":6438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13226:24:20","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6435,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5708,"src":"13227:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":6436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13243:5:20","memberName":"empty","nodeType":"MemberAccess","referencedDeclaration":18084,"src":"13227:21:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Deque_$17763_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":6437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13227:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6445,"nodeType":"IfStatement","src":"13222:86:20","trueBody":{"id":6444,"nodeType":"Block","src":"13252:56:20","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6439,"name":"_governanceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5708,"src":"13270:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage","typeString":"struct DoubleEndedQueue.Bytes32Deque storage ref"}},"id":6441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13286:5:20","memberName":"clear","nodeType":"MemberAccess","referencedDeclaration":18042,"src":"13270:21:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$__$bound_to$_t_struct$_Bytes32Deque_$17763_storage_ptr_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer)"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13270:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6443,"nodeType":"ExpressionStatement","src":"13270:23:20"}]}}]}}]},"documentation":{"id":6412,"nodeType":"StructuredDocumentation","src":"12865:58:20","text":" @dev Hook after execution is triggered."},"id":6449,"implemented":true,"kind":"function","modifiers":[],"name":"_afterExecute","nameLocation":"12937:13:20","nodeType":"FunctionDefinition","parameters":{"id":6426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6449,"src":"12960:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6413,"name":"uint256","nodeType":"ElementaryTypeName","src":"12960:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6449,"src":"12994:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6415,"name":"address","nodeType":"ElementaryTypeName","src":"12994:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6416,"nodeType":"ArrayTypeName","src":"12994:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6449,"src":"13034:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6418,"name":"uint256","nodeType":"ElementaryTypeName","src":"13034:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6419,"nodeType":"ArrayTypeName","src":"13034:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6449,"src":"13073:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6421,"name":"bytes","nodeType":"ElementaryTypeName","src":"13073:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6422,"nodeType":"ArrayTypeName","src":"13073:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6449,"src":"13113:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13113:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12950:196:20"},"returnParameters":{"id":6427,"nodeType":"ParameterList","parameters":[],"src":"13164:0:20"},"scope":6948,"src":"12928:396:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6513,"nodeType":"Block","src":"13783:455:20","statements":[{"assignments":[6467],"declarations":[{"constant":false,"id":6467,"mutability":"mutable","name":"proposalId","nameLocation":"13801:10:20","nodeType":"VariableDeclaration","scope":6513,"src":"13793:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6466,"name":"uint256","nodeType":"ElementaryTypeName","src":"13793:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6474,"initialValue":{"arguments":[{"id":6469,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"13827:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":6470,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6456,"src":"13836:6:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":6471,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6459,"src":"13844:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":6472,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6461,"src":"13855:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6468,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[5879],"referencedDeclaration":5879,"src":"13814:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":6473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13814:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13793:78:20"},{"assignments":[6477],"declarations":[{"constant":false,"id":6477,"mutability":"mutable","name":"status","nameLocation":"13895:6:20","nodeType":"VariableDeclaration","scope":6513,"src":"13881:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":6476,"nodeType":"UserDefinedTypeName","pathNode":{"id":6475,"name":"ProposalState","nameLocations":["13881:13:20"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"13881:13:20"},"referencedDeclaration":6963,"src":"13881:13:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":6481,"initialValue":{"arguments":[{"id":6479,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"13910:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6478,"name":"state","nodeType":"Identifier","overloadedDeclarations":[5966],"referencedDeclaration":5966,"src":"13904:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13904:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"13881:40:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6483,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"13953:6:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6484,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"13963:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13977:8:20","memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":6957,"src":"13963:22:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"13953:32:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6487,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"13989:6:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6488,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"13999:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14013:7:20","memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":6961,"src":"13999:21:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"13989:31:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13953:67:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6492,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"14024:6:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":6493,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"14034:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14048:8:20","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":6962,"src":"14034:22:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"14024:32:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13953:103:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f7420616374697665","id":6497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14070:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9df62e32cc9e9c02131fa3d2189c515bf05634e5979aec1a0e5b3a9e44a36d0b","typeString":"literal_string \"Governor: proposal not active\""},"value":"Governor: proposal not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9df62e32cc9e9c02131fa3d2189c515bf05634e5979aec1a0e5b3a9e44a36d0b","typeString":"literal_string \"Governor: proposal not active\""}],"id":6482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13932:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13932:179:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6499,"nodeType":"ExpressionStatement","src":"13932:179:20"},{"expression":{"id":6505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":6500,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"14121:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":6502,"indexExpression":{"id":6501,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"14132:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14121:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"id":6503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14144:8:20","memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5697,"src":"14121:31:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":6504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14155:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14121:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6506,"nodeType":"ExpressionStatement","src":"14121:38:20"},{"eventCall":{"arguments":[{"id":6508,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"14192:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6507,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6993,"src":"14175:16:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14175:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6510,"nodeType":"EmitStatement","src":"14170:33:20"},{"expression":{"id":6511,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"14221:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6465,"id":6512,"nodeType":"Return","src":"14214:17:20"}]},"documentation":{"id":6450,"nodeType":"StructuredDocumentation","src":"13330:256:20","text":" @dev Internal cancel mechanism: locks up the proposal timer, preventing it from being re-submitted. Marks it as\n canceled to allow distinguishing it from executed proposals.\n Emits a {IGovernor-ProposalCanceled} event."},"id":6514,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"13600:7:20","nodeType":"FunctionDefinition","parameters":{"id":6462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"targets","nameLocation":"13634:7:20","nodeType":"VariableDeclaration","scope":6514,"src":"13617:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6451,"name":"address","nodeType":"ElementaryTypeName","src":"13617:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6452,"nodeType":"ArrayTypeName","src":"13617:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6456,"mutability":"mutable","name":"values","nameLocation":"13668:6:20","nodeType":"VariableDeclaration","scope":6514,"src":"13651:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6454,"name":"uint256","nodeType":"ElementaryTypeName","src":"13651:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6455,"nodeType":"ArrayTypeName","src":"13651:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6459,"mutability":"mutable","name":"calldatas","nameLocation":"13699:9:20","nodeType":"VariableDeclaration","scope":6514,"src":"13684:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6457,"name":"bytes","nodeType":"ElementaryTypeName","src":"13684:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6458,"nodeType":"ArrayTypeName","src":"13684:7:20","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6461,"mutability":"mutable","name":"descriptionHash","nameLocation":"13726:15:20","nodeType":"VariableDeclaration","scope":6514,"src":"13718:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13718:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13607:140:20"},"returnParameters":{"id":6465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6514,"src":"13774:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6463,"name":"uint256","nodeType":"ElementaryTypeName","src":"13774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13773:9:20"},"scope":6948,"src":"13591:647:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[7116],"body":{"id":6532,"nodeType":"Block","src":"14401:73:20","statements":[{"expression":{"arguments":[{"id":6526,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"14428:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6527,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"14437:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6528,"name":"_defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6060,"src":"14450:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view returns (bytes memory)"}},"id":6529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14450:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6525,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"14418:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":6530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14418:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6524,"id":6531,"nodeType":"Return","src":"14411:56:20"}]},"documentation":{"id":6515,"nodeType":"StructuredDocumentation","src":"14244:49:20","text":" @dev See {IGovernor-getVotes}."},"functionSelector":"eb9019d4","id":6533,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"14307:8:20","nodeType":"FunctionDefinition","overrides":{"id":6521,"nodeType":"OverrideSpecifier","overrides":[],"src":"14374:8:20"},"parameters":{"id":6520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6517,"mutability":"mutable","name":"account","nameLocation":"14324:7:20","nodeType":"VariableDeclaration","scope":6533,"src":"14316:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6516,"name":"address","nodeType":"ElementaryTypeName","src":"14316:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6519,"mutability":"mutable","name":"blockNumber","nameLocation":"14341:11:20","nodeType":"VariableDeclaration","scope":6533,"src":"14333:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6518,"name":"uint256","nodeType":"ElementaryTypeName","src":"14333:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14315:38:20"},"returnParameters":{"id":6524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6533,"src":"14392:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6522,"name":"uint256","nodeType":"ElementaryTypeName","src":"14392:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14391:9:20"},"scope":6948,"src":"14298:176:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7128],"body":{"id":6552,"nodeType":"Block","src":"14708:63:20","statements":[{"expression":{"arguments":[{"id":6547,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6536,"src":"14735:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6548,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6538,"src":"14744:11:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6549,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6540,"src":"14757:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6546,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"14725:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":6550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:39:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6545,"id":6551,"nodeType":"Return","src":"14718:46:20"}]},"documentation":{"id":6534,"nodeType":"StructuredDocumentation","src":"14480:59:20","text":" @dev See {IGovernor-getVotesWithParams}."},"functionSelector":"9a802a6d","id":6553,"implemented":true,"kind":"function","modifiers":[],"name":"getVotesWithParams","nameLocation":"14553:18:20","nodeType":"FunctionDefinition","overrides":{"id":6542,"nodeType":"OverrideSpecifier","overrides":[],"src":"14681:8:20"},"parameters":{"id":6541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6536,"mutability":"mutable","name":"account","nameLocation":"14589:7:20","nodeType":"VariableDeclaration","scope":6553,"src":"14581:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6535,"name":"address","nodeType":"ElementaryTypeName","src":"14581:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6538,"mutability":"mutable","name":"blockNumber","nameLocation":"14614:11:20","nodeType":"VariableDeclaration","scope":6553,"src":"14606:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6537,"name":"uint256","nodeType":"ElementaryTypeName","src":"14606:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6540,"mutability":"mutable","name":"params","nameLocation":"14648:6:20","nodeType":"VariableDeclaration","scope":6553,"src":"14635:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6539,"name":"bytes","nodeType":"ElementaryTypeName","src":"14635:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14571:89:20"},"returnParameters":{"id":6545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6553,"src":"14699:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6543,"name":"uint256","nodeType":"ElementaryTypeName","src":"14699:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14698:9:20"},"scope":6948,"src":"14544:227:20","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7182],"body":{"id":6576,"nodeType":"Block","src":"14926:103:20","statements":[{"assignments":[6565],"declarations":[{"constant":false,"id":6565,"mutability":"mutable","name":"voter","nameLocation":"14944:5:20","nodeType":"VariableDeclaration","scope":6576,"src":"14936:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6564,"name":"address","nodeType":"ElementaryTypeName","src":"14936:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6568,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6566,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"14952:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14952:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14936:28:20"},{"expression":{"arguments":[{"id":6570,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6556,"src":"14991:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6571,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"15003:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6572,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6558,"src":"15010:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"","id":6573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15019:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6569,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6758,"src":"14981:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":6574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14981:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6563,"id":6575,"nodeType":"Return","src":"14974:48:20"}]},"documentation":{"id":6554,"nodeType":"StructuredDocumentation","src":"14777:49:20","text":" @dev See {IGovernor-castVote}."},"functionSelector":"56781388","id":6577,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nameLocation":"14840:8:20","nodeType":"FunctionDefinition","overrides":{"id":6560,"nodeType":"OverrideSpecifier","overrides":[],"src":"14899:8:20"},"parameters":{"id":6559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6556,"mutability":"mutable","name":"proposalId","nameLocation":"14857:10:20","nodeType":"VariableDeclaration","scope":6577,"src":"14849:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6555,"name":"uint256","nodeType":"ElementaryTypeName","src":"14849:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6558,"mutability":"mutable","name":"support","nameLocation":"14875:7:20","nodeType":"VariableDeclaration","scope":6577,"src":"14869:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6557,"name":"uint8","nodeType":"ElementaryTypeName","src":"14869:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"14848:35:20"},"returnParameters":{"id":6563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6577,"src":"14917:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6561,"name":"uint256","nodeType":"ElementaryTypeName","src":"14917:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14916:9:20"},"scope":6948,"src":"14831:198:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7194],"body":{"id":6602,"nodeType":"Block","src":"15258:107:20","statements":[{"assignments":[6591],"declarations":[{"constant":false,"id":6591,"mutability":"mutable","name":"voter","nameLocation":"15276:5:20","nodeType":"VariableDeclaration","scope":6602,"src":"15268:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6590,"name":"address","nodeType":"ElementaryTypeName","src":"15268:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6594,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6592,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"15284:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15284:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15268:28:20"},{"expression":{"arguments":[{"id":6596,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6580,"src":"15323:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6597,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6591,"src":"15335:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6598,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6582,"src":"15342:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6599,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"15351:6:20","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":6595,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6758,"src":"15313:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15313:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6589,"id":6601,"nodeType":"Return","src":"15306:52:20"}]},"documentation":{"id":6578,"nodeType":"StructuredDocumentation","src":"15035:59:20","text":" @dev See {IGovernor-castVoteWithReason}."},"functionSelector":"7b3c71d3","id":6603,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReason","nameLocation":"15108:18:20","nodeType":"FunctionDefinition","overrides":{"id":6586,"nodeType":"OverrideSpecifier","overrides":[],"src":"15231:8:20"},"parameters":{"id":6585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6580,"mutability":"mutable","name":"proposalId","nameLocation":"15144:10:20","nodeType":"VariableDeclaration","scope":6603,"src":"15136:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6579,"name":"uint256","nodeType":"ElementaryTypeName","src":"15136:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6582,"mutability":"mutable","name":"support","nameLocation":"15170:7:20","nodeType":"VariableDeclaration","scope":6603,"src":"15164:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6581,"name":"uint8","nodeType":"ElementaryTypeName","src":"15164:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6584,"mutability":"mutable","name":"reason","nameLocation":"15203:6:20","nodeType":"VariableDeclaration","scope":6603,"src":"15187:22:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6583,"name":"string","nodeType":"ElementaryTypeName","src":"15187:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15126:89:20"},"returnParameters":{"id":6589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6603,"src":"15249:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6587,"name":"uint256","nodeType":"ElementaryTypeName","src":"15249:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15248:9:20"},"scope":6948,"src":"15099:266:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7208],"body":{"id":6631,"nodeType":"Block","src":"15641:115:20","statements":[{"assignments":[6619],"declarations":[{"constant":false,"id":6619,"mutability":"mutable","name":"voter","nameLocation":"15659:5:20","nodeType":"VariableDeclaration","scope":6631,"src":"15651:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6618,"name":"address","nodeType":"ElementaryTypeName","src":"15651:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6622,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":6620,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"15667:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15667:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15651:28:20"},{"expression":{"arguments":[{"id":6624,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6606,"src":"15706:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6625,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6619,"src":"15718:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6626,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"15725:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6627,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6610,"src":"15734:6:20","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":6628,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6612,"src":"15742:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6623,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6837,"src":"15696:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15696:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6617,"id":6630,"nodeType":"Return","src":"15689:60:20"}]},"documentation":{"id":6604,"nodeType":"StructuredDocumentation","src":"15371:68:20","text":" @dev See {IGovernor-castVoteWithReasonAndParams}."},"functionSelector":"5f398a14","id":6632,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParams","nameLocation":"15453:27:20","nodeType":"FunctionDefinition","overrides":{"id":6614,"nodeType":"OverrideSpecifier","overrides":[],"src":"15614:8:20"},"parameters":{"id":6613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6606,"mutability":"mutable","name":"proposalId","nameLocation":"15498:10:20","nodeType":"VariableDeclaration","scope":6632,"src":"15490:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6605,"name":"uint256","nodeType":"ElementaryTypeName","src":"15490:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6608,"mutability":"mutable","name":"support","nameLocation":"15524:7:20","nodeType":"VariableDeclaration","scope":6632,"src":"15518:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6607,"name":"uint8","nodeType":"ElementaryTypeName","src":"15518:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6610,"mutability":"mutable","name":"reason","nameLocation":"15557:6:20","nodeType":"VariableDeclaration","scope":6632,"src":"15541:22:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6609,"name":"string","nodeType":"ElementaryTypeName","src":"15541:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6612,"mutability":"mutable","name":"params","nameLocation":"15586:6:20","nodeType":"VariableDeclaration","scope":6632,"src":"15573:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6611,"name":"bytes","nodeType":"ElementaryTypeName","src":"15573:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15480:118:20"},"returnParameters":{"id":6617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6632,"src":"15632:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6615,"name":"uint256","nodeType":"ElementaryTypeName","src":"15632:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15631:9:20"},"scope":6948,"src":"15444:312:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7224],"body":{"id":6675,"nodeType":"Block","src":"15998:250:20","statements":[{"assignments":[6650],"declarations":[{"constant":false,"id":6650,"mutability":"mutable","name":"voter","nameLocation":"16016:5:20","nodeType":"VariableDeclaration","scope":6675,"src":"16008:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6649,"name":"address","nodeType":"ElementaryTypeName","src":"16008:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6667,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":6657,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5682,"src":"16089:15:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6658,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"16106:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6659,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6637,"src":"16118:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":6655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16078:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16082:6:20","memberName":"encode","nodeType":"MemberAccess","src":"16078:10:20","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:48:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16068:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16068:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6653,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"16051:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16051:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6663,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6639,"src":"16142:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6664,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6641,"src":"16157:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6665,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6643,"src":"16172:1:20","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":6651,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"16024:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$15148_$","typeString":"type(library ECDSA)"}},"id":6652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:7:20","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":15088,"src":"16024:13:20","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":6666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16024:159:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16008:175:20"},{"expression":{"arguments":[{"id":6669,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"16210:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6670,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6650,"src":"16222:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6671,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6637,"src":"16229:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"hexValue":"","id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16238:2:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":6668,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6758,"src":"16200:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory) returns (uint256)"}},"id":6673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16200:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6648,"id":6674,"nodeType":"Return","src":"16193:48:20"}]},"documentation":{"id":6633,"nodeType":"StructuredDocumentation","src":"15762:54:20","text":" @dev See {IGovernor-castVoteBySig}."},"functionSelector":"3bccf4fd","id":6676,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nameLocation":"15830:13:20","nodeType":"FunctionDefinition","overrides":{"id":6645,"nodeType":"OverrideSpecifier","overrides":[],"src":"15971:8:20"},"parameters":{"id":6644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6635,"mutability":"mutable","name":"proposalId","nameLocation":"15861:10:20","nodeType":"VariableDeclaration","scope":6676,"src":"15853:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6634,"name":"uint256","nodeType":"ElementaryTypeName","src":"15853:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6637,"mutability":"mutable","name":"support","nameLocation":"15887:7:20","nodeType":"VariableDeclaration","scope":6676,"src":"15881:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6636,"name":"uint8","nodeType":"ElementaryTypeName","src":"15881:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6639,"mutability":"mutable","name":"v","nameLocation":"15910:1:20","nodeType":"VariableDeclaration","scope":6676,"src":"15904:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6638,"name":"uint8","nodeType":"ElementaryTypeName","src":"15904:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6641,"mutability":"mutable","name":"r","nameLocation":"15929:1:20","nodeType":"VariableDeclaration","scope":6676,"src":"15921:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15921:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6643,"mutability":"mutable","name":"s","nameLocation":"15948:1:20","nodeType":"VariableDeclaration","scope":6676,"src":"15940:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15940:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15843:112:20"},"returnParameters":{"id":6648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6676,"src":"15989:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6646,"name":"uint256","nodeType":"ElementaryTypeName","src":"15989:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15988:9:20"},"scope":6948,"src":"15821:427:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7244],"body":{"id":6733,"nodeType":"Block","src":"16589:527:20","statements":[{"assignments":[6698],"declarations":[{"constant":false,"id":6698,"mutability":"mutable","name":"voter","nameLocation":"16607:5:20","nodeType":"VariableDeclaration","scope":6733,"src":"16599:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6697,"name":"address","nodeType":"ElementaryTypeName","src":"16599:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":6724,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":6705,"name":"EXTENDED_BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"16743:24:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6706,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6679,"src":"16793:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6707,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6681,"src":"16829:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":6711,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6683,"src":"16878:6:20","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":6710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16872:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6709,"name":"bytes","nodeType":"ElementaryTypeName","src":"16872:5:20","typeDescriptions":{}}},"id":6712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16872:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":6708,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16862:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16862:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":6715,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"16922:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6714,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16912:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16912:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":6703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16707:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16711:6:20","memberName":"encode","nodeType":"MemberAccess","src":"16707:10:20","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16707:244:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6702,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16676:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16676:293:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6701,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"16642:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16642:341:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6720,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6687,"src":"16997:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6721,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6689,"src":"17012:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6722,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6691,"src":"17027:1:20","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":6699,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"16615:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$15148_$","typeString":"type(library ECDSA)"}},"id":6700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16621:7:20","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":15088,"src":"16615:13:20","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":6723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16615:423:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16599:439:20"},{"expression":{"arguments":[{"id":6726,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6679,"src":"17066:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6727,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6698,"src":"17078:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6728,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6681,"src":"17085:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6729,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6683,"src":"17094:6:20","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":6730,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"17102:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6725,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6837,"src":"17056:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":6731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17056:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6696,"id":6732,"nodeType":"Return","src":"17049:60:20"}]},"documentation":{"id":6677,"nodeType":"StructuredDocumentation","src":"16254:73:20","text":" @dev See {IGovernor-castVoteWithReasonAndParamsBySig}."},"functionSelector":"03420181","id":6734,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParamsBySig","nameLocation":"16341:32:20","nodeType":"FunctionDefinition","overrides":{"id":6693,"nodeType":"OverrideSpecifier","overrides":[],"src":"16562:8:20"},"parameters":{"id":6692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"proposalId","nameLocation":"16391:10:20","nodeType":"VariableDeclaration","scope":6734,"src":"16383:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6678,"name":"uint256","nodeType":"ElementaryTypeName","src":"16383:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6681,"mutability":"mutable","name":"support","nameLocation":"16417:7:20","nodeType":"VariableDeclaration","scope":6734,"src":"16411:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6680,"name":"uint8","nodeType":"ElementaryTypeName","src":"16411:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6683,"mutability":"mutable","name":"reason","nameLocation":"16450:6:20","nodeType":"VariableDeclaration","scope":6734,"src":"16434:22:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6682,"name":"string","nodeType":"ElementaryTypeName","src":"16434:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6685,"mutability":"mutable","name":"params","nameLocation":"16479:6:20","nodeType":"VariableDeclaration","scope":6734,"src":"16466:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6684,"name":"bytes","nodeType":"ElementaryTypeName","src":"16466:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6687,"mutability":"mutable","name":"v","nameLocation":"16501:1:20","nodeType":"VariableDeclaration","scope":6734,"src":"16495:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6686,"name":"uint8","nodeType":"ElementaryTypeName","src":"16495:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6689,"mutability":"mutable","name":"r","nameLocation":"16520:1:20","nodeType":"VariableDeclaration","scope":6734,"src":"16512:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16512:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6691,"mutability":"mutable","name":"s","nameLocation":"16539:1:20","nodeType":"VariableDeclaration","scope":6734,"src":"16531:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16531:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16373:173:20"},"returnParameters":{"id":6696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6734,"src":"16580:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"16580:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16579:9:20"},"scope":6948,"src":"16332:784:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":6757,"nodeType":"Block","src":"17591:89:20","statements":[{"expression":{"arguments":[{"id":6749,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"17618:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6750,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6739,"src":"17630:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6751,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6741,"src":"17639:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6752,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6743,"src":"17648:6:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6753,"name":"_defaultParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6060,"src":"17656:14:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes_memory_ptr_$","typeString":"function () view returns (bytes memory)"}},"id":6754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17656:16:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6748,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[6758,6837],"referencedDeclaration":6837,"src":"17608:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}},"id":6755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17608:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6747,"id":6756,"nodeType":"Return","src":"17601:72:20"}]},"documentation":{"id":6735,"nodeType":"StructuredDocumentation","src":"17122:298:20","text":" @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n voting weight using {IGovernor-getVotes} and call the {_countVote} internal function. Uses the _defaultParams().\n Emits a {IGovernor-VoteCast} event."},"id":6758,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"17434:9:20","nodeType":"FunctionDefinition","parameters":{"id":6744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"mutability":"mutable","name":"proposalId","nameLocation":"17461:10:20","nodeType":"VariableDeclaration","scope":6758,"src":"17453:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"17453:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6739,"mutability":"mutable","name":"account","nameLocation":"17489:7:20","nodeType":"VariableDeclaration","scope":6758,"src":"17481:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6738,"name":"address","nodeType":"ElementaryTypeName","src":"17481:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6741,"mutability":"mutable","name":"support","nameLocation":"17512:7:20","nodeType":"VariableDeclaration","scope":6758,"src":"17506:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6740,"name":"uint8","nodeType":"ElementaryTypeName","src":"17506:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6743,"mutability":"mutable","name":"reason","nameLocation":"17543:6:20","nodeType":"VariableDeclaration","scope":6758,"src":"17529:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6742,"name":"string","nodeType":"ElementaryTypeName","src":"17529:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17443:112:20"},"returnParameters":{"id":6747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6758,"src":"17582:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6745,"name":"uint256","nodeType":"ElementaryTypeName","src":"17582:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17581:9:20"},"scope":6948,"src":"17425:255:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6836,"nodeType":"Block","src":"18157:574:20","statements":[{"assignments":[6776],"declarations":[{"constant":false,"id":6776,"mutability":"mutable","name":"proposal","nameLocation":"18188:8:20","nodeType":"VariableDeclaration","scope":6836,"src":"18167:29:20","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"},"typeName":{"id":6775,"nodeType":"UserDefinedTypeName","pathNode":{"id":6774,"name":"ProposalCore","nameLocations":["18167:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":5698,"src":"18167:12:20"},"referencedDeclaration":5698,"src":"18167:12:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore"}},"visibility":"internal"}],"id":6780,"initialValue":{"baseExpression":{"id":6777,"name":"_proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"18199:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalCore_$5698_storage_$","typeString":"mapping(uint256 => struct Governor.ProposalCore storage ref)"}},"id":6779,"indexExpression":{"id":6778,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"18210:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18199:22:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage","typeString":"struct Governor.ProposalCore storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18167:54:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6783,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"18245:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6782,"name":"state","nodeType":"Identifier","overloadedDeclarations":[5966],"referencedDeclaration":5966,"src":"18239:5:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":6784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18239:17:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6785,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"18260:13:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18274:6:20","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":6956,"src":"18260:20:20","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"18239:41:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a20766f7465206e6f742063757272656e746c7920616374697665","id":6788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18282:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80","typeString":"literal_string \"Governor: vote not currently active\""},"value":"Governor: vote not currently active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80","typeString":"literal_string \"Governor: vote not currently active\""}],"id":6781,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18231:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18231:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6790,"nodeType":"ExpressionStatement","src":"18231:89:20"},{"assignments":[6792],"declarations":[{"constant":false,"id":6792,"mutability":"mutable","name":"weight","nameLocation":"18339:6:20","nodeType":"VariableDeclaration","scope":6836,"src":"18331:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6791,"name":"uint256","nodeType":"ElementaryTypeName","src":"18331:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6801,"initialValue":{"arguments":[{"id":6794,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"18358:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6795,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6776,"src":"18367:8:20","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalCore_$5698_storage_ptr","typeString":"struct Governor.ProposalCore storage pointer"}},"id":6796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18376:9:20","memberName":"voteStart","nodeType":"MemberAccess","referencedDeclaration":5690,"src":"18367:18:20","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage","typeString":"struct Timers.BlockNumber storage ref"}},"id":6797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18386:11:20","memberName":"getDeadline","nodeType":"MemberAccess","referencedDeclaration":14696,"src":"18367:30:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$14684_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_BlockNumber_$14684_memory_ptr_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (uint64)"}},"id":6798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18367:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":6799,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"18401:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6793,"name":"_getVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"18348:9:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory) view returns (uint256)"}},"id":6800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18348:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18331:77:20"},{"expression":{"arguments":[{"id":6803,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"18429:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6804,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"18441:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6805,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"18450:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6806,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"18459:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6807,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"18467:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6802,"name":"_countVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"18418:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,uint8,uint256,bytes memory)"}},"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18418:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6809,"nodeType":"ExpressionStatement","src":"18418:56:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6810,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"18489:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18496:6:20","memberName":"length","nodeType":"MemberAccess","src":"18489:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18506:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18489:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6832,"nodeType":"Block","src":"18599:102:20","statements":[{"eventCall":{"arguments":[{"id":6824,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"18637:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6825,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"18646:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6826,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"18658:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6827,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"18667:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6828,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6767,"src":"18675:6:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6829,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6769,"src":"18683:6:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6823,"name":"VoteCastWithParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7026,"src":"18618:18:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory,bytes memory)"}},"id":6830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18618:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6831,"nodeType":"EmitStatement","src":"18613:77:20"}]},"id":6833,"nodeType":"IfStatement","src":"18485:216:20","trueBody":{"id":6822,"nodeType":"Block","src":"18509:84:20","statements":[{"eventCall":{"arguments":[{"id":6815,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"18537:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6816,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"18546:10:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6817,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6765,"src":"18558:7:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":6818,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"18567:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6819,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6767,"src":"18575:6:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6814,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7011,"src":"18528:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":6820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18528:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6821,"nodeType":"EmitStatement","src":"18523:59:20"}]}},{"expression":{"id":6834,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"18718:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6773,"id":6835,"nodeType":"Return","src":"18711:13:20"}]},"documentation":{"id":6759,"nodeType":"StructuredDocumentation","src":"17686:271:20","text":" @dev Internal vote casting mechanism: Check that the vote is pending, that it has not been cast yet, retrieve\n voting weight using {IGovernor-getVotes} and call the {_countVote} internal function.\n Emits a {IGovernor-VoteCast} event."},"id":6837,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nameLocation":"17971:9:20","nodeType":"FunctionDefinition","parameters":{"id":6770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6761,"mutability":"mutable","name":"proposalId","nameLocation":"17998:10:20","nodeType":"VariableDeclaration","scope":6837,"src":"17990:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6760,"name":"uint256","nodeType":"ElementaryTypeName","src":"17990:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6763,"mutability":"mutable","name":"account","nameLocation":"18026:7:20","nodeType":"VariableDeclaration","scope":6837,"src":"18018:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6762,"name":"address","nodeType":"ElementaryTypeName","src":"18018:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6765,"mutability":"mutable","name":"support","nameLocation":"18049:7:20","nodeType":"VariableDeclaration","scope":6837,"src":"18043:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6764,"name":"uint8","nodeType":"ElementaryTypeName","src":"18043:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6767,"mutability":"mutable","name":"reason","nameLocation":"18080:6:20","nodeType":"VariableDeclaration","scope":6837,"src":"18066:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6766,"name":"string","nodeType":"ElementaryTypeName","src":"18066:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6769,"mutability":"mutable","name":"params","nameLocation":"18109:6:20","nodeType":"VariableDeclaration","scope":6837,"src":"18096:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6768,"name":"bytes","nodeType":"ElementaryTypeName","src":"18096:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17980:141:20"},"returnParameters":{"id":6773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6837,"src":"18148:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6771,"name":"uint256","nodeType":"ElementaryTypeName","src":"18148:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18147:9:20"},"scope":6948,"src":"17962:769:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6868,"nodeType":"Block","src":"19319:189:20","statements":[{"assignments":[6850,6852],"declarations":[{"constant":false,"id":6850,"mutability":"mutable","name":"success","nameLocation":"19335:7:20","nodeType":"VariableDeclaration","scope":6868,"src":"19330:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6849,"name":"bool","nodeType":"ElementaryTypeName","src":"19330:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6852,"mutability":"mutable","name":"returndata","nameLocation":"19357:10:20","nodeType":"VariableDeclaration","scope":6868,"src":"19344:23:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6851,"name":"bytes","nodeType":"ElementaryTypeName","src":"19344:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6859,"initialValue":{"arguments":[{"id":6857,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6844,"src":"19397:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":6853,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6840,"src":"19371:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19378:4:20","memberName":"call","nodeType":"MemberAccess","src":"19371:11:20","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":6856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6855,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6842,"src":"19390:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"19371:25:20","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":6858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19371:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19329:73:20"},{"expression":{"arguments":[{"id":6863,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"19437:7:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6864,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"19446:10:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765","id":6865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19458:42:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_188c83882c79ccd2b8efe669664a276c8f2b924bc8cf22525168ceaa78c2598f","typeString":"literal_string \"Governor: relay reverted without message\""},"value":"Governor: relay reverted without message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_188c83882c79ccd2b8efe669664a276c8f2b924bc8cf22525168ceaa78c2598f","typeString":"literal_string \"Governor: relay reverted without message\""}],"expression":{"id":6860,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12931,"src":"19412:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$12931_$","typeString":"type(library Address)"}},"id":6862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19420:16:20","memberName":"verifyCallResult","nodeType":"MemberAccess","referencedDeclaration":12910,"src":"19412:24:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":6866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19412:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6867,"nodeType":"ExpressionStatement","src":"19412:89:20"}]},"documentation":{"id":6838,"nodeType":"StructuredDocumentation","src":"18737:440:20","text":" @dev Relays a transaction or function call to an arbitrary target. In cases where the governance executor\n is some contract other than the governor itself, like when using a timelock, this function can be invoked\n in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake.\n Note that if the executor is simply the governor itself, use of `relay` is redundant."},"functionSelector":"c28bc2fa","id":6869,"implemented":true,"kind":"function","modifiers":[{"id":6847,"kind":"modifierInvocation","modifierName":{"id":6846,"name":"onlyGovernance","nameLocations":["19304:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"19304:14:20"},"nodeType":"ModifierInvocation","src":"19304:14:20"}],"name":"relay","nameLocation":"19191:5:20","nodeType":"FunctionDefinition","parameters":{"id":6845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6840,"mutability":"mutable","name":"target","nameLocation":"19214:6:20","nodeType":"VariableDeclaration","scope":6869,"src":"19206:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"19206:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6842,"mutability":"mutable","name":"value","nameLocation":"19238:5:20","nodeType":"VariableDeclaration","scope":6869,"src":"19230:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6841,"name":"uint256","nodeType":"ElementaryTypeName","src":"19230:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6844,"mutability":"mutable","name":"data","nameLocation":"19268:4:20","nodeType":"VariableDeclaration","scope":6869,"src":"19253:19:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6843,"name":"bytes","nodeType":"ElementaryTypeName","src":"19253:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19196:82:20"},"returnParameters":{"id":6848,"nodeType":"ParameterList","parameters":[],"src":"19319:0:20"},"scope":6948,"src":"19182:326:20","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6880,"nodeType":"Block","src":"19757:37:20","statements":[{"expression":{"arguments":[{"id":6877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19782:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}],"id":6876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19774:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6875,"name":"address","nodeType":"ElementaryTypeName","src":"19774:7:20","typeDescriptions":{}}},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19774:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6874,"id":6879,"nodeType":"Return","src":"19767:20:20"}]},"documentation":{"id":6870,"nodeType":"StructuredDocumentation","src":"19514:177:20","text":" @dev Address through which the governor executes action. Will be overloaded by module that execute actions\n through another contract such as a timelock."},"id":6881,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"19705:9:20","nodeType":"FunctionDefinition","parameters":{"id":6871,"nodeType":"ParameterList","parameters":[],"src":"19714:2:20"},"returnParameters":{"id":6874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6873,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6881,"src":"19748:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6872,"name":"address","nodeType":"ElementaryTypeName","src":"19748:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19747:9:20"},"scope":6948,"src":"19696:98:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[12063],"body":{"id":6900,"nodeType":"Block","src":"20014:54:20","statements":[{"expression":{"expression":{"expression":{"id":6896,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20031:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":6897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20036:16:20","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":6901,"src":"20031:21:20","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":6898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20053:8:20","memberName":"selector","nodeType":"MemberAccess","src":"20031:30:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":6895,"id":6899,"nodeType":"Return","src":"20024:37:20"}]},"documentation":{"id":6882,"nodeType":"StructuredDocumentation","src":"19800:63:20","text":" @dev See {IERC721Receiver-onERC721Received}."},"functionSelector":"150b7a02","id":6901,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"19877:16:20","nodeType":"FunctionDefinition","overrides":{"id":6892,"nodeType":"OverrideSpecifier","overrides":[],"src":"19988:8:20"},"parameters":{"id":6891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6901,"src":"19903:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6883,"name":"address","nodeType":"ElementaryTypeName","src":"19903:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6901,"src":"19920:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6885,"name":"address","nodeType":"ElementaryTypeName","src":"19920:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6901,"src":"19937:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6887,"name":"uint256","nodeType":"ElementaryTypeName","src":"19937:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6901,"src":"19954:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6889,"name":"bytes","nodeType":"ElementaryTypeName","src":"19954:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19893:79:20"},"returnParameters":{"id":6895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6901,"src":"20006:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6893,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20006:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"20005:8:20"},"scope":6948,"src":"19868:200:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9326],"body":{"id":6922,"nodeType":"Block","src":"20308:55:20","statements":[{"expression":{"expression":{"expression":{"id":6918,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20325:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":6919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20330:17:20","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":6923,"src":"20325:22:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":6920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20348:8:20","memberName":"selector","nodeType":"MemberAccess","src":"20325:31:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":6917,"id":6921,"nodeType":"Return","src":"20318:38:20"}]},"documentation":{"id":6902,"nodeType":"StructuredDocumentation","src":"20074:65:20","text":" @dev See {IERC1155Receiver-onERC1155Received}."},"functionSelector":"f23a6e61","id":6923,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"20153:17:20","nodeType":"FunctionDefinition","overrides":{"id":6914,"nodeType":"OverrideSpecifier","overrides":[],"src":"20282:8:20"},"parameters":{"id":6913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20180:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6903,"name":"address","nodeType":"ElementaryTypeName","src":"20180:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20197:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6905,"name":"address","nodeType":"ElementaryTypeName","src":"20197:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20214:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6907,"name":"uint256","nodeType":"ElementaryTypeName","src":"20214:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20231:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6909,"name":"uint256","nodeType":"ElementaryTypeName","src":"20231:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20248:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6911,"name":"bytes","nodeType":"ElementaryTypeName","src":"20248:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20170:96:20"},"returnParameters":{"id":6917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6923,"src":"20300:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6915,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20300:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"20299:8:20"},"scope":6948,"src":"20144:219:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9344],"body":{"id":6946,"nodeType":"Block","src":"20631:60:20","statements":[{"expression":{"expression":{"expression":{"id":6942,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20648:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_Governor_$6948","typeString":"contract Governor"}},"id":6943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20653:22:20","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":6947,"src":"20648:27:20","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":6944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20676:8:20","memberName":"selector","nodeType":"MemberAccess","src":"20648:36:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":6941,"id":6945,"nodeType":"Return","src":"20641:43:20"}]},"documentation":{"id":6924,"nodeType":"StructuredDocumentation","src":"20369:70:20","text":" @dev See {IERC1155Receiver-onERC1155BatchReceived}."},"functionSelector":"bc197c81","id":6947,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"20453:22:20","nodeType":"FunctionDefinition","overrides":{"id":6938,"nodeType":"OverrideSpecifier","overrides":[],"src":"20605:8:20"},"parameters":{"id":6937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20485:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6925,"name":"address","nodeType":"ElementaryTypeName","src":"20485:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20502:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6927,"name":"address","nodeType":"ElementaryTypeName","src":"20502:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20519:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6929,"name":"uint256","nodeType":"ElementaryTypeName","src":"20519:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6930,"nodeType":"ArrayTypeName","src":"20519:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20545:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6932,"name":"uint256","nodeType":"ElementaryTypeName","src":"20545:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6933,"nodeType":"ArrayTypeName","src":"20545:9:20","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20571:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6935,"name":"bytes","nodeType":"ElementaryTypeName","src":"20571:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20475:114:20"},"returnParameters":{"id":6941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6947,"src":"20623:6:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6939,"name":"bytes4","nodeType":"ElementaryTypeName","src":"20623:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"20622:8:20"},"scope":6948,"src":"20444:247:20","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":6949,"src":"998:19695:20","usedErrors":[17751]}],"src":"107:20587:20"},"id":20},"@openzeppelin/contracts/governance/IGovernor.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","exportedSymbols":{"ERC165":[15326],"IERC165":[15338],"IGovernor":[7245]},"id":7246,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6950,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":6951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7246,"sourceUnit":15327,"src":"133:43:21","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6953,"name":"IERC165","nameLocations":["289:7:21"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"289:7:21"},"id":6954,"nodeType":"InheritanceSpecifier","src":"289:7:21"}],"canonicalName":"IGovernor","contractDependencies":[],"contractKind":"contract","documentation":{"id":6952,"nodeType":"StructuredDocumentation","src":"178:79:21","text":" @dev Interface of the {Governor} core.\n _Available since v4.3._"},"fullyImplemented":false,"id":7245,"linearizedBaseContracts":[7245,15338],"name":"IGovernor","nameLocation":"276:9:21","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IGovernor.ProposalState","id":6963,"members":[{"id":6955,"name":"Pending","nameLocation":"332:7:21","nodeType":"EnumValue","src":"332:7:21"},{"id":6956,"name":"Active","nameLocation":"349:6:21","nodeType":"EnumValue","src":"349:6:21"},{"id":6957,"name":"Canceled","nameLocation":"365:8:21","nodeType":"EnumValue","src":"365:8:21"},{"id":6958,"name":"Defeated","nameLocation":"383:8:21","nodeType":"EnumValue","src":"383:8:21"},{"id":6959,"name":"Succeeded","nameLocation":"401:9:21","nodeType":"EnumValue","src":"401:9:21"},{"id":6960,"name":"Queued","nameLocation":"420:6:21","nodeType":"EnumValue","src":"420:6:21"},{"id":6961,"name":"Expired","nameLocation":"436:7:21","nodeType":"EnumValue","src":"436:7:21"},{"id":6962,"name":"Executed","nameLocation":"453:8:21","nodeType":"EnumValue","src":"453:8:21"}],"name":"ProposalState","nameLocation":"308:13:21","nodeType":"EnumDefinition","src":"303:164:21"},{"anonymous":false,"documentation":{"id":6964,"nodeType":"StructuredDocumentation","src":"473:59:21","text":" @dev Emitted when a proposal is created."},"eventSelector":"7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0","id":6988,"name":"ProposalCreated","nameLocation":"543:15:21","nodeType":"EventDefinition","parameters":{"id":6987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6966,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"576:10:21","nodeType":"VariableDeclaration","scope":6988,"src":"568:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6965,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6968,"indexed":false,"mutability":"mutable","name":"proposer","nameLocation":"604:8:21","nodeType":"VariableDeclaration","scope":6988,"src":"596:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6967,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6971,"indexed":false,"mutability":"mutable","name":"targets","nameLocation":"632:7:21","nodeType":"VariableDeclaration","scope":6988,"src":"622:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6969,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6970,"nodeType":"ArrayTypeName","src":"622:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":6974,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"659:6:21","nodeType":"VariableDeclaration","scope":6988,"src":"649:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6972,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6973,"nodeType":"ArrayTypeName","src":"649:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":6977,"indexed":false,"mutability":"mutable","name":"signatures","nameLocation":"684:10:21","nodeType":"VariableDeclaration","scope":6988,"src":"675:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6975,"name":"string","nodeType":"ElementaryTypeName","src":"675:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6976,"nodeType":"ArrayTypeName","src":"675:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":6980,"indexed":false,"mutability":"mutable","name":"calldatas","nameLocation":"712:9:21","nodeType":"VariableDeclaration","scope":6988,"src":"704:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6978,"name":"bytes","nodeType":"ElementaryTypeName","src":"704:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6979,"nodeType":"ArrayTypeName","src":"704:7:21","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":6982,"indexed":false,"mutability":"mutable","name":"startBlock","nameLocation":"739:10:21","nodeType":"VariableDeclaration","scope":6988,"src":"731:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6981,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6984,"indexed":false,"mutability":"mutable","name":"endBlock","nameLocation":"767:8:21","nodeType":"VariableDeclaration","scope":6988,"src":"759:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6983,"name":"uint256","nodeType":"ElementaryTypeName","src":"759:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6986,"indexed":false,"mutability":"mutable","name":"description","nameLocation":"792:11:21","nodeType":"VariableDeclaration","scope":6988,"src":"785:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6985,"name":"string","nodeType":"ElementaryTypeName","src":"785:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"558:251:21"},"src":"537:273:21"},{"anonymous":false,"documentation":{"id":6989,"nodeType":"StructuredDocumentation","src":"816:60:21","text":" @dev Emitted when a proposal is canceled."},"eventSelector":"789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c","id":6993,"name":"ProposalCanceled","nameLocation":"887:16:21","nodeType":"EventDefinition","parameters":{"id":6992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6991,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"912:10:21","nodeType":"VariableDeclaration","scope":6993,"src":"904:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6990,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"903:20:21"},"src":"881:43:21"},{"anonymous":false,"documentation":{"id":6994,"nodeType":"StructuredDocumentation","src":"930:60:21","text":" @dev Emitted when a proposal is executed."},"eventSelector":"712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f","id":6998,"name":"ProposalExecuted","nameLocation":"1001:16:21","nodeType":"EventDefinition","parameters":{"id":6997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6996,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1026:10:21","nodeType":"VariableDeclaration","scope":6998,"src":"1018:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6995,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:20:21"},"src":"995:43:21"},{"anonymous":false,"documentation":{"id":6999,"nodeType":"StructuredDocumentation","src":"1044:187:21","text":" @dev Emitted when a vote is cast without params.\n Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used."},"eventSelector":"b8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4","id":7011,"name":"VoteCast","nameLocation":"1242:8:21","nodeType":"EventDefinition","parameters":{"id":7010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7001,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"1267:5:21","nodeType":"VariableDeclaration","scope":7011,"src":"1251:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7000,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7003,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1282:10:21","nodeType":"VariableDeclaration","scope":7011,"src":"1274:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7005,"indexed":false,"mutability":"mutable","name":"support","nameLocation":"1300:7:21","nodeType":"VariableDeclaration","scope":7011,"src":"1294:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7004,"name":"uint8","nodeType":"ElementaryTypeName","src":"1294:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7007,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1317:6:21","nodeType":"VariableDeclaration","scope":7011,"src":"1309:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7006,"name":"uint256","nodeType":"ElementaryTypeName","src":"1309:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7009,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1332:6:21","nodeType":"VariableDeclaration","scope":7011,"src":"1325:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7008,"name":"string","nodeType":"ElementaryTypeName","src":"1325:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1250:89:21"},"src":"1236:104:21"},{"anonymous":false,"documentation":{"id":7012,"nodeType":"StructuredDocumentation","src":"1346:297:21","text":" @dev Emitted when a vote is cast with params.\n Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\n `params` are additional encoded parameters. Their intepepretation also depends on the voting module used."},"eventSelector":"e2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712","id":7026,"name":"VoteCastWithParams","nameLocation":"1654:18:21","nodeType":"EventDefinition","parameters":{"id":7025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7014,"indexed":true,"mutability":"mutable","name":"voter","nameLocation":"1698:5:21","nodeType":"VariableDeclaration","scope":7026,"src":"1682:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7013,"name":"address","nodeType":"ElementaryTypeName","src":"1682:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7016,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"1721:10:21","nodeType":"VariableDeclaration","scope":7026,"src":"1713:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7015,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7018,"indexed":false,"mutability":"mutable","name":"support","nameLocation":"1747:7:21","nodeType":"VariableDeclaration","scope":7026,"src":"1741:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7017,"name":"uint8","nodeType":"ElementaryTypeName","src":"1741:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7020,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"1772:6:21","nodeType":"VariableDeclaration","scope":7026,"src":"1764:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7022,"indexed":false,"mutability":"mutable","name":"reason","nameLocation":"1795:6:21","nodeType":"VariableDeclaration","scope":7026,"src":"1788:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7021,"name":"string","nodeType":"ElementaryTypeName","src":"1788:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7024,"indexed":false,"mutability":"mutable","name":"params","nameLocation":"1817:6:21","nodeType":"VariableDeclaration","scope":7026,"src":"1811:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7023,"name":"bytes","nodeType":"ElementaryTypeName","src":"1811:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1672:157:21"},"src":"1648:182:21"},{"documentation":{"id":7027,"nodeType":"StructuredDocumentation","src":"1836:128:21","text":" @notice module:core\n @dev Name of the governor instance (used in building the ERC712 domain separator)."},"functionSelector":"06fdde03","id":7032,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"1978:4:21","nodeType":"FunctionDefinition","parameters":{"id":7028,"nodeType":"ParameterList","parameters":[],"src":"1982:2:21"},"returnParameters":{"id":7031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7032,"src":"2014:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7029,"name":"string","nodeType":"ElementaryTypeName","src":"2014:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2013:15:21"},"scope":7245,"src":"1969:60:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7033,"nodeType":"StructuredDocumentation","src":"2035:144:21","text":" @notice module:core\n @dev Version of the governor instance (used in building the ERC712 domain separator). Default: \"1\""},"functionSelector":"54fd4d50","id":7038,"implemented":false,"kind":"function","modifiers":[],"name":"version","nameLocation":"2193:7:21","nodeType":"FunctionDefinition","parameters":{"id":7034,"nodeType":"ParameterList","parameters":[],"src":"2200:2:21"},"returnParameters":{"id":7037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7038,"src":"2232:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7035,"name":"string","nodeType":"ElementaryTypeName","src":"2232:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2231:15:21"},"scope":7245,"src":"2184:63:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7039,"nodeType":"StructuredDocumentation","src":"2253:1315:21","text":" @notice module:voting\n @dev A description of the possible `support` values for {castVote} and the way these votes are counted, meant to\n be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of\n key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`.\n There are 2 standard keys: `support` and `quorum`.\n - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`.\n - `quorum=bravo` means that only For votes are counted towards quorum.\n - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum.\n If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique\n name that describes the behavior. For example:\n - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain.\n - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote.\n NOTE: The string can be decoded by the standard\n https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`]\n JavaScript class."},"functionSelector":"dd4e2ba5","id":7044,"implemented":false,"kind":"function","modifiers":[],"name":"COUNTING_MODE","nameLocation":"3635:13:21","nodeType":"FunctionDefinition","parameters":{"id":7040,"nodeType":"ParameterList","parameters":[],"src":"3648:2:21"},"returnParameters":{"id":7043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7044,"src":"3680:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7041,"name":"string","nodeType":"ElementaryTypeName","src":"3680:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3679:15:21"},"scope":7245,"src":"3626:69:21","stateMutability":"pure","virtual":true,"visibility":"public"},{"documentation":{"id":7045,"nodeType":"StructuredDocumentation","src":"3701:129:21","text":" @notice module:core\n @dev Hashing function used to (re)build the proposal id from the proposal details.."},"functionSelector":"c59057e4","id":7061,"implemented":false,"kind":"function","modifiers":[],"name":"hashProposal","nameLocation":"3844:12:21","nodeType":"FunctionDefinition","parameters":{"id":7057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7048,"mutability":"mutable","name":"targets","nameLocation":"3883:7:21","nodeType":"VariableDeclaration","scope":7061,"src":"3866:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7046,"name":"address","nodeType":"ElementaryTypeName","src":"3866:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7047,"nodeType":"ArrayTypeName","src":"3866:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7051,"mutability":"mutable","name":"values","nameLocation":"3917:6:21","nodeType":"VariableDeclaration","scope":7061,"src":"3900:23:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7049,"name":"uint256","nodeType":"ElementaryTypeName","src":"3900:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7050,"nodeType":"ArrayTypeName","src":"3900:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7054,"mutability":"mutable","name":"calldatas","nameLocation":"3948:9:21","nodeType":"VariableDeclaration","scope":7061,"src":"3933:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7052,"name":"bytes","nodeType":"ElementaryTypeName","src":"3933:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7053,"nodeType":"ArrayTypeName","src":"3933:7:21","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7056,"mutability":"mutable","name":"descriptionHash","nameLocation":"3975:15:21","nodeType":"VariableDeclaration","scope":7061,"src":"3967:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3967:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3856:140:21"},"returnParameters":{"id":7060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7061,"src":"4026:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7058,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4025:9:21"},"scope":7245,"src":"3835:200:21","stateMutability":"pure","virtual":true,"visibility":"public"},{"documentation":{"id":7062,"nodeType":"StructuredDocumentation","src":"4041:111:21","text":" @notice module:core\n @dev Current state of a proposal, following Compound's convention"},"functionSelector":"3e4f49e6","id":7070,"implemented":false,"kind":"function","modifiers":[],"name":"state","nameLocation":"4166:5:21","nodeType":"FunctionDefinition","parameters":{"id":7065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7064,"mutability":"mutable","name":"proposalId","nameLocation":"4180:10:21","nodeType":"VariableDeclaration","scope":7070,"src":"4172:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7063,"name":"uint256","nodeType":"ElementaryTypeName","src":"4172:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4171:20:21"},"returnParameters":{"id":7069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7068,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7070,"src":"4221:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":7067,"nodeType":"UserDefinedTypeName","pathNode":{"id":7066,"name":"ProposalState","nameLocations":["4221:13:21"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"4221:13:21"},"referencedDeclaration":6963,"src":"4221:13:21","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"4220:15:21"},"scope":7245,"src":"4157:79:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7071,"nodeType":"StructuredDocumentation","src":"4242:305:21","text":" @notice module:core\n @dev Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's\n ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the\n beginning of the following block."},"functionSelector":"2d63f693","id":7078,"implemented":false,"kind":"function","modifiers":[],"name":"proposalSnapshot","nameLocation":"4561:16:21","nodeType":"FunctionDefinition","parameters":{"id":7074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7073,"mutability":"mutable","name":"proposalId","nameLocation":"4586:10:21","nodeType":"VariableDeclaration","scope":7078,"src":"4578:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7072,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:20:21"},"returnParameters":{"id":7077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7078,"src":"4627:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7075,"name":"uint256","nodeType":"ElementaryTypeName","src":"4627:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4626:9:21"},"scope":7245,"src":"4552:84:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7079,"nodeType":"StructuredDocumentation","src":"4642:182:21","text":" @notice module:core\n @dev Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote\n during this block."},"functionSelector":"c01f9e37","id":7086,"implemented":false,"kind":"function","modifiers":[],"name":"proposalDeadline","nameLocation":"4838:16:21","nodeType":"FunctionDefinition","parameters":{"id":7082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7081,"mutability":"mutable","name":"proposalId","nameLocation":"4863:10:21","nodeType":"VariableDeclaration","scope":7086,"src":"4855:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7080,"name":"uint256","nodeType":"ElementaryTypeName","src":"4855:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4854:20:21"},"returnParameters":{"id":7085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7086,"src":"4904:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7083,"name":"uint256","nodeType":"ElementaryTypeName","src":"4904:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4903:9:21"},"scope":7245,"src":"4829:84:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7087,"nodeType":"StructuredDocumentation","src":"4919:268:21","text":" @notice module:user-config\n @dev Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to\n leave time for users to buy voting power, or delegate it, before the voting of a proposal starts."},"functionSelector":"3932abb1","id":7092,"implemented":false,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"5201:11:21","nodeType":"FunctionDefinition","parameters":{"id":7088,"nodeType":"ParameterList","parameters":[],"src":"5212:2:21"},"returnParameters":{"id":7091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7092,"src":"5244:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7089,"name":"uint256","nodeType":"ElementaryTypeName","src":"5244:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5243:9:21"},"scope":7245,"src":"5192:61:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7093,"nodeType":"StructuredDocumentation","src":"5259:288:21","text":" @notice module:user-config\n @dev Delay, in number of blocks, between the vote start and vote ends.\n NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting\n duration compared to the voting delay."},"functionSelector":"02a251a3","id":7098,"implemented":false,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"5561:12:21","nodeType":"FunctionDefinition","parameters":{"id":7094,"nodeType":"ParameterList","parameters":[],"src":"5573:2:21"},"returnParameters":{"id":7097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7098,"src":"5605:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7095,"name":"uint256","nodeType":"ElementaryTypeName","src":"5605:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5604:9:21"},"scope":7245,"src":"5552:62:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7099,"nodeType":"StructuredDocumentation","src":"5620:356:21","text":" @notice module:user-config\n @dev Minimum number of cast voted required for a proposal to be successful.\n Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the\n quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes})."},"functionSelector":"f8ce560a","id":7106,"implemented":false,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"5990:6:21","nodeType":"FunctionDefinition","parameters":{"id":7102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7101,"mutability":"mutable","name":"blockNumber","nameLocation":"6005:11:21","nodeType":"VariableDeclaration","scope":7106,"src":"5997:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7100,"name":"uint256","nodeType":"ElementaryTypeName","src":"5997:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5996:21:21"},"returnParameters":{"id":7105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7106,"src":"6047:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7103,"name":"uint256","nodeType":"ElementaryTypeName","src":"6047:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6046:9:21"},"scope":7245,"src":"5981:75:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7107,"nodeType":"StructuredDocumentation","src":"6062:276:21","text":" @notice module:reputation\n @dev Voting power of an `account` at a specific `blockNumber`.\n Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or\n multiple), {ERC20Votes} tokens."},"functionSelector":"eb9019d4","id":7116,"implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"6352:8:21","nodeType":"FunctionDefinition","parameters":{"id":7112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7109,"mutability":"mutable","name":"account","nameLocation":"6369:7:21","nodeType":"VariableDeclaration","scope":7116,"src":"6361:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7108,"name":"address","nodeType":"ElementaryTypeName","src":"6361:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7111,"mutability":"mutable","name":"blockNumber","nameLocation":"6386:11:21","nodeType":"VariableDeclaration","scope":7116,"src":"6378:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6360:38:21"},"returnParameters":{"id":7115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7116,"src":"6428:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6428:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6427:9:21"},"scope":7245,"src":"6343:94:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7117,"nodeType":"StructuredDocumentation","src":"6443:150:21","text":" @notice module:reputation\n @dev Voting power of an `account` at a specific `blockNumber` given additional encoded parameters."},"functionSelector":"9a802a6d","id":7128,"implemented":false,"kind":"function","modifiers":[],"name":"getVotesWithParams","nameLocation":"6607:18:21","nodeType":"FunctionDefinition","parameters":{"id":7124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7119,"mutability":"mutable","name":"account","nameLocation":"6643:7:21","nodeType":"VariableDeclaration","scope":7128,"src":"6635:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7118,"name":"address","nodeType":"ElementaryTypeName","src":"6635:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7121,"mutability":"mutable","name":"blockNumber","nameLocation":"6668:11:21","nodeType":"VariableDeclaration","scope":7128,"src":"6660:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7120,"name":"uint256","nodeType":"ElementaryTypeName","src":"6660:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7123,"mutability":"mutable","name":"params","nameLocation":"6702:6:21","nodeType":"VariableDeclaration","scope":7128,"src":"6689:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7122,"name":"bytes","nodeType":"ElementaryTypeName","src":"6689:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6625:89:21"},"returnParameters":{"id":7127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7128,"src":"6744:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7125,"name":"uint256","nodeType":"ElementaryTypeName","src":"6744:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6743:9:21"},"scope":7245,"src":"6598:155:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7129,"nodeType":"StructuredDocumentation","src":"6759:111:21","text":" @notice module:voting\n @dev Returns whether `account` has cast a vote on `proposalId`."},"functionSelector":"43859632","id":7138,"implemented":false,"kind":"function","modifiers":[],"name":"hasVoted","nameLocation":"6884:8:21","nodeType":"FunctionDefinition","parameters":{"id":7134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7131,"mutability":"mutable","name":"proposalId","nameLocation":"6901:10:21","nodeType":"VariableDeclaration","scope":7138,"src":"6893:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6893:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7133,"mutability":"mutable","name":"account","nameLocation":"6921:7:21","nodeType":"VariableDeclaration","scope":7138,"src":"6913:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7132,"name":"address","nodeType":"ElementaryTypeName","src":"6913:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6892:37:21"},"returnParameters":{"id":7137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7138,"src":"6959:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7135,"name":"bool","nodeType":"ElementaryTypeName","src":"6959:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6958:6:21"},"scope":7245,"src":"6875:90:21","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":7139,"nodeType":"StructuredDocumentation","src":"6971:238:21","text":" @dev Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends\n {IGovernor-votingPeriod} blocks after the voting starts.\n Emits a {ProposalCreated} event."},"functionSelector":"7d5e81e2","id":7155,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nameLocation":"7223:7:21","nodeType":"FunctionDefinition","parameters":{"id":7151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7142,"mutability":"mutable","name":"targets","nameLocation":"7257:7:21","nodeType":"VariableDeclaration","scope":7155,"src":"7240:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7140,"name":"address","nodeType":"ElementaryTypeName","src":"7240:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7141,"nodeType":"ArrayTypeName","src":"7240:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7145,"mutability":"mutable","name":"values","nameLocation":"7291:6:21","nodeType":"VariableDeclaration","scope":7155,"src":"7274:23:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7143,"name":"uint256","nodeType":"ElementaryTypeName","src":"7274:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7144,"nodeType":"ArrayTypeName","src":"7274:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7148,"mutability":"mutable","name":"calldatas","nameLocation":"7322:9:21","nodeType":"VariableDeclaration","scope":7155,"src":"7307:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7146,"name":"bytes","nodeType":"ElementaryTypeName","src":"7307:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7147,"nodeType":"ArrayTypeName","src":"7307:7:21","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7150,"mutability":"mutable","name":"description","nameLocation":"7355:11:21","nodeType":"VariableDeclaration","scope":7155,"src":"7341:25:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7149,"name":"string","nodeType":"ElementaryTypeName","src":"7341:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7230:142:21"},"returnParameters":{"id":7154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7153,"mutability":"mutable","name":"proposalId","nameLocation":"7405:10:21","nodeType":"VariableDeclaration","scope":7155,"src":"7397:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7152,"name":"uint256","nodeType":"ElementaryTypeName","src":"7397:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7396:20:21"},"scope":7245,"src":"7214:203:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":7156,"nodeType":"StructuredDocumentation","src":"7423:329:21","text":" @dev Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the\n deadline to be reached.\n Emits a {ProposalExecuted} event.\n Note: some module can modify the requirements for execution, for example by adding an additional timelock."},"functionSelector":"2656227d","id":7172,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"7766:7:21","nodeType":"FunctionDefinition","parameters":{"id":7168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7159,"mutability":"mutable","name":"targets","nameLocation":"7800:7:21","nodeType":"VariableDeclaration","scope":7172,"src":"7783:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7157,"name":"address","nodeType":"ElementaryTypeName","src":"7783:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7158,"nodeType":"ArrayTypeName","src":"7783:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7162,"mutability":"mutable","name":"values","nameLocation":"7834:6:21","nodeType":"VariableDeclaration","scope":7172,"src":"7817:23:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7160,"name":"uint256","nodeType":"ElementaryTypeName","src":"7817:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7161,"nodeType":"ArrayTypeName","src":"7817:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7165,"mutability":"mutable","name":"calldatas","nameLocation":"7865:9:21","nodeType":"VariableDeclaration","scope":7172,"src":"7850:24:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7163,"name":"bytes","nodeType":"ElementaryTypeName","src":"7850:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7164,"nodeType":"ArrayTypeName","src":"7850:7:21","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7167,"mutability":"mutable","name":"descriptionHash","nameLocation":"7892:15:21","nodeType":"VariableDeclaration","scope":7172,"src":"7884:23:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7884:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7773:140:21"},"returnParameters":{"id":7171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7170,"mutability":"mutable","name":"proposalId","nameLocation":"7954:10:21","nodeType":"VariableDeclaration","scope":7172,"src":"7946:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7169,"name":"uint256","nodeType":"ElementaryTypeName","src":"7946:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7945:20:21"},"scope":7245,"src":"7757:209:21","stateMutability":"payable","virtual":true,"visibility":"public"},{"documentation":{"id":7173,"nodeType":"StructuredDocumentation","src":"7972:75:21","text":" @dev Cast a vote\n Emits a {VoteCast} event."},"functionSelector":"56781388","id":7182,"implemented":false,"kind":"function","modifiers":[],"name":"castVote","nameLocation":"8061:8:21","nodeType":"FunctionDefinition","parameters":{"id":7178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7175,"mutability":"mutable","name":"proposalId","nameLocation":"8078:10:21","nodeType":"VariableDeclaration","scope":7182,"src":"8070:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7174,"name":"uint256","nodeType":"ElementaryTypeName","src":"8070:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7177,"mutability":"mutable","name":"support","nameLocation":"8096:7:21","nodeType":"VariableDeclaration","scope":7182,"src":"8090:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7176,"name":"uint8","nodeType":"ElementaryTypeName","src":"8090:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"8069:35:21"},"returnParameters":{"id":7181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7180,"mutability":"mutable","name":"balance","nameLocation":"8137:7:21","nodeType":"VariableDeclaration","scope":7182,"src":"8129:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7179,"name":"uint256","nodeType":"ElementaryTypeName","src":"8129:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8128:17:21"},"scope":7245,"src":"8052:94:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":7183,"nodeType":"StructuredDocumentation","src":"8152:89:21","text":" @dev Cast a vote with a reason\n Emits a {VoteCast} event."},"functionSelector":"7b3c71d3","id":7194,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReason","nameLocation":"8255:18:21","nodeType":"FunctionDefinition","parameters":{"id":7190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7185,"mutability":"mutable","name":"proposalId","nameLocation":"8291:10:21","nodeType":"VariableDeclaration","scope":7194,"src":"8283:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7184,"name":"uint256","nodeType":"ElementaryTypeName","src":"8283:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7187,"mutability":"mutable","name":"support","nameLocation":"8317:7:21","nodeType":"VariableDeclaration","scope":7194,"src":"8311:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7186,"name":"uint8","nodeType":"ElementaryTypeName","src":"8311:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7189,"mutability":"mutable","name":"reason","nameLocation":"8350:6:21","nodeType":"VariableDeclaration","scope":7194,"src":"8334:22:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":7188,"name":"string","nodeType":"ElementaryTypeName","src":"8334:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8273:89:21"},"returnParameters":{"id":7193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7192,"mutability":"mutable","name":"balance","nameLocation":"8395:7:21","nodeType":"VariableDeclaration","scope":7194,"src":"8387:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"8387:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8386:17:21"},"scope":7245,"src":"8246:158:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":7195,"nodeType":"StructuredDocumentation","src":"8410:181:21","text":" @dev Cast a vote with a reason and additional encoded parameters\n Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params."},"functionSelector":"5f398a14","id":7208,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParams","nameLocation":"8605:27:21","nodeType":"FunctionDefinition","parameters":{"id":7204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7197,"mutability":"mutable","name":"proposalId","nameLocation":"8650:10:21","nodeType":"VariableDeclaration","scope":7208,"src":"8642:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7196,"name":"uint256","nodeType":"ElementaryTypeName","src":"8642:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7199,"mutability":"mutable","name":"support","nameLocation":"8676:7:21","nodeType":"VariableDeclaration","scope":7208,"src":"8670:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7198,"name":"uint8","nodeType":"ElementaryTypeName","src":"8670:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7201,"mutability":"mutable","name":"reason","nameLocation":"8709:6:21","nodeType":"VariableDeclaration","scope":7208,"src":"8693:22:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":7200,"name":"string","nodeType":"ElementaryTypeName","src":"8693:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7203,"mutability":"mutable","name":"params","nameLocation":"8738:6:21","nodeType":"VariableDeclaration","scope":7208,"src":"8725:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7202,"name":"bytes","nodeType":"ElementaryTypeName","src":"8725:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8632:118:21"},"returnParameters":{"id":7207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7206,"mutability":"mutable","name":"balance","nameLocation":"8783:7:21","nodeType":"VariableDeclaration","scope":7208,"src":"8775:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7205,"name":"uint256","nodeType":"ElementaryTypeName","src":"8775:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8774:17:21"},"scope":7245,"src":"8596:196:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":7209,"nodeType":"StructuredDocumentation","src":"8798:117:21","text":" @dev Cast a vote using the user's cryptographic signature.\n Emits a {VoteCast} event."},"functionSelector":"3bccf4fd","id":7224,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteBySig","nameLocation":"8929:13:21","nodeType":"FunctionDefinition","parameters":{"id":7220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7211,"mutability":"mutable","name":"proposalId","nameLocation":"8960:10:21","nodeType":"VariableDeclaration","scope":7224,"src":"8952:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7210,"name":"uint256","nodeType":"ElementaryTypeName","src":"8952:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7213,"mutability":"mutable","name":"support","nameLocation":"8986:7:21","nodeType":"VariableDeclaration","scope":7224,"src":"8980:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7212,"name":"uint8","nodeType":"ElementaryTypeName","src":"8980:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7215,"mutability":"mutable","name":"v","nameLocation":"9009:1:21","nodeType":"VariableDeclaration","scope":7224,"src":"9003:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7214,"name":"uint8","nodeType":"ElementaryTypeName","src":"9003:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7217,"mutability":"mutable","name":"r","nameLocation":"9028:1:21","nodeType":"VariableDeclaration","scope":7224,"src":"9020:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9020:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7219,"mutability":"mutable","name":"s","nameLocation":"9047:1:21","nodeType":"VariableDeclaration","scope":7224,"src":"9039:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8942:112:21"},"returnParameters":{"id":7223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7222,"mutability":"mutable","name":"balance","nameLocation":"9087:7:21","nodeType":"VariableDeclaration","scope":7224,"src":"9079:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7221,"name":"uint256","nodeType":"ElementaryTypeName","src":"9079:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9078:17:21"},"scope":7245,"src":"8920:176:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"documentation":{"id":7225,"nodeType":"StructuredDocumentation","src":"9102:223:21","text":" @dev Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature.\n Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params."},"functionSelector":"03420181","id":7244,"implemented":false,"kind":"function","modifiers":[],"name":"castVoteWithReasonAndParamsBySig","nameLocation":"9339:32:21","nodeType":"FunctionDefinition","parameters":{"id":7240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7227,"mutability":"mutable","name":"proposalId","nameLocation":"9389:10:21","nodeType":"VariableDeclaration","scope":7244,"src":"9381:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7226,"name":"uint256","nodeType":"ElementaryTypeName","src":"9381:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7229,"mutability":"mutable","name":"support","nameLocation":"9415:7:21","nodeType":"VariableDeclaration","scope":7244,"src":"9409:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7228,"name":"uint8","nodeType":"ElementaryTypeName","src":"9409:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7231,"mutability":"mutable","name":"reason","nameLocation":"9448:6:21","nodeType":"VariableDeclaration","scope":7244,"src":"9432:22:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":7230,"name":"string","nodeType":"ElementaryTypeName","src":"9432:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7233,"mutability":"mutable","name":"params","nameLocation":"9477:6:21","nodeType":"VariableDeclaration","scope":7244,"src":"9464:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7232,"name":"bytes","nodeType":"ElementaryTypeName","src":"9464:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7235,"mutability":"mutable","name":"v","nameLocation":"9499:1:21","nodeType":"VariableDeclaration","scope":7244,"src":"9493:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7234,"name":"uint8","nodeType":"ElementaryTypeName","src":"9493:5:21","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":7237,"mutability":"mutable","name":"r","nameLocation":"9518:1:21","nodeType":"VariableDeclaration","scope":7244,"src":"9510:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9510:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7239,"mutability":"mutable","name":"s","nameLocation":"9537:1:21","nodeType":"VariableDeclaration","scope":7244,"src":"9529:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9529:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9371:173:21"},"returnParameters":{"id":7243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7242,"mutability":"mutable","name":"balance","nameLocation":"9577:7:21","nodeType":"VariableDeclaration","scope":7244,"src":"9569:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7241,"name":"uint256","nodeType":"ElementaryTypeName","src":"9569:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9568:17:21"},"scope":7245,"src":"9330:256:21","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":7246,"src":"258:9330:21","usedErrors":[]}],"src":"108:9481:21"},"id":21},"@openzeppelin/contracts/governance/TimelockController.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/TimelockController.sol","exportedSymbols":{"AccessControl":[5454],"Address":[12931],"Context":[14324],"ERC165":[15326],"IAccessControl":[5527],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"Math":[16203],"Strings":[14573],"TimelockController":[8159]},"id":8160,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7247,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"117:23:22"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"../access/AccessControl.sol","id":7248,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8160,"sourceUnit":5455,"src":"142:37:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"../token/ERC721/IERC721Receiver.sol","id":7249,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8160,"sourceUnit":12065,"src":"180:45:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../token/ERC1155/IERC1155Receiver.sol","id":7250,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8160,"sourceUnit":9346,"src":"226:47:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../utils/Address.sol","id":7251,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8160,"sourceUnit":12932,"src":"274:30:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7253,"name":"AccessControl","nameLocations":["1061:13:22"],"nodeType":"IdentifierPath","referencedDeclaration":5454,"src":"1061:13:22"},"id":7254,"nodeType":"InheritanceSpecifier","src":"1061:13:22"},{"baseName":{"id":7255,"name":"IERC721Receiver","nameLocations":["1076:15:22"],"nodeType":"IdentifierPath","referencedDeclaration":12064,"src":"1076:15:22"},"id":7256,"nodeType":"InheritanceSpecifier","src":"1076:15:22"},{"baseName":{"id":7257,"name":"IERC1155Receiver","nameLocations":["1093:16:22"],"nodeType":"IdentifierPath","referencedDeclaration":9345,"src":"1093:16:22"},"id":7258,"nodeType":"InheritanceSpecifier","src":"1093:16:22"}],"canonicalName":"TimelockController","contractDependencies":[],"contractKind":"contract","documentation":{"id":7252,"nodeType":"StructuredDocumentation","src":"306:723:22","text":" @dev Contract module which acts as a timelocked controller. When set as the\n owner of an `Ownable` smart contract, it enforces a timelock on all\n `onlyOwner` maintenance operations. This gives time for users of the\n controlled contract to exit before a potentially dangerous maintenance\n operation is applied.\n By default, this contract is self administered, meaning administration tasks\n have to go through the timelock process. The proposer (resp executor) role\n is in charge of proposing (resp executing) operations. A common use case is\n to position this {TimelockController} as the owner of a smart contract, with\n a multisig or a DAO as the sole proposer.\n _Available since v3.3._"},"fullyImplemented":true,"id":8159,"linearizedBaseContracts":[8159,9345,12064,5454,15326,15338,5527,14324],"name":"TimelockController","nameLocation":"1039:18:22","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"0d3cf6fc","id":7263,"mutability":"constant","name":"TIMELOCK_ADMIN_ROLE","nameLocation":"1140:19:22","nodeType":"VariableDeclaration","scope":8159,"src":"1116:78:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1116:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"54494d454c4f434b5f41444d494e5f524f4c45","id":7261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1172:21:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""},"value":"TIMELOCK_ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5","typeString":"literal_string \"TIMELOCK_ADMIN_ROLE\""}],"id":7260,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1162:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1162:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"8f61f4f5","id":7268,"mutability":"constant","name":"PROPOSER_ROLE","nameLocation":"1224:13:22","nodeType":"VariableDeclaration","scope":8159,"src":"1200:66:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1200:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f504f5345525f524f4c45","id":7266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1250:15:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""},"value":"PROPOSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1","typeString":"literal_string \"PROPOSER_ROLE\""}],"id":7265,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1240:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"07bd0265","id":7273,"mutability":"constant","name":"EXECUTOR_ROLE","nameLocation":"1296:13:22","nodeType":"VariableDeclaration","scope":8159,"src":"1272:66:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1272:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4558454355544f525f524f4c45","id":7271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:15:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""},"value":"EXECUTOR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63","typeString":"literal_string \"EXECUTOR_ROLE\""}],"id":7270,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1312:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1312:26:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"b08e51c0","id":7278,"mutability":"constant","name":"CANCELLER_ROLE","nameLocation":"1368:14:22","nodeType":"VariableDeclaration","scope":8159,"src":"1344:68:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1344:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"43414e43454c4c45525f524f4c45","id":7276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1395:16:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""},"value":"CANCELLER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","typeString":"literal_string \"CANCELLER_ROLE\""}],"id":7275,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1385:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":7284,"mutability":"constant","name":"_DONE_TIMESTAMP","nameLocation":"1444:15:22","nodeType":"VariableDeclaration","scope":8159,"src":"1418:54:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7279,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"hexValue":"31","id":7282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1470:1:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":7281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1462:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7280,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:22","typeDescriptions":{}}},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7288,"mutability":"mutable","name":"_timestamps","nameLocation":"1515:11:22","nodeType":"VariableDeclaration","scope":8159,"src":"1479:47:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":7287,"keyType":{"id":7285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1479:27:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":7286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1498:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":7290,"mutability":"mutable","name":"_minDelay","nameLocation":"1548:9:22","nodeType":"VariableDeclaration","scope":8159,"src":"1532:25:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1532:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":7291,"nodeType":"StructuredDocumentation","src":"1564:83:22","text":" @dev Emitted when a call is scheduled as part of operation `id`."},"eventSelector":"4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca","id":7307,"name":"CallScheduled","nameLocation":"1658:13:22","nodeType":"EventDefinition","parameters":{"id":7306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7293,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1697:2:22","nodeType":"VariableDeclaration","scope":7307,"src":"1681:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7295,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"1725:5:22","nodeType":"VariableDeclaration","scope":7307,"src":"1709:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7294,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7297,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"1748:6:22","nodeType":"VariableDeclaration","scope":7307,"src":"1740:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7296,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7299,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1772:5:22","nodeType":"VariableDeclaration","scope":7307,"src":"1764:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7301,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"1793:4:22","nodeType":"VariableDeclaration","scope":7307,"src":"1787:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7300,"name":"bytes","nodeType":"ElementaryTypeName","src":"1787:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7303,"indexed":false,"mutability":"mutable","name":"predecessor","nameLocation":"1815:11:22","nodeType":"VariableDeclaration","scope":7307,"src":"1807:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1807:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7305,"indexed":false,"mutability":"mutable","name":"delay","nameLocation":"1844:5:22","nodeType":"VariableDeclaration","scope":7307,"src":"1836:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1671:184:22"},"src":"1652:204:22"},{"anonymous":false,"documentation":{"id":7308,"nodeType":"StructuredDocumentation","src":"1862:83:22","text":" @dev Emitted when a call is performed as part of operation `id`."},"eventSelector":"c2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58","id":7320,"name":"CallExecuted","nameLocation":"1956:12:22","nodeType":"EventDefinition","parameters":{"id":7319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7310,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1985:2:22","nodeType":"VariableDeclaration","scope":7320,"src":"1969:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7312,"indexed":true,"mutability":"mutable","name":"index","nameLocation":"2005:5:22","nodeType":"VariableDeclaration","scope":7320,"src":"1989:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7314,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"2020:6:22","nodeType":"VariableDeclaration","scope":7320,"src":"2012:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7313,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7316,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2036:5:22","nodeType":"VariableDeclaration","scope":7320,"src":"2028:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2028:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7318,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2049:4:22","nodeType":"VariableDeclaration","scope":7320,"src":"2043:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7317,"name":"bytes","nodeType":"ElementaryTypeName","src":"2043:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1968:86:22"},"src":"1950:105:22"},{"anonymous":false,"documentation":{"id":7321,"nodeType":"StructuredDocumentation","src":"2061:65:22","text":" @dev Emitted when operation `id` is cancelled."},"eventSelector":"baa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb70","id":7325,"name":"Cancelled","nameLocation":"2137:9:22","nodeType":"EventDefinition","parameters":{"id":7324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7323,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"2163:2:22","nodeType":"VariableDeclaration","scope":7325,"src":"2147:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2147:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2146:20:22"},"src":"2131:36:22"},{"anonymous":false,"documentation":{"id":7326,"nodeType":"StructuredDocumentation","src":"2173:89:22","text":" @dev Emitted when the minimum delay for future operations is modified."},"eventSelector":"11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5","id":7332,"name":"MinDelayChange","nameLocation":"2273:14:22","nodeType":"EventDefinition","parameters":{"id":7331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7328,"indexed":false,"mutability":"mutable","name":"oldDuration","nameLocation":"2296:11:22","nodeType":"VariableDeclaration","scope":7332,"src":"2288:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7327,"name":"uint256","nodeType":"ElementaryTypeName","src":"2288:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7330,"indexed":false,"mutability":"mutable","name":"newDuration","nameLocation":"2317:11:22","nodeType":"VariableDeclaration","scope":7332,"src":"2309:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7329,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2287:42:22"},"src":"2267:63:22"},{"body":{"id":7443,"nodeType":"Block","src":"3228:906:22","statements":[{"expression":{"arguments":[{"id":7347,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3252:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7348,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3273:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7346,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"3238:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":7349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:55:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7350,"nodeType":"ExpressionStatement","src":"3238:55:22"},{"expression":{"arguments":[{"id":7352,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"3317:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7353,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3332:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7351,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"3303:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3303:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7355,"nodeType":"ExpressionStatement","src":"3303:49:22"},{"expression":{"arguments":[{"id":7357,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7273,"src":"3376:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7358,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3391:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7356,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"3362:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3362:49:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7360,"nodeType":"ExpressionStatement","src":"3362:49:22"},{"expression":{"arguments":[{"id":7362,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"3435:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7363,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3451:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7361,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5390,"src":"3421:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":7364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3421:50:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7365,"nodeType":"ExpressionStatement","src":"3421:50:22"},{"expression":{"arguments":[{"id":7367,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3524:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":7370,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3553:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":7369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3545:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7368,"name":"address","nodeType":"ElementaryTypeName","src":"3545:7:22","typeDescriptions":{}}},"id":7371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3545:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7366,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"3513:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3513:46:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7373,"nodeType":"ExpressionStatement","src":"3513:46:22"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7374,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"3600:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3617:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3609:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7375,"name":"address","nodeType":"ElementaryTypeName","src":"3609:7:22","typeDescriptions":{}}},"id":7378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3600:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7386,"nodeType":"IfStatement","src":"3596:88:22","trueBody":{"id":7385,"nodeType":"Block","src":"3621:63:22","statements":[{"expression":{"arguments":[{"id":7381,"name":"TIMELOCK_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7263,"src":"3646:19:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7382,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"3667:5:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7380,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"3635:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:38:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7384,"nodeType":"ExpressionStatement","src":"3635:38:22"}]}},{"body":{"id":7412,"nodeType":"Block","src":"3786:118:22","statements":[{"expression":{"arguments":[{"id":7399,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"3811:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7400,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"3826:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7402,"indexExpression":{"id":7401,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"3836:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3826:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7398,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"3800:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7404,"nodeType":"ExpressionStatement","src":"3800:39:22"},{"expression":{"arguments":[{"id":7406,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"3864:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7407,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"3880:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7409,"indexExpression":{"id":7408,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"3890:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3880:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7405,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"3853:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3853:40:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7411,"nodeType":"ExpressionStatement","src":"3853:40:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"3759:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7392,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"3763:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3773:6:22","memberName":"length","nodeType":"MemberAccess","src":"3763:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3759:20:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7413,"initializationExpression":{"assignments":[7388],"declarations":[{"constant":false,"id":7388,"mutability":"mutable","name":"i","nameLocation":"3752:1:22","nodeType":"VariableDeclaration","scope":7413,"src":"3744:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7387,"name":"uint256","nodeType":"ElementaryTypeName","src":"3744:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7390,"initialValue":{"hexValue":"30","id":7389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3756:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3744:13:22"},"loopExpression":{"expression":{"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3781:3:22","subExpression":{"id":7395,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7388,"src":"3783:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7397,"nodeType":"ExpressionStatement","src":"3781:3:22"},"nodeType":"ForStatement","src":"3739:165:22"},{"body":{"id":7432,"nodeType":"Block","src":"3991:64:22","statements":[{"expression":{"arguments":[{"id":7426,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7273,"src":"4016:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":7427,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"4031:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7429,"indexExpression":{"id":7428,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"4041:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4031:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7425,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5362,"src":"4005:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7431,"nodeType":"ExpressionStatement","src":"4005:39:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"3964:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7419,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"3968:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":7420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3978:6:22","memberName":"length","nodeType":"MemberAccess","src":"3968:16:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:20:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7433,"initializationExpression":{"assignments":[7415],"declarations":[{"constant":false,"id":7415,"mutability":"mutable","name":"i","nameLocation":"3957:1:22","nodeType":"VariableDeclaration","scope":7433,"src":"3949:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7414,"name":"uint256","nodeType":"ElementaryTypeName","src":"3949:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7417,"initialValue":{"hexValue":"30","id":7416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3961:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3949:13:22"},"loopExpression":{"expression":{"id":7423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3986:3:22","subExpression":{"id":7422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7415,"src":"3988:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7424,"nodeType":"ExpressionStatement","src":"3986:3:22"},"nodeType":"ForStatement","src":"3944:111:22"},{"expression":{"id":7436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7434,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"4065:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7435,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7335,"src":"4077:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4065:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7437,"nodeType":"ExpressionStatement","src":"4065:20:22"},{"eventCall":{"arguments":[{"hexValue":"30","id":7439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7440,"name":"minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7335,"src":"4118:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7438,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"4100:14:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4100:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7442,"nodeType":"EmitStatement","src":"4095:32:22"}]},"documentation":{"id":7333,"nodeType":"StructuredDocumentation","src":"2336:748:22","text":" @dev Initializes the contract with the following parameters:\n - `minDelay`: initial minimum delay for operations\n - `proposers`: accounts to be granted proposer and canceller roles\n - `executors`: accounts to be granted executor role\n - `admin`: optional account to be granted admin role; disable with zero address\n IMPORTANT: The optional admin can aid with initial configuration of roles after deployment\n without being subject to delay, but this role should be subsequently renounced in favor of\n administration through timelocked proposals. Previous versions of this contract would assign\n this admin to the deployer automatically and should be renounced as well."},"id":7444,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7335,"mutability":"mutable","name":"minDelay","nameLocation":"3118:8:22","nodeType":"VariableDeclaration","scope":7444,"src":"3110:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7334,"name":"uint256","nodeType":"ElementaryTypeName","src":"3110:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7338,"mutability":"mutable","name":"proposers","nameLocation":"3153:9:22","nodeType":"VariableDeclaration","scope":7444,"src":"3136:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7336,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7337,"nodeType":"ArrayTypeName","src":"3136:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7341,"mutability":"mutable","name":"executors","nameLocation":"3189:9:22","nodeType":"VariableDeclaration","scope":7444,"src":"3172:26:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7339,"name":"address","nodeType":"ElementaryTypeName","src":"3172:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7340,"nodeType":"ArrayTypeName","src":"3172:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7343,"mutability":"mutable","name":"admin","nameLocation":"3216:5:22","nodeType":"VariableDeclaration","scope":7444,"src":"3208:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7342,"name":"address","nodeType":"ElementaryTypeName","src":"3208:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3100:127:22"},"returnParameters":{"id":7345,"nodeType":"ParameterList","parameters":[],"src":"3228:0:22"},"scope":8159,"src":"3089:1045:22","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7466,"nodeType":"Block","src":"4458:114:22","statements":[{"condition":{"id":7456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4472:26:22","subExpression":{"arguments":[{"id":7450,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4481:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":7453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4495:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4487:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7451,"name":"address","nodeType":"ElementaryTypeName","src":"4487:7:22","typeDescriptions":{}}},"id":7454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4487:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7449,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"4473:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:25:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7464,"nodeType":"IfStatement","src":"4468:87:22","trueBody":{"id":7463,"nodeType":"Block","src":"4500:55:22","statements":[{"expression":{"arguments":[{"id":7458,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4525:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7459,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"4531:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:12:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7457,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[5231,5270],"referencedDeclaration":5270,"src":"4514:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":7461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:30:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7462,"nodeType":"ExpressionStatement","src":"4514:30:22"}]}},{"id":7465,"nodeType":"PlaceholderStatement","src":"4564:1:22"}]},"documentation":{"id":7445,"nodeType":"StructuredDocumentation","src":"4140:271:22","text":" @dev Modifier to make a function callable only by a certain role. In\n addition to checking the sender's role, `address(0)` 's role is also\n considered. Granting a role to `address(0)` is equivalent to enabling\n this role for everyone."},"id":7467,"name":"onlyRoleOrOpenRole","nameLocation":"4425:18:22","nodeType":"ModifierDefinition","parameters":{"id":7448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7447,"mutability":"mutable","name":"role","nameLocation":"4452:4:22","nodeType":"VariableDeclaration","scope":7467,"src":"4444:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4443:14:22"},"src":"4416:156:22","virtual":false,"visibility":"internal"},{"body":{"id":7471,"nodeType":"Block","src":"4701:2:22","statements":[]},"documentation":{"id":7468,"nodeType":"StructuredDocumentation","src":"4578:91:22","text":" @dev Contract might receive/hold ETH as part of the maintenance process."},"id":7472,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7469,"nodeType":"ParameterList","parameters":[],"src":"4681:2:22"},"returnParameters":{"id":7470,"nodeType":"ParameterList","parameters":[],"src":"4701:0:22"},"scope":8159,"src":"4674:29:22","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[5199,15337],"body":{"id":7495,"nodeType":"Block","src":"4885:113:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7483,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"4902:11:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7485,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9345,"src":"4922:16:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$9345_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$9345_$","typeString":"type(contract IERC1155Receiver)"}],"id":7484,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4917:4:22","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4917:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$9345","typeString":"type(contract IERC1155Receiver)"}},"id":7487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4940:11:22","memberName":"interfaceId","nodeType":"MemberAccess","src":"4917:34:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4902:49:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7491,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7475,"src":"4979:11:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7489,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4955:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TimelockController_$8159_$","typeString":"type(contract super TimelockController)"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4961:17:22","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":5199,"src":"4955:23:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":7492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4955:36:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4902:89:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7482,"id":7494,"nodeType":"Return","src":"4895:96:22"}]},"documentation":{"id":7473,"nodeType":"StructuredDocumentation","src":"4709:56:22","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7496,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4779:17:22","nodeType":"FunctionDefinition","overrides":{"id":7479,"nodeType":"OverrideSpecifier","overrides":[{"id":7477,"name":"IERC165","nameLocations":["4846:7:22"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"4846:7:22"},{"id":7478,"name":"AccessControl","nameLocations":["4855:13:22"],"nodeType":"IdentifierPath","referencedDeclaration":5454,"src":"4855:13:22"}],"src":"4837:32:22"},"parameters":{"id":7476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7475,"mutability":"mutable","name":"interfaceId","nameLocation":"4804:11:22","nodeType":"VariableDeclaration","scope":7496,"src":"4797:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7474,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4797:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4796:20:22"},"returnParameters":{"id":7482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7496,"src":"4879:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7480,"name":"bool","nodeType":"ElementaryTypeName","src":"4879:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4878:6:22"},"scope":8159,"src":"4770:228:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7510,"nodeType":"Block","src":"5233:44:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7505,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7499,"src":"5263:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7504,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"5250:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":7506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5250:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5269:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5250:20:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7503,"id":7509,"nodeType":"Return","src":"5243:27:22"}]},"documentation":{"id":7497,"nodeType":"StructuredDocumentation","src":"5004:145:22","text":" @dev Returns whether an id correspond to a registered operation. This\n includes both Pending, Ready and Done operations."},"functionSelector":"31d50750","id":7511,"implemented":true,"kind":"function","modifiers":[],"name":"isOperation","nameLocation":"5163:11:22","nodeType":"FunctionDefinition","parameters":{"id":7500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7499,"mutability":"mutable","name":"id","nameLocation":"5183:2:22","nodeType":"VariableDeclaration","scope":7511,"src":"5175:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5175:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5174:12:22"},"returnParameters":{"id":7503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7502,"mutability":"mutable","name":"registered","nameLocation":"5221:10:22","nodeType":"VariableDeclaration","scope":7511,"src":"5216:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7501,"name":"bool","nodeType":"ElementaryTypeName","src":"5216:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5215:17:22"},"scope":8159,"src":"5154:123:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7525,"nodeType":"Block","src":"5442:58:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7520,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"5472:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7519,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"5459:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":7521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5459:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7522,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"5478:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5459:34:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7518,"id":7524,"nodeType":"Return","src":"5452:41:22"}]},"documentation":{"id":7512,"nodeType":"StructuredDocumentation","src":"5283:71:22","text":" @dev Returns whether an operation is pending or not."},"functionSelector":"584b153e","id":7526,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationPending","nameLocation":"5368:18:22","nodeType":"FunctionDefinition","parameters":{"id":7515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7514,"mutability":"mutable","name":"id","nameLocation":"5395:2:22","nodeType":"VariableDeclaration","scope":7526,"src":"5387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5387:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5386:12:22"},"returnParameters":{"id":7518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7517,"mutability":"mutable","name":"pending","nameLocation":"5433:7:22","nodeType":"VariableDeclaration","scope":7526,"src":"5428:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7516,"name":"bool","nodeType":"ElementaryTypeName","src":"5428:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5427:14:22"},"scope":8159,"src":"5359:141:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7549,"nodeType":"Block","src":"5659:129:22","statements":[{"assignments":[7535],"declarations":[{"constant":false,"id":7535,"mutability":"mutable","name":"timestamp","nameLocation":"5677:9:22","nodeType":"VariableDeclaration","scope":7549,"src":"5669:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7534,"name":"uint256","nodeType":"ElementaryTypeName","src":"5669:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7539,"initialValue":{"arguments":[{"id":7537,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"5702:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7536,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"5689:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":7538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5689:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5669:36:22"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7540,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7535,"src":"5722:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7541,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"5734:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5722:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7543,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7535,"src":"5753:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":7544,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5766:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5772:9:22","memberName":"timestamp","nodeType":"MemberAccess","src":"5766:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5753:28:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5722:59:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7533,"id":7548,"nodeType":"Return","src":"5715:66:22"}]},"documentation":{"id":7527,"nodeType":"StructuredDocumentation","src":"5506:69:22","text":" @dev Returns whether an operation is ready or not."},"functionSelector":"13bc9f20","id":7550,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationReady","nameLocation":"5589:16:22","nodeType":"FunctionDefinition","parameters":{"id":7530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7529,"mutability":"mutable","name":"id","nameLocation":"5614:2:22","nodeType":"VariableDeclaration","scope":7550,"src":"5606:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5606:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5605:12:22"},"returnParameters":{"id":7533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7532,"mutability":"mutable","name":"ready","nameLocation":"5652:5:22","nodeType":"VariableDeclaration","scope":7550,"src":"5647:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7531,"name":"bool","nodeType":"ElementaryTypeName","src":"5647:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5646:12:22"},"scope":8159,"src":"5580:208:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7564,"nodeType":"Block","src":"5944:59:22","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7559,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7553,"src":"5974:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7558,"name":"getTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7578,"src":"5961:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":7560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5961:16:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7561,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"5981:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5961:35:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7557,"id":7563,"nodeType":"Return","src":"5954:42:22"}]},"documentation":{"id":7551,"nodeType":"StructuredDocumentation","src":"5794:68:22","text":" @dev Returns whether an operation is done or not."},"functionSelector":"2ab0f529","id":7565,"implemented":true,"kind":"function","modifiers":[],"name":"isOperationDone","nameLocation":"5876:15:22","nodeType":"FunctionDefinition","parameters":{"id":7554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7553,"mutability":"mutable","name":"id","nameLocation":"5900:2:22","nodeType":"VariableDeclaration","scope":7565,"src":"5892:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5892:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5891:12:22"},"returnParameters":{"id":7557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7556,"mutability":"mutable","name":"done","nameLocation":"5938:4:22","nodeType":"VariableDeclaration","scope":7565,"src":"5933:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7555,"name":"bool","nodeType":"ElementaryTypeName","src":"5933:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5932:11:22"},"scope":8159,"src":"5867:136:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7577,"nodeType":"Block","src":"6232:39:22","statements":[{"expression":{"baseExpression":{"id":7573,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"6249:11:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":7575,"indexExpression":{"id":7574,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7568,"src":"6261:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6249:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7572,"id":7576,"nodeType":"Return","src":"6242:22:22"}]},"documentation":{"id":7566,"nodeType":"StructuredDocumentation","src":"6009:136:22","text":" @dev Returns the timestamp at with an operation becomes ready (0 for\n unset operations, 1 for done operations)."},"functionSelector":"d45c4435","id":7578,"implemented":true,"kind":"function","modifiers":[],"name":"getTimestamp","nameLocation":"6159:12:22","nodeType":"FunctionDefinition","parameters":{"id":7569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7568,"mutability":"mutable","name":"id","nameLocation":"6180:2:22","nodeType":"VariableDeclaration","scope":7578,"src":"6172:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6172:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6171:12:22"},"returnParameters":{"id":7572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7571,"mutability":"mutable","name":"timestamp","nameLocation":"6221:9:22","nodeType":"VariableDeclaration","scope":7578,"src":"6213:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7570,"name":"uint256","nodeType":"ElementaryTypeName","src":"6213:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6212:19:22"},"scope":8159,"src":"6150:121:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7586,"nodeType":"Block","src":"6527:33:22","statements":[{"expression":{"id":7584,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"6544:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7583,"id":7585,"nodeType":"Return","src":"6537:16:22"}]},"documentation":{"id":7579,"nodeType":"StructuredDocumentation","src":"6277:175:22","text":" @dev Returns the minimum delay for an operation to become valid.\n This value can be changed by executing an operation that calls `updateDelay`."},"functionSelector":"f27a0c92","id":7587,"implemented":true,"kind":"function","modifiers":[],"name":"getMinDelay","nameLocation":"6466:11:22","nodeType":"FunctionDefinition","parameters":{"id":7580,"nodeType":"ParameterList","parameters":[],"src":"6477:2:22"},"returnParameters":{"id":7583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7582,"mutability":"mutable","name":"duration","nameLocation":"6517:8:22","nodeType":"VariableDeclaration","scope":7587,"src":"6509:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7581,"name":"uint256","nodeType":"ElementaryTypeName","src":"6509:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6508:18:22"},"scope":8159,"src":"6457:103:22","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7614,"nodeType":"Block","src":"6872:85:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":7606,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7590,"src":"6910:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7592,"src":"6918:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7608,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7594,"src":"6925:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7609,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7596,"src":"6931:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7610,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7598,"src":"6944:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7604,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6899:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6903:6:22","memberName":"encode","nodeType":"MemberAccess","src":"6899:10:22","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6899:50:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7603,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6889:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6889:61:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7602,"id":7613,"nodeType":"Return","src":"6882:68:22"}]},"documentation":{"id":7588,"nodeType":"StructuredDocumentation","src":"6566:102:22","text":" @dev Returns the identifier of an operation containing a single\n transaction."},"functionSelector":"8065657f","id":7615,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperation","nameLocation":"6682:13:22","nodeType":"FunctionDefinition","parameters":{"id":7599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7590,"mutability":"mutable","name":"target","nameLocation":"6713:6:22","nodeType":"VariableDeclaration","scope":7615,"src":"6705:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7589,"name":"address","nodeType":"ElementaryTypeName","src":"6705:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7592,"mutability":"mutable","name":"value","nameLocation":"6737:5:22","nodeType":"VariableDeclaration","scope":7615,"src":"6729:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7591,"name":"uint256","nodeType":"ElementaryTypeName","src":"6729:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7594,"mutability":"mutable","name":"data","nameLocation":"6767:4:22","nodeType":"VariableDeclaration","scope":7615,"src":"6752:19:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7593,"name":"bytes","nodeType":"ElementaryTypeName","src":"6752:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7596,"mutability":"mutable","name":"predecessor","nameLocation":"6789:11:22","nodeType":"VariableDeclaration","scope":7615,"src":"6781:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6781:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7598,"mutability":"mutable","name":"salt","nameLocation":"6818:4:22","nodeType":"VariableDeclaration","scope":7615,"src":"6810:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6810:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6695:133:22"},"returnParameters":{"id":7602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7601,"mutability":"mutable","name":"hash","nameLocation":"6866:4:22","nodeType":"VariableDeclaration","scope":7615,"src":"6858:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6858:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6857:14:22"},"scope":8159,"src":"6673:284:22","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":7645,"nodeType":"Block","src":"7307:91:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":7637,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7619,"src":"7345:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":7638,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7622,"src":"7354:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":7639,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7625,"src":"7362:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":7640,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7627,"src":"7372:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7641,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"7385:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7635,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7334:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7338:6:22","memberName":"encode","nodeType":"MemberAccess","src":"7334:10:22","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7334:56:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7634,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7324:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7324:67:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7633,"id":7644,"nodeType":"Return","src":"7317:74:22"}]},"documentation":{"id":7616,"nodeType":"StructuredDocumentation","src":"6963:105:22","text":" @dev Returns the identifier of an operation containing a batch of\n transactions."},"functionSelector":"b1c5f427","id":7646,"implemented":true,"kind":"function","modifiers":[],"name":"hashOperationBatch","nameLocation":"7082:18:22","nodeType":"FunctionDefinition","parameters":{"id":7630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7619,"mutability":"mutable","name":"targets","nameLocation":"7129:7:22","nodeType":"VariableDeclaration","scope":7646,"src":"7110:26:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7617,"name":"address","nodeType":"ElementaryTypeName","src":"7110:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7618,"nodeType":"ArrayTypeName","src":"7110:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7622,"mutability":"mutable","name":"values","nameLocation":"7165:6:22","nodeType":"VariableDeclaration","scope":7646,"src":"7146:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7620,"name":"uint256","nodeType":"ElementaryTypeName","src":"7146:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7621,"nodeType":"ArrayTypeName","src":"7146:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7625,"mutability":"mutable","name":"payloads","nameLocation":"7198:8:22","nodeType":"VariableDeclaration","scope":7646,"src":"7181:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7623,"name":"bytes","nodeType":"ElementaryTypeName","src":"7181:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7624,"nodeType":"ArrayTypeName","src":"7181:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7627,"mutability":"mutable","name":"predecessor","nameLocation":"7224:11:22","nodeType":"VariableDeclaration","scope":7646,"src":"7216:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7216:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7629,"mutability":"mutable","name":"salt","nameLocation":"7253:4:22","nodeType":"VariableDeclaration","scope":7646,"src":"7245:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7245:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7100:163:22"},"returnParameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"hash","nameLocation":"7301:4:22","nodeType":"VariableDeclaration","scope":7646,"src":"7293:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7293:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7292:14:22"},"scope":8159,"src":"7073:325:22","stateMutability":"pure","virtual":true,"visibility":"public"},{"body":{"id":7690,"nodeType":"Block","src":"7831:189:22","statements":[{"assignments":[7666],"declarations":[{"constant":false,"id":7666,"mutability":"mutable","name":"id","nameLocation":"7849:2:22","nodeType":"VariableDeclaration","scope":7690,"src":"7841:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7674,"initialValue":{"arguments":[{"id":7668,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7649,"src":"7868:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7651,"src":"7876:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7670,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"7883:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7671,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"7889:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7672,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7657,"src":"7902:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7667,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7615,"src":"7854:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7854:53:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7841:66:22"},{"expression":{"arguments":[{"id":7676,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7666,"src":"7927:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7677,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"7931:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7675,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"7917:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":7678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7917:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7679,"nodeType":"ExpressionStatement","src":"7917:20:22"},{"eventCall":{"arguments":[{"id":7681,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7666,"src":"7966:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7970:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7683,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7649,"src":"7973:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7684,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7651,"src":"7981:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7685,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"7988:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7686,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"7994:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7687,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7659,"src":"8007:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7680,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"7952:13:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7952:61:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7689,"nodeType":"EmitStatement","src":"7947:66:22"}]},"documentation":{"id":7647,"nodeType":"StructuredDocumentation","src":"7404:209:22","text":" @dev Schedule an operation containing a single transaction.\n Emits a {CallScheduled} event.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"01d5062a","id":7691,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7662,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"7816:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7663,"kind":"modifierInvocation","modifierName":{"id":7661,"name":"onlyRole","nameLocations":["7807:8:22"],"nodeType":"IdentifierPath","referencedDeclaration":5177,"src":"7807:8:22"},"nodeType":"ModifierInvocation","src":"7807:23:22"}],"name":"schedule","nameLocation":"7627:8:22","nodeType":"FunctionDefinition","parameters":{"id":7660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7649,"mutability":"mutable","name":"target","nameLocation":"7653:6:22","nodeType":"VariableDeclaration","scope":7691,"src":"7645:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7648,"name":"address","nodeType":"ElementaryTypeName","src":"7645:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7651,"mutability":"mutable","name":"value","nameLocation":"7677:5:22","nodeType":"VariableDeclaration","scope":7691,"src":"7669:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7650,"name":"uint256","nodeType":"ElementaryTypeName","src":"7669:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7653,"mutability":"mutable","name":"data","nameLocation":"7707:4:22","nodeType":"VariableDeclaration","scope":7691,"src":"7692:19:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7652,"name":"bytes","nodeType":"ElementaryTypeName","src":"7692:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7655,"mutability":"mutable","name":"predecessor","nameLocation":"7729:11:22","nodeType":"VariableDeclaration","scope":7691,"src":"7721:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7657,"mutability":"mutable","name":"salt","nameLocation":"7758:4:22","nodeType":"VariableDeclaration","scope":7691,"src":"7750:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7659,"mutability":"mutable","name":"delay","nameLocation":"7780:5:22","nodeType":"VariableDeclaration","scope":7691,"src":"7772:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7658,"name":"uint256","nodeType":"ElementaryTypeName","src":"7772:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7635:156:22"},"returnParameters":{"id":7664,"nodeType":"ParameterList","parameters":[],"src":"7831:0:22"},"scope":8159,"src":"7618:402:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7775,"nodeType":"Block","src":"8522:465:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7714,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"8540:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8548:6:22","memberName":"length","nodeType":"MemberAccess","src":"8540:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7716,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7698,"src":"8558:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8565:6:22","memberName":"length","nodeType":"MemberAccess","src":"8558:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:31:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":7719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8573:37:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":7713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8532:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8532:79:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7721,"nodeType":"ExpressionStatement","src":"8532:79:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7723,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"8629:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8637:6:22","memberName":"length","nodeType":"MemberAccess","src":"8629:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7725,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7701,"src":"8647:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8656:6:22","memberName":"length","nodeType":"MemberAccess","src":"8647:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8629:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":7728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8664:37:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":7722,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8621:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8621:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7730,"nodeType":"ExpressionStatement","src":"8621:81:22"},{"assignments":[7732],"declarations":[{"constant":false,"id":7732,"mutability":"mutable","name":"id","nameLocation":"8721:2:22","nodeType":"VariableDeclaration","scope":7775,"src":"8713:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8713:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7740,"initialValue":{"arguments":[{"id":7734,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"8745:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":7735,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7698,"src":"8754:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":7736,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7701,"src":"8762:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":7737,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7703,"src":"8772:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7738,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7705,"src":"8785:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7733,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7646,"src":"8726:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":7739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8726:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8713:77:22"},{"expression":{"arguments":[{"id":7742,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"8810:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7743,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"8814:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7741,"name":"_schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"8800:9:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":7744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8800:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7745,"nodeType":"ExpressionStatement","src":"8800:20:22"},{"body":{"id":7773,"nodeType":"Block","src":"8875:106:22","statements":[{"eventCall":{"arguments":[{"id":7758,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"8908:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8912:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":7760,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"8915:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7762,"indexExpression":{"id":7761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8923:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8915:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7763,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7698,"src":"8927:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7765,"indexExpression":{"id":7764,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8934:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8927:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":7766,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7701,"src":"8938:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":7768,"indexExpression":{"id":7767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8947:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8938:11:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7769,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7703,"src":"8951:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7770,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"8964:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7757,"name":"CallScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7307,"src":"8894:13:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory,bytes32,uint256)"}},"id":7771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8894:76:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7772,"nodeType":"EmitStatement","src":"8889:81:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8850:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7751,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7695,"src":"8854:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8862:6:22","memberName":"length","nodeType":"MemberAccess","src":"8854:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8850:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7774,"initializationExpression":{"assignments":[7747],"declarations":[{"constant":false,"id":7747,"mutability":"mutable","name":"i","nameLocation":"8843:1:22","nodeType":"VariableDeclaration","scope":7774,"src":"8835:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7746,"name":"uint256","nodeType":"ElementaryTypeName","src":"8835:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7749,"initialValue":{"hexValue":"30","id":7748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8847:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8835:13:22"},"loopExpression":{"expression":{"id":7755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8870:3:22","subExpression":{"id":7754,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7747,"src":"8872:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7756,"nodeType":"ExpressionStatement","src":"8870:3:22"},"nodeType":"ForStatement","src":"8830:151:22"}]},"documentation":{"id":7692,"nodeType":"StructuredDocumentation","src":"8026:243:22","text":" @dev Schedule an operation containing a batch of transactions.\n Emits one {CallScheduled} event per transaction in the batch.\n Requirements:\n - the caller must have the 'proposer' role."},"functionSelector":"8f2a0bb0","id":7776,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7710,"name":"PROPOSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7268,"src":"8507:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7711,"kind":"modifierInvocation","modifierName":{"id":7709,"name":"onlyRole","nameLocations":["8498:8:22"],"nodeType":"IdentifierPath","referencedDeclaration":5177,"src":"8498:8:22"},"nodeType":"ModifierInvocation","src":"8498:23:22"}],"name":"scheduleBatch","nameLocation":"8283:13:22","nodeType":"FunctionDefinition","parameters":{"id":7708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7695,"mutability":"mutable","name":"targets","nameLocation":"8325:7:22","nodeType":"VariableDeclaration","scope":7776,"src":"8306:26:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7693,"name":"address","nodeType":"ElementaryTypeName","src":"8306:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7694,"nodeType":"ArrayTypeName","src":"8306:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7698,"mutability":"mutable","name":"values","nameLocation":"8361:6:22","nodeType":"VariableDeclaration","scope":7776,"src":"8342:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8342:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7697,"nodeType":"ArrayTypeName","src":"8342:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7701,"mutability":"mutable","name":"payloads","nameLocation":"8394:8:22","nodeType":"VariableDeclaration","scope":7776,"src":"8377:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7699,"name":"bytes","nodeType":"ElementaryTypeName","src":"8377:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7700,"nodeType":"ArrayTypeName","src":"8377:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7703,"mutability":"mutable","name":"predecessor","nameLocation":"8420:11:22","nodeType":"VariableDeclaration","scope":7776,"src":"8412:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8412:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7705,"mutability":"mutable","name":"salt","nameLocation":"8449:4:22","nodeType":"VariableDeclaration","scope":7776,"src":"8441:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8441:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7707,"mutability":"mutable","name":"delay","nameLocation":"8471:5:22","nodeType":"VariableDeclaration","scope":7776,"src":"8463:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7706,"name":"uint256","nodeType":"ElementaryTypeName","src":"8463:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8296:186:22"},"returnParameters":{"id":7712,"nodeType":"ParameterList","parameters":[],"src":"8522:0:22"},"scope":8159,"src":"8274:713:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7809,"nodeType":"Block","src":"9143:227:22","statements":[{"expression":{"arguments":[{"id":7788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9161:16:22","subExpression":{"arguments":[{"id":7786,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7779,"src":"9174:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7785,"name":"isOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7511,"src":"9162:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:15:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c7265616479207363686564756c6564","id":7789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9179:49:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""},"value":"TimelockController: operation already scheduled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe","typeString":"literal_string \"TimelockController: operation already scheduled\""}],"id":7784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9153:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9153:76:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7791,"nodeType":"ExpressionStatement","src":"9153:76:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7793,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"9247:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7794,"name":"getMinDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"9256:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9256:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9247:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e742064656c6179","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9271:40:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""},"value":"TimelockController: insufficient delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca","typeString":"literal_string \"TimelockController: insufficient delay\""}],"id":7792,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9239:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9239:73:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7799,"nodeType":"ExpressionStatement","src":"9239:73:22"},{"expression":{"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7800,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"9322:11:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":7802,"indexExpression":{"id":7801,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7779,"src":"9334:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9322:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7803,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9340:5:22","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9346:9:22","memberName":"timestamp","nodeType":"MemberAccess","src":"9340:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":7805,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"9358:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9340:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9322:41:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7808,"nodeType":"ExpressionStatement","src":"9322:41:22"}]},"documentation":{"id":7777,"nodeType":"StructuredDocumentation","src":"8993:91:22","text":" @dev Schedule an operation that is to becomes valid after a given delay."},"id":7810,"implemented":true,"kind":"function","modifiers":[],"name":"_schedule","nameLocation":"9098:9:22","nodeType":"FunctionDefinition","parameters":{"id":7782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7779,"mutability":"mutable","name":"id","nameLocation":"9116:2:22","nodeType":"VariableDeclaration","scope":7810,"src":"9108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9108:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7781,"mutability":"mutable","name":"delay","nameLocation":"9128:5:22","nodeType":"VariableDeclaration","scope":7810,"src":"9120:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"9120:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9107:27:22"},"returnParameters":{"id":7783,"nodeType":"ParameterList","parameters":[],"src":"9143:0:22"},"scope":8159,"src":"9089:281:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7835,"nodeType":"Block","src":"9580:162:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":7821,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7813,"src":"9617:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7820,"name":"isOperationPending","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7526,"src":"9598:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":7822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616e6e6f742062652063616e63656c6c6564","id":7823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9622:51:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""},"value":"TimelockController: operation cannot be cancelled"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41","typeString":"literal_string \"TimelockController: operation cannot be cancelled\""}],"id":7819,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9590:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9590:84:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7825,"nodeType":"ExpressionStatement","src":"9590:84:22"},{"expression":{"id":7829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9684:22:22","subExpression":{"baseExpression":{"id":7826,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"9691:11:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":7828,"indexExpression":{"id":7827,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7813,"src":"9703:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9691:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7830,"nodeType":"ExpressionStatement","src":"9684:22:22"},{"eventCall":{"arguments":[{"id":7832,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7813,"src":"9732:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7831,"name":"Cancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7325,"src":"9722:9:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9722:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7834,"nodeType":"EmitStatement","src":"9717:18:22"}]},"documentation":{"id":7811,"nodeType":"StructuredDocumentation","src":"9376:131:22","text":" @dev Cancel an operation.\n Requirements:\n - the caller must have the 'canceller' role."},"functionSelector":"c4d252f5","id":7836,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7816,"name":"CANCELLER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"9564:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7817,"kind":"modifierInvocation","modifierName":{"id":7815,"name":"onlyRole","nameLocations":["9555:8:22"],"nodeType":"IdentifierPath","referencedDeclaration":5177,"src":"9555:8:22"},"nodeType":"ModifierInvocation","src":"9555:24:22"}],"name":"cancel","nameLocation":"9521:6:22","nodeType":"FunctionDefinition","parameters":{"id":7814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7813,"mutability":"mutable","name":"id","nameLocation":"9536:2:22","nodeType":"VariableDeclaration","scope":7836,"src":"9528:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9528:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9527:12:22"},"returnParameters":{"id":7818,"nodeType":"ParameterList","parameters":[],"src":"9580:0:22"},"scope":8159,"src":"9512:230:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7886,"nodeType":"Block","src":"10426:249:22","statements":[{"assignments":[7854],"declarations":[{"constant":false,"id":7854,"mutability":"mutable","name":"id","nameLocation":"10444:2:22","nodeType":"VariableDeclaration","scope":7886,"src":"10436:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10436:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7862,"initialValue":{"arguments":[{"id":7856,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"10463:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"10471:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7858,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7843,"src":"10478:7:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7859,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7845,"src":"10487:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7860,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7847,"src":"10500:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7855,"name":"hashOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7615,"src":"10449:13:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10449:56:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10436:69:22"},{"expression":{"arguments":[{"id":7864,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"10528:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7865,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7845,"src":"10532:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7863,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8045,"src":"10516:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":7866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10516:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7867,"nodeType":"ExpressionStatement","src":"10516:28:22"},{"expression":{"arguments":[{"id":7869,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"10563:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7870,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"10571:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7871,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7843,"src":"10578:7:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":7868,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8015,"src":"10554:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10554:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7873,"nodeType":"ExpressionStatement","src":"10554:32:22"},{"eventCall":{"arguments":[{"id":7875,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"10614:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":7876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10618:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":7877,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7839,"src":"10621:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7841,"src":"10629:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7879,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7843,"src":"10636:7:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":7874,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"10601:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10601:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7881,"nodeType":"EmitStatement","src":"10596:48:22"},{"expression":{"arguments":[{"id":7883,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7854,"src":"10665:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7882,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8065,"src":"10654:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10654:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7885,"nodeType":"ExpressionStatement","src":"10654:14:22"}]},"documentation":{"id":7837,"nodeType":"StructuredDocumentation","src":"9748:215:22","text":" @dev Execute an (ready) operation containing a single transaction.\n Emits a {CallExecuted} event.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"134008d3","id":7887,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7850,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7273,"src":"10411:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7851,"kind":"modifierInvocation","modifierName":{"id":7849,"name":"onlyRoleOrOpenRole","nameLocations":["10392:18:22"],"nodeType":"IdentifierPath","referencedDeclaration":7467,"src":"10392:18:22"},"nodeType":"ModifierInvocation","src":"10392:33:22"}],"name":"execute","nameLocation":"10225:7:22","nodeType":"FunctionDefinition","parameters":{"id":7848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7839,"mutability":"mutable","name":"target","nameLocation":"10250:6:22","nodeType":"VariableDeclaration","scope":7887,"src":"10242:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7838,"name":"address","nodeType":"ElementaryTypeName","src":"10242:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7841,"mutability":"mutable","name":"value","nameLocation":"10274:5:22","nodeType":"VariableDeclaration","scope":7887,"src":"10266:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7840,"name":"uint256","nodeType":"ElementaryTypeName","src":"10266:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7843,"mutability":"mutable","name":"payload","nameLocation":"10304:7:22","nodeType":"VariableDeclaration","scope":7887,"src":"10289:22:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7842,"name":"bytes","nodeType":"ElementaryTypeName","src":"10289:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7845,"mutability":"mutable","name":"predecessor","nameLocation":"10329:11:22","nodeType":"VariableDeclaration","scope":7887,"src":"10321:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10321:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7847,"mutability":"mutable","name":"salt","nameLocation":"10358:4:22","nodeType":"VariableDeclaration","scope":7887,"src":"10350:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10350:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10232:136:22"},"returnParameters":{"id":7852,"nodeType":"ParameterList","parameters":[],"src":"10426:0:22"},"scope":8159,"src":"10216:459:22","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":7989,"nodeType":"Block","src":"11177:641:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7908,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7891,"src":"11195:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11203:6:22","memberName":"length","nodeType":"MemberAccess","src":"11195:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7910,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"11213:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11220:6:22","memberName":"length","nodeType":"MemberAccess","src":"11213:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11195:31:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":7913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11228:37:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":7907,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11187:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11187:79:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7915,"nodeType":"ExpressionStatement","src":"11187:79:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7917,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7891,"src":"11284:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11292:6:22","memberName":"length","nodeType":"MemberAccess","src":"11284:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":7919,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"11302:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11311:6:22","memberName":"length","nodeType":"MemberAccess","src":"11302:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11284:33:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61746368","id":7922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11319:37:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""},"value":"TimelockController: length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0","typeString":"literal_string \"TimelockController: length mismatch\""}],"id":7916,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11276:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11276:81:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7924,"nodeType":"ExpressionStatement","src":"11276:81:22"},{"assignments":[7926],"declarations":[{"constant":false,"id":7926,"mutability":"mutable","name":"id","nameLocation":"11376:2:22","nodeType":"VariableDeclaration","scope":7989,"src":"11368:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11368:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7934,"initialValue":{"arguments":[{"id":7928,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7891,"src":"11400:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":7929,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"11409:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"id":7930,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"11417:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"id":7931,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7899,"src":"11427:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7932,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7901,"src":"11440:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7927,"name":"hashOperationBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7646,"src":"11381:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] calldata,uint256[] calldata,bytes calldata[] calldata,bytes32,bytes32) pure returns (bytes32)"}},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11381:64:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11368:77:22"},{"expression":{"arguments":[{"id":7936,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"11468:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7937,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7899,"src":"11472:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7935,"name":"_beforeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8045,"src":"11456:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) view"}},"id":7938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11456:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7939,"nodeType":"ExpressionStatement","src":"11456:28:22"},{"body":{"id":7983,"nodeType":"Block","src":"11539:249:22","statements":[{"assignments":[7952],"declarations":[{"constant":false,"id":7952,"mutability":"mutable","name":"target","nameLocation":"11561:6:22","nodeType":"VariableDeclaration","scope":7983,"src":"11553:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7951,"name":"address","nodeType":"ElementaryTypeName","src":"11553:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7956,"initialValue":{"baseExpression":{"id":7953,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7891,"src":"11570:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7955,"indexExpression":{"id":7954,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11578:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11570:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11553:27:22"},{"assignments":[7958],"declarations":[{"constant":false,"id":7958,"mutability":"mutable","name":"value","nameLocation":"11602:5:22","nodeType":"VariableDeclaration","scope":7983,"src":"11594:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7957,"name":"uint256","nodeType":"ElementaryTypeName","src":"11594:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7962,"initialValue":{"baseExpression":{"id":7959,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7894,"src":"11610:6:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7961,"indexExpression":{"id":7960,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11617:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11610:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11594:25:22"},{"assignments":[7964],"declarations":[{"constant":false,"id":7964,"mutability":"mutable","name":"payload","nameLocation":"11648:7:22","nodeType":"VariableDeclaration","scope":7983,"src":"11633:22:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7963,"name":"bytes","nodeType":"ElementaryTypeName","src":"11633:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7968,"initialValue":{"baseExpression":{"id":7965,"name":"payloads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"11658:8:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":7967,"indexExpression":{"id":7966,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11667:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11658:11:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11633:36:22"},{"expression":{"arguments":[{"id":7970,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"11692:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7971,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7958,"src":"11700:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7972,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7964,"src":"11707:7:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":7969,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8015,"src":"11683:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11683:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7974,"nodeType":"ExpressionStatement","src":"11683:32:22"},{"eventCall":{"arguments":[{"id":7976,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"11747:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11751:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7978,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"11754:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7958,"src":"11762:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7980,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7964,"src":"11769:7:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":7975,"name":"CallExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"11734:12:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,address,uint256,bytes memory)"}},"id":7981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11734:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7982,"nodeType":"EmitStatement","src":"11729:48:22"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7944,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11514:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7945,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7891,"src":"11518:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11526:6:22","memberName":"length","nodeType":"MemberAccess","src":"11518:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11514:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7984,"initializationExpression":{"assignments":[7941],"declarations":[{"constant":false,"id":7941,"mutability":"mutable","name":"i","nameLocation":"11507:1:22","nodeType":"VariableDeclaration","scope":7984,"src":"11499:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7940,"name":"uint256","nodeType":"ElementaryTypeName","src":"11499:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7943,"initialValue":{"hexValue":"30","id":7942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11511:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11499:13:22"},"loopExpression":{"expression":{"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11534:3:22","subExpression":{"id":7948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"11536:1:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7950,"nodeType":"ExpressionStatement","src":"11534:3:22"},"nodeType":"ForStatement","src":"11494:294:22"},{"expression":{"arguments":[{"id":7986,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7926,"src":"11808:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7985,"name":"_afterCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8065,"src":"11797:10:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":7987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11797:14:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7988,"nodeType":"ExpressionStatement","src":"11797:14:22"}]},"documentation":{"id":7888,"nodeType":"StructuredDocumentation","src":"10681:249:22","text":" @dev Execute an (ready) operation containing a batch of transactions.\n Emits one {CallExecuted} event per transaction in the batch.\n Requirements:\n - the caller must have the 'executor' role."},"functionSelector":"e38335e5","id":7990,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7904,"name":"EXECUTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7273,"src":"11162:13:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7905,"kind":"modifierInvocation","modifierName":{"id":7903,"name":"onlyRoleOrOpenRole","nameLocations":["11143:18:22"],"nodeType":"IdentifierPath","referencedDeclaration":7467,"src":"11143:18:22"},"nodeType":"ModifierInvocation","src":"11143:33:22"}],"name":"executeBatch","nameLocation":"10944:12:22","nodeType":"FunctionDefinition","parameters":{"id":7902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7891,"mutability":"mutable","name":"targets","nameLocation":"10985:7:22","nodeType":"VariableDeclaration","scope":7990,"src":"10966:26:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7889,"name":"address","nodeType":"ElementaryTypeName","src":"10966:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7890,"nodeType":"ArrayTypeName","src":"10966:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":7894,"mutability":"mutable","name":"values","nameLocation":"11021:6:22","nodeType":"VariableDeclaration","scope":7990,"src":"11002:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"11002:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7893,"nodeType":"ArrayTypeName","src":"11002:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":7897,"mutability":"mutable","name":"payloads","nameLocation":"11054:8:22","nodeType":"VariableDeclaration","scope":7990,"src":"11037:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7895,"name":"bytes","nodeType":"ElementaryTypeName","src":"11037:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7896,"nodeType":"ArrayTypeName","src":"11037:7:22","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":7899,"mutability":"mutable","name":"predecessor","nameLocation":"11080:11:22","nodeType":"VariableDeclaration","scope":7990,"src":"11072:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11072:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7901,"mutability":"mutable","name":"salt","nameLocation":"11109:4:22","nodeType":"VariableDeclaration","scope":7990,"src":"11101:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11101:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10956:163:22"},"returnParameters":{"id":7906,"nodeType":"ParameterList","parameters":[],"src":"11177:0:22"},"scope":8159,"src":"10935:883:22","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8014,"nodeType":"Block","src":"11998:148:22","statements":[{"assignments":[8001,null],"declarations":[{"constant":false,"id":8001,"mutability":"mutable","name":"success","nameLocation":"12014:7:22","nodeType":"VariableDeclaration","scope":8014,"src":"12009:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8000,"name":"bool","nodeType":"ElementaryTypeName","src":"12009:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":8008,"initialValue":{"arguments":[{"id":8006,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7997,"src":"12053:4:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":8002,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7993,"src":"12027:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12034:4:22","memberName":"call","nodeType":"MemberAccess","src":"12027: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":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":8004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7995,"src":"12046:5:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12027: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":8007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12027:31:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12008:50:22"},{"expression":{"arguments":[{"id":8010,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8001,"src":"12076:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207472616e73616374696f6e207265766572746564","id":8011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12085:53:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""},"value":"TimelockController: underlying transaction reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf","typeString":"literal_string \"TimelockController: underlying transaction reverted\""}],"id":8009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12068:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12068:71:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8013,"nodeType":"ExpressionStatement","src":"12068:71:22"}]},"documentation":{"id":7991,"nodeType":"StructuredDocumentation","src":"11824:52:22","text":" @dev Execute an operation's call."},"id":8015,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"11890:8:22","nodeType":"FunctionDefinition","parameters":{"id":7998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7993,"mutability":"mutable","name":"target","nameLocation":"11916:6:22","nodeType":"VariableDeclaration","scope":8015,"src":"11908:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7992,"name":"address","nodeType":"ElementaryTypeName","src":"11908:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7995,"mutability":"mutable","name":"value","nameLocation":"11940:5:22","nodeType":"VariableDeclaration","scope":8015,"src":"11932:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7994,"name":"uint256","nodeType":"ElementaryTypeName","src":"11932:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7997,"mutability":"mutable","name":"data","nameLocation":"11970:4:22","nodeType":"VariableDeclaration","scope":8015,"src":"11955:19:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7996,"name":"bytes","nodeType":"ElementaryTypeName","src":"11955:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11898:82:22"},"returnParameters":{"id":7999,"nodeType":"ParameterList","parameters":[],"src":"11998:0:22"},"scope":8159,"src":"11881:265:22","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8044,"nodeType":"Block","src":"12296:210:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":8025,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8018,"src":"12331:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8024,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7550,"src":"12314:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":8026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":8027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12336:44:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":8023,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12306:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12306:75:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8029,"nodeType":"ExpressionStatement","src":"12306:75:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8031,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8020,"src":"12399:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12422:1:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12414:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12414:7:22","typeDescriptions":{}}},"id":8035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12414:10:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12399:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":8038,"name":"predecessor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8020,"src":"12444:11:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8037,"name":"isOperationDone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7565,"src":"12428:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":8039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12428:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12399:57:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656e64656e6379","id":8041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12458:40:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""},"value":"TimelockController: missing dependency"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111","typeString":"literal_string \"TimelockController: missing dependency\""}],"id":8030,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12391:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12391:108:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8043,"nodeType":"ExpressionStatement","src":"12391:108:22"}]},"documentation":{"id":8016,"nodeType":"StructuredDocumentation","src":"12152:72:22","text":" @dev Checks before execution of an operation's calls."},"id":8045,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeCall","nameLocation":"12238:11:22","nodeType":"FunctionDefinition","parameters":{"id":8021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8018,"mutability":"mutable","name":"id","nameLocation":"12258:2:22","nodeType":"VariableDeclaration","scope":8045,"src":"12250:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12250:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8020,"mutability":"mutable","name":"predecessor","nameLocation":"12270:11:22","nodeType":"VariableDeclaration","scope":8045,"src":"12262:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12262:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12249:33:22"},"returnParameters":{"id":8022,"nodeType":"ParameterList","parameters":[],"src":"12296:0:22"},"scope":8159,"src":"12229:277:22","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":8064,"nodeType":"Block","src":"12628:135:22","statements":[{"expression":{"arguments":[{"arguments":[{"id":8053,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8048,"src":"12663:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8052,"name":"isOperationReady","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7550,"src":"12646:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":8054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12646:20:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973206e6f74207265616479","id":8055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12668:44:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""},"value":"TimelockController: operation is not ready"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603","typeString":"literal_string \"TimelockController: operation is not ready\""}],"id":8051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12638:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12638:75:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8057,"nodeType":"ExpressionStatement","src":"12638:75:22"},{"expression":{"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8058,"name":"_timestamps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7288,"src":"12723:11:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":8060,"indexExpression":{"id":8059,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8048,"src":"12735:2:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12723:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8061,"name":"_DONE_TIMESTAMP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"12741:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12723:33:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8063,"nodeType":"ExpressionStatement","src":"12723:33:22"}]},"documentation":{"id":8046,"nodeType":"StructuredDocumentation","src":"12512:71:22","text":" @dev Checks after execution of an operation's calls."},"id":8065,"implemented":true,"kind":"function","modifiers":[],"name":"_afterCall","nameLocation":"12597:10:22","nodeType":"FunctionDefinition","parameters":{"id":8049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8048,"mutability":"mutable","name":"id","nameLocation":"12616:2:22","nodeType":"VariableDeclaration","scope":8065,"src":"12608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12608:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12607:12:22"},"returnParameters":{"id":8050,"nodeType":"ParameterList","parameters":[],"src":"12628:0:22"},"scope":8159,"src":"12588:175:22","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8091,"nodeType":"Block","src":"13212:180:22","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8072,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13230:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13234:6:22","memberName":"sender","nodeType":"MemberAccess","src":"13230:10:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":8076,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13252:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13244:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8074,"name":"address","nodeType":"ElementaryTypeName","src":"13244:7:22","typeDescriptions":{}}},"id":8077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13244:13:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13230:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742062652074696d656c6f636b","id":8079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13259:45:22","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""},"value":"TimelockController: caller must be timelock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df","typeString":"literal_string \"TimelockController: caller must be timelock\""}],"id":8071,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13222:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13222:83:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8081,"nodeType":"ExpressionStatement","src":"13222:83:22"},{"eventCall":{"arguments":[{"id":8083,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"13335:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8084,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"13346:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8082,"name":"MinDelayChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7332,"src":"13320:14:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13320:35:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8086,"nodeType":"EmitStatement","src":"13315:40:22"},{"expression":{"id":8089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8087,"name":"_minDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7290,"src":"13365:9:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8088,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8068,"src":"13377:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13365:20:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8090,"nodeType":"ExpressionStatement","src":"13365:20:22"}]},"documentation":{"id":8066,"nodeType":"StructuredDocumentation","src":"12769:382:22","text":" @dev Changes the minimum timelock duration for future operations.\n Emits a {MinDelayChange} event.\n Requirements:\n - the caller must be the timelock itself. This can only be achieved by scheduling and later executing\n an operation where the timelock is the target and the data is the ABI-encoded call to this function."},"functionSelector":"64d62353","id":8092,"implemented":true,"kind":"function","modifiers":[],"name":"updateDelay","nameLocation":"13165:11:22","nodeType":"FunctionDefinition","parameters":{"id":8069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8068,"mutability":"mutable","name":"newDelay","nameLocation":"13185:8:22","nodeType":"VariableDeclaration","scope":8092,"src":"13177:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8067,"name":"uint256","nodeType":"ElementaryTypeName","src":"13177:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13176:18:22"},"returnParameters":{"id":8070,"nodeType":"ParameterList","parameters":[],"src":"13212:0:22"},"scope":8159,"src":"13156:236:22","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[12063],"body":{"id":8111,"nodeType":"Block","src":"13612:54:22","statements":[{"expression":{"expression":{"expression":{"id":8107,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13629:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13634:16:22","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":8112,"src":"13629:21:22","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":8109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13651:8:22","memberName":"selector","nodeType":"MemberAccess","src":"13629:30:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":8106,"id":8110,"nodeType":"Return","src":"13622:37:22"}]},"documentation":{"id":8093,"nodeType":"StructuredDocumentation","src":"13398:63:22","text":" @dev See {IERC721Receiver-onERC721Received}."},"functionSelector":"150b7a02","id":8112,"implemented":true,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"13475:16:22","nodeType":"FunctionDefinition","overrides":{"id":8103,"nodeType":"OverrideSpecifier","overrides":[],"src":"13586:8:22"},"parameters":{"id":8102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"13501:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8094,"name":"address","nodeType":"ElementaryTypeName","src":"13501:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"13518:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8096,"name":"address","nodeType":"ElementaryTypeName","src":"13518:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"13535:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8098,"name":"uint256","nodeType":"ElementaryTypeName","src":"13535:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"13552:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8100,"name":"bytes","nodeType":"ElementaryTypeName","src":"13552:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13491:79:22"},"returnParameters":{"id":8106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8112,"src":"13604:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8104,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13604:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13603:8:22"},"scope":8159,"src":"13466:200:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9326],"body":{"id":8133,"nodeType":"Block","src":"13906:55:22","statements":[{"expression":{"expression":{"expression":{"id":8129,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13923:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13928:17:22","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":8134,"src":"13923:22:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13946:8:22","memberName":"selector","nodeType":"MemberAccess","src":"13923:31:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":8128,"id":8132,"nodeType":"Return","src":"13916:38:22"}]},"documentation":{"id":8113,"nodeType":"StructuredDocumentation","src":"13672:65:22","text":" @dev See {IERC1155Receiver-onERC1155Received}."},"functionSelector":"f23a6e61","id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"13751:17:22","nodeType":"FunctionDefinition","overrides":{"id":8125,"nodeType":"OverrideSpecifier","overrides":[],"src":"13880:8:22"},"parameters":{"id":8124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13778:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8114,"name":"address","nodeType":"ElementaryTypeName","src":"13778:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13795:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8116,"name":"address","nodeType":"ElementaryTypeName","src":"13795:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13812:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8118,"name":"uint256","nodeType":"ElementaryTypeName","src":"13812:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13829:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8120,"name":"uint256","nodeType":"ElementaryTypeName","src":"13829:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13846:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8122,"name":"bytes","nodeType":"ElementaryTypeName","src":"13846:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13768:96:22"},"returnParameters":{"id":8128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8134,"src":"13898:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8126,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13898:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13897:8:22"},"scope":8159,"src":"13742:219:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9344],"body":{"id":8157,"nodeType":"Block","src":"14229:60:22","statements":[{"expression":{"expression":{"expression":{"id":8153,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14246:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14251:22:22","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":8158,"src":"14246:27:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":8155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14274:8:22","memberName":"selector","nodeType":"MemberAccess","src":"14246:36:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":8152,"id":8156,"nodeType":"Return","src":"14239:43:22"}]},"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"13967:70:22","text":" @dev See {IERC1155Receiver-onERC1155BatchReceived}."},"functionSelector":"bc197c81","id":8158,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"14051:22:22","nodeType":"FunctionDefinition","overrides":{"id":8149,"nodeType":"OverrideSpecifier","overrides":[],"src":"14203:8:22"},"parameters":{"id":8148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14083:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8136,"name":"address","nodeType":"ElementaryTypeName","src":"14083:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14100:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8138,"name":"address","nodeType":"ElementaryTypeName","src":"14100:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14117:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8140,"name":"uint256","nodeType":"ElementaryTypeName","src":"14117:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8141,"nodeType":"ArrayTypeName","src":"14117:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14143:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8143,"name":"uint256","nodeType":"ElementaryTypeName","src":"14143:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8144,"nodeType":"ArrayTypeName","src":"14143:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14169:12:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8146,"name":"bytes","nodeType":"ElementaryTypeName","src":"14169:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14073:114:22"},"returnParameters":{"id":8152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8158,"src":"14221:6:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8150,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14221:6:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14220:8:22"},"scope":8159,"src":"14042:247:22","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":8160,"src":"1030:13261:22","usedErrors":[]}],"src":"117:14175:22"},"id":22},"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorCountingSimple":[8385],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"Timers":[14787]},"id":8386,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8161,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"132:23:23"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":8162,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8386,"sourceUnit":6949,"src":"157:25:23","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8164,"name":"Governor","nameLocations":["336:8:23"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"336:8:23"},"id":8165,"nodeType":"InheritanceSpecifier","src":"336:8:23"}],"canonicalName":"GovernorCountingSimple","contractDependencies":[],"contractKind":"contract","documentation":{"id":8163,"nodeType":"StructuredDocumentation","src":"184:107:23","text":" @dev Extension of {Governor} for simple, 3 options, vote counting.\n _Available since v4.3._"},"fullyImplemented":false,"id":8385,"linearizedBaseContracts":[8385,6948,9345,12064,7245,15302,15326,15338,14324],"name":"GovernorCountingSimple","nameLocation":"310:22:23","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GovernorCountingSimple.VoteType","id":8169,"members":[{"id":8166,"name":"Against","nameLocation":"458:7:23","nodeType":"EnumValue","src":"458:7:23"},{"id":8167,"name":"For","nameLocation":"475:3:23","nodeType":"EnumValue","src":"475:3:23"},{"id":8168,"name":"Abstain","nameLocation":"488:7:23","nodeType":"EnumValue","src":"488:7:23"}],"name":"VoteType","nameLocation":"439:8:23","nodeType":"EnumDefinition","src":"434:67:23"},{"canonicalName":"GovernorCountingSimple.ProposalVote","id":8180,"members":[{"constant":false,"id":8171,"mutability":"mutable","name":"againstVotes","nameLocation":"545:12:23","nodeType":"VariableDeclaration","scope":8180,"src":"537:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8170,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8173,"mutability":"mutable","name":"forVotes","nameLocation":"575:8:23","nodeType":"VariableDeclaration","scope":8180,"src":"567:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8172,"name":"uint256","nodeType":"ElementaryTypeName","src":"567:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8175,"mutability":"mutable","name":"abstainVotes","nameLocation":"601:12:23","nodeType":"VariableDeclaration","scope":8180,"src":"593:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8174,"name":"uint256","nodeType":"ElementaryTypeName","src":"593:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8179,"mutability":"mutable","name":"hasVoted","nameLocation":"648:8:23","nodeType":"VariableDeclaration","scope":8180,"src":"623:33:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8178,"keyType":{"id":8176,"name":"address","nodeType":"ElementaryTypeName","src":"631:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"623:24:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":8177,"name":"bool","nodeType":"ElementaryTypeName","src":"642:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"}],"name":"ProposalVote","nameLocation":"514:12:23","nodeType":"StructDefinition","scope":8385,"src":"507:156:23","visibility":"public"},{"constant":false,"id":8185,"mutability":"mutable","name":"_proposalVotes","nameLocation":"710:14:23","nodeType":"VariableDeclaration","scope":8385,"src":"669:55:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)"},"typeName":{"id":8184,"keyType":{"id":8181,"name":"uint256","nodeType":"ElementaryTypeName","src":"677:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"669:32:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)"},"valueType":{"id":8183,"nodeType":"UserDefinedTypeName","pathNode":{"id":8182,"name":"ProposalVote","nameLocations":["688:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"688:12:23"},"referencedDeclaration":8180,"src":"688:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}}},"visibility":"private"},{"baseFunctions":[7044],"body":{"id":8194,"nodeType":"Block","src":"921:58:23","statements":[{"expression":{"hexValue":"737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e","id":8192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"938:34:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3816e28b29b48b8e7bf93291116c21473ef28186248d173042d1986430466e1","typeString":"literal_string \"support=bravo&quorum=for,abstain\""},"value":"support=bravo&quorum=for,abstain"},"functionReturnParameters":8191,"id":8193,"nodeType":"Return","src":"931:41:23"}]},"documentation":{"id":8186,"nodeType":"StructuredDocumentation","src":"731:54:23","text":" @dev See {IGovernor-COUNTING_MODE}."},"functionSelector":"dd4e2ba5","id":8195,"implemented":true,"kind":"function","modifiers":[],"name":"COUNTING_MODE","nameLocation":"852:13:23","nodeType":"FunctionDefinition","overrides":{"id":8188,"nodeType":"OverrideSpecifier","overrides":[],"src":"888:8:23"},"parameters":{"id":8187,"nodeType":"ParameterList","parameters":[],"src":"865:2:23"},"returnParameters":{"id":8191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8195,"src":"906:13:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8189,"name":"string","nodeType":"ElementaryTypeName","src":"906:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"905:15:23"},"scope":8385,"src":"843:136:23","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[7138],"body":{"id":8213,"nodeType":"Block","src":"1138:68:23","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":8206,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"1155:14:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":8208,"indexExpression":{"id":8207,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"1170:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1155:26:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"id":8209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1182:8:23","memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":8179,"src":"1155:35:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8211,"indexExpression":{"id":8210,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8200,"src":"1191:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1155:44:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8205,"id":8212,"nodeType":"Return","src":"1148:51:23"}]},"documentation":{"id":8196,"nodeType":"StructuredDocumentation","src":"985:49:23","text":" @dev See {IGovernor-hasVoted}."},"functionSelector":"43859632","id":8214,"implemented":true,"kind":"function","modifiers":[],"name":"hasVoted","nameLocation":"1048:8:23","nodeType":"FunctionDefinition","overrides":{"id":8202,"nodeType":"OverrideSpecifier","overrides":[],"src":"1114:8:23"},"parameters":{"id":8201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8198,"mutability":"mutable","name":"proposalId","nameLocation":"1065:10:23","nodeType":"VariableDeclaration","scope":8214,"src":"1057:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8197,"name":"uint256","nodeType":"ElementaryTypeName","src":"1057:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8200,"mutability":"mutable","name":"account","nameLocation":"1085:7:23","nodeType":"VariableDeclaration","scope":8214,"src":"1077:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8199,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1056:37:23"},"returnParameters":{"id":8205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8214,"src":"1132:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8203,"name":"bool","nodeType":"ElementaryTypeName","src":"1132:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1131:6:23"},"scope":8385,"src":"1039:167:23","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8241,"nodeType":"Block","src":"1494:173:23","statements":[{"assignments":[8228],"declarations":[{"constant":false,"id":8228,"mutability":"mutable","name":"proposalVote","nameLocation":"1525:12:23","nodeType":"VariableDeclaration","scope":8241,"src":"1504:33:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":8227,"nodeType":"UserDefinedTypeName","pathNode":{"id":8226,"name":"ProposalVote","nameLocations":["1504:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"1504:12:23"},"referencedDeclaration":8180,"src":"1504:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":8232,"initialValue":{"baseExpression":{"id":8229,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"1540:14:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":8231,"indexExpression":{"id":8230,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"1555:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1540:26:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1504:62:23"},{"expression":{"components":[{"expression":{"id":8233,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"1584:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1597:12:23","memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":8171,"src":"1584:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8235,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"1611:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1624:8:23","memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":8173,"src":"1611:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8237,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8228,"src":"1634:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1647:12:23","memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":8175,"src":"1634:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1583:77:23","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256)"}},"functionReturnParameters":8225,"id":8240,"nodeType":"Return","src":"1576:84:23"}]},"documentation":{"id":8215,"nodeType":"StructuredDocumentation","src":"1212:61:23","text":" @dev Accessor to the internal vote counts."},"functionSelector":"544ffc9c","id":8242,"implemented":true,"kind":"function","modifiers":[],"name":"proposalVotes","nameLocation":"1287:13:23","nodeType":"FunctionDefinition","parameters":{"id":8218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8217,"mutability":"mutable","name":"proposalId","nameLocation":"1309:10:23","nodeType":"VariableDeclaration","scope":8242,"src":"1301:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1300:20:23"},"returnParameters":{"id":8225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8220,"mutability":"mutable","name":"againstVotes","nameLocation":"1403:12:23","nodeType":"VariableDeclaration","scope":8242,"src":"1395:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8219,"name":"uint256","nodeType":"ElementaryTypeName","src":"1395:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8222,"mutability":"mutable","name":"forVotes","nameLocation":"1437:8:23","nodeType":"VariableDeclaration","scope":8242,"src":"1429:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8224,"mutability":"mutable","name":"abstainVotes","nameLocation":"1467:12:23","nodeType":"VariableDeclaration","scope":8242,"src":"1459:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8223,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1381:108:23"},"scope":8385,"src":"1278:389:23","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6017],"body":{"id":8270,"nodeType":"Block","src":"1822:186:23","statements":[{"assignments":[8253],"declarations":[{"constant":false,"id":8253,"mutability":"mutable","name":"proposalVote","nameLocation":"1853:12:23","nodeType":"VariableDeclaration","scope":8270,"src":"1832:33:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":8252,"nodeType":"UserDefinedTypeName","pathNode":{"id":8251,"name":"ProposalVote","nameLocations":["1832:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"1832:12:23"},"referencedDeclaration":8180,"src":"1832:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":8257,"initialValue":{"baseExpression":{"id":8254,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"1868:14:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":8256,"indexExpression":{"id":8255,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"1883:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1868:26:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1832:62:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8260,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8245,"src":"1936:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8259,"name":"proposalSnapshot","nodeType":"Identifier","overloadedDeclarations":[5983],"referencedDeclaration":5983,"src":"1919:16:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8258,"name":"quorum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7106,"src":"1912:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:36:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8263,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"1952:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1965:8:23","memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":8173,"src":"1952:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":8265,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"1976:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1989:12:23","memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":8175,"src":"1976:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1952:49:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1912:89:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8250,"id":8269,"nodeType":"Return","src":"1905:96:23"}]},"documentation":{"id":8243,"nodeType":"StructuredDocumentation","src":"1673:54:23","text":" @dev See {Governor-_quorumReached}."},"id":8271,"implemented":true,"kind":"function","modifiers":[],"name":"_quorumReached","nameLocation":"1741:14:23","nodeType":"FunctionDefinition","overrides":{"id":8247,"nodeType":"OverrideSpecifier","overrides":[],"src":"1798:8:23"},"parameters":{"id":8246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8245,"mutability":"mutable","name":"proposalId","nameLocation":"1764:10:23","nodeType":"VariableDeclaration","scope":8271,"src":"1756:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1755:20:23"},"returnParameters":{"id":8250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8271,"src":"1816:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8248,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:23"},"scope":8385,"src":"1732:276:23","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6025],"body":{"id":8293,"nodeType":"Block","src":"2232:146:23","statements":[{"assignments":[8282],"declarations":[{"constant":false,"id":8282,"mutability":"mutable","name":"proposalVote","nameLocation":"2263:12:23","nodeType":"VariableDeclaration","scope":8293,"src":"2242:33:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":8281,"nodeType":"UserDefinedTypeName","pathNode":{"id":8280,"name":"ProposalVote","nameLocations":["2242:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"2242:12:23"},"referencedDeclaration":8180,"src":"2242:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":8286,"initialValue":{"baseExpression":{"id":8283,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"2278:14:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":8285,"indexExpression":{"id":8284,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8274,"src":"2293:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2278:26:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2242:62:23"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8287,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8282,"src":"2322:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2335:8:23","memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":8173,"src":"2322:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":8289,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8282,"src":"2346:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2359:12:23","memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":8171,"src":"2346:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2322:49:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8279,"id":8292,"nodeType":"Return","src":"2315:56:23"}]},"documentation":{"id":8272,"nodeType":"StructuredDocumentation","src":"2014:123:23","text":" @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes."},"id":8294,"implemented":true,"kind":"function","modifiers":[],"name":"_voteSucceeded","nameLocation":"2151:14:23","nodeType":"FunctionDefinition","overrides":{"id":8276,"nodeType":"OverrideSpecifier","overrides":[],"src":"2208:8:23"},"parameters":{"id":8275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8274,"mutability":"mutable","name":"proposalId","nameLocation":"2174:10:23","nodeType":"VariableDeclaration","scope":8294,"src":"2166:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2165:20:23"},"returnParameters":{"id":8279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8294,"src":"2226:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8277,"name":"bool","nodeType":"ElementaryTypeName","src":"2226:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2225:6:23"},"scope":8385,"src":"2142:236:23","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[6051],"body":{"id":8383,"nodeType":"Block","src":"2702:628:23","statements":[{"assignments":[8311],"declarations":[{"constant":false,"id":8311,"mutability":"mutable","name":"proposalVote","nameLocation":"2733:12:23","nodeType":"VariableDeclaration","scope":8383,"src":"2712:33:23","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"},"typeName":{"id":8310,"nodeType":"UserDefinedTypeName","pathNode":{"id":8309,"name":"ProposalVote","nameLocations":["2712:12:23"],"nodeType":"IdentifierPath","referencedDeclaration":8180,"src":"2712:12:23"},"referencedDeclaration":8180,"src":"2712:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote"}},"visibility":"internal"}],"id":8315,"initialValue":{"baseExpression":{"id":8312,"name":"_proposalVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8185,"src":"2748:14:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalVote_$8180_storage_$","typeString":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote storage ref)"}},"id":8314,"indexExpression":{"id":8313,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8297,"src":"2763:10:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2748:26:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage","typeString":"struct GovernorCountingSimple.ProposalVote storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2712:62:23"},{"expression":{"arguments":[{"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2793:31:23","subExpression":{"baseExpression":{"expression":{"id":8317,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"2794:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2807:8:23","memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":8179,"src":"2794:21:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8320,"indexExpression":{"id":8319,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"2816:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2794:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20766f746520616c72656164792063617374","id":8322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2826:41:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8","typeString":"literal_string \"GovernorVotingSimple: vote already cast\""},"value":"GovernorVotingSimple: vote already cast"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8","typeString":"literal_string \"GovernorVotingSimple: vote already cast\""}],"id":8316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2785:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:83:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8324,"nodeType":"ExpressionStatement","src":"2785:83:23"},{"expression":{"id":8331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":8325,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"2878:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2891:8:23","memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":8179,"src":"2878:21:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8329,"indexExpression":{"id":8327,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8299,"src":"2900:7:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2878:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2911:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2878:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8332,"nodeType":"ExpressionStatement","src":"2878:37:23"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8333,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"2930:7:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":8336,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"2947:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$8169_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2956:7:23","memberName":"Against","nodeType":"MemberAccess","referencedDeclaration":8166,"src":"2947:16:23","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}],"id":8335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2941:5:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8334,"name":"uint8","nodeType":"ElementaryTypeName","src":"2941:5:23","typeDescriptions":{}}},"id":8338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2941:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2930:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8347,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"3036:7:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":8350,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"3053:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$8169_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":8351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3062:3:23","memberName":"For","nodeType":"MemberAccess","referencedDeclaration":8167,"src":"3053:12:23","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}],"id":8349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3047:5:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8348,"name":"uint8","nodeType":"ElementaryTypeName","src":"3047:5:23","typeDescriptions":{}}},"id":8352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3036:30:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8361,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8301,"src":"3134:7:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":8364,"name":"VoteType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"3151:8:23","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_VoteType_$8169_$","typeString":"type(enum GovernorCountingSimple.VoteType)"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3160:7:23","memberName":"Abstain","nodeType":"MemberAccess","referencedDeclaration":8168,"src":"3151:16:23","typeDescriptions":{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_VoteType_$8169","typeString":"enum GovernorCountingSimple.VoteType"}],"id":8363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3145:5:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8362,"name":"uint8","nodeType":"ElementaryTypeName","src":"3145:5:23","typeDescriptions":{}}},"id":8366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3145:23:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3134:34:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8379,"nodeType":"Block","src":"3236:88:23","statements":[{"expression":{"arguments":[{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616c756520666f7220656e756d20566f746554797065","id":8376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3257:55:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887","typeString":"literal_string \"GovernorVotingSimple: invalid value for enum VoteType\""},"value":"GovernorVotingSimple: invalid value for enum VoteType"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887","typeString":"literal_string \"GovernorVotingSimple: invalid value for enum VoteType\""}],"id":8375,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3250:6:23","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:63:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8378,"nodeType":"ExpressionStatement","src":"3250:63:23"}]},"id":8380,"nodeType":"IfStatement","src":"3130:194:23","trueBody":{"id":8374,"nodeType":"Block","src":"3170:60:23","statements":[{"expression":{"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8368,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"3184:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3197:12:23","memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":8175,"src":"3184:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8371,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"3213:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3184:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8373,"nodeType":"ExpressionStatement","src":"3184:35:23"}]}},"id":8381,"nodeType":"IfStatement","src":"3032:292:23","trueBody":{"id":8360,"nodeType":"Block","src":"3068:56:23","statements":[{"expression":{"id":8358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8354,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"3082:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3095:8:23","memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":8173,"src":"3082:21:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8357,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"3107:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3082:31:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8359,"nodeType":"ExpressionStatement","src":"3082:31:23"}]}},"id":8382,"nodeType":"IfStatement","src":"2926:398:23","trueBody":{"id":8346,"nodeType":"Block","src":"2966:60:23","statements":[{"expression":{"id":8344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8340,"name":"proposalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"2980:12:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalVote_$8180_storage_ptr","typeString":"struct GovernorCountingSimple.ProposalVote storage pointer"}},"id":8342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2993:12:23","memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":8171,"src":"2980:25:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8343,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"3009:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2980:35:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8345,"nodeType":"ExpressionStatement","src":"2980:35:23"}]}}]},"documentation":{"id":8295,"nodeType":"StructuredDocumentation","src":"2384:129:23","text":" @dev See {Governor-_countVote}. In this module, the support follows the `VoteType` enum (from Governor Bravo)."},"id":8384,"implemented":true,"kind":"function","modifiers":[],"name":"_countVote","nameLocation":"2527:10:23","nodeType":"FunctionDefinition","overrides":{"id":8307,"nodeType":"OverrideSpecifier","overrides":[],"src":"2693:8:23"},"parameters":{"id":8306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8297,"mutability":"mutable","name":"proposalId","nameLocation":"2555:10:23","nodeType":"VariableDeclaration","scope":8384,"src":"2547:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8299,"mutability":"mutable","name":"account","nameLocation":"2583:7:23","nodeType":"VariableDeclaration","scope":8384,"src":"2575:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8298,"name":"address","nodeType":"ElementaryTypeName","src":"2575:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8301,"mutability":"mutable","name":"support","nameLocation":"2606:7:23","nodeType":"VariableDeclaration","scope":8384,"src":"2600:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8300,"name":"uint8","nodeType":"ElementaryTypeName","src":"2600:5:23","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8303,"mutability":"mutable","name":"weight","nameLocation":"2631:6:23","nodeType":"VariableDeclaration","scope":8384,"src":"2623:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2623:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8384,"src":"2647:12:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8304,"name":"bytes","nodeType":"ElementaryTypeName","src":"2647:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2537:138:23"},"returnParameters":{"id":8308,"nodeType":"ParameterList","parameters":[],"src":"2702:0:23"},"scope":8385,"src":"2518:812:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8386,"src":"292:3040:23","usedErrors":[17751]}],"src":"132:3201:23"},"id":23},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorSettings":[8563],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"Timers":[14787]},"id":8564,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8387,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"111:23:24"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":8388,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8564,"sourceUnit":6949,"src":"136:25:24","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8390,"name":"Governor","nameLocations":["314:8:24"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"314:8:24"},"id":8391,"nodeType":"InheritanceSpecifier","src":"314:8:24"}],"canonicalName":"GovernorSettings","contractDependencies":[],"contractKind":"contract","documentation":{"id":8389,"nodeType":"StructuredDocumentation","src":"163:112:24","text":" @dev Extension of {Governor} for settings updatable through governance.\n _Available since v4.4._"},"fullyImplemented":false,"id":8563,"linearizedBaseContracts":[8563,6948,9345,12064,7245,15302,15326,15338,14324],"name":"GovernorSettings","nameLocation":"294:16:24","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8393,"mutability":"mutable","name":"_votingDelay","nameLocation":"345:12:24","nodeType":"VariableDeclaration","scope":8563,"src":"329:28:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8392,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":8395,"mutability":"mutable","name":"_votingPeriod","nameLocation":"379:13:24","nodeType":"VariableDeclaration","scope":8563,"src":"363:29:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8394,"name":"uint256","nodeType":"ElementaryTypeName","src":"363:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":8397,"mutability":"mutable","name":"_proposalThreshold","nameLocation":"414:18:24","nodeType":"VariableDeclaration","scope":8563,"src":"398:34:24","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8396,"name":"uint256","nodeType":"ElementaryTypeName","src":"398:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"anonymous":false,"eventSelector":"c565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93","id":8403,"name":"VotingDelaySet","nameLocation":"445:14:24","nodeType":"EventDefinition","parameters":{"id":8402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"indexed":false,"mutability":"mutable","name":"oldVotingDelay","nameLocation":"468:14:24","nodeType":"VariableDeclaration","scope":8403,"src":"460:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8398,"name":"uint256","nodeType":"ElementaryTypeName","src":"460:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8401,"indexed":false,"mutability":"mutable","name":"newVotingDelay","nameLocation":"492:14:24","nodeType":"VariableDeclaration","scope":8403,"src":"484:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8400,"name":"uint256","nodeType":"ElementaryTypeName","src":"484:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"459:48:24"},"src":"439:69:24"},{"anonymous":false,"eventSelector":"7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828","id":8409,"name":"VotingPeriodSet","nameLocation":"519:15:24","nodeType":"EventDefinition","parameters":{"id":8408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8405,"indexed":false,"mutability":"mutable","name":"oldVotingPeriod","nameLocation":"543:15:24","nodeType":"VariableDeclaration","scope":8409,"src":"535:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8404,"name":"uint256","nodeType":"ElementaryTypeName","src":"535:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8407,"indexed":false,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"568:15:24","nodeType":"VariableDeclaration","scope":8409,"src":"560:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8406,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"534:50:24"},"src":"513:72:24"},{"anonymous":false,"eventSelector":"ccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461","id":8415,"name":"ProposalThresholdSet","nameLocation":"596:20:24","nodeType":"EventDefinition","parameters":{"id":8414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8411,"indexed":false,"mutability":"mutable","name":"oldProposalThreshold","nameLocation":"625:20:24","nodeType":"VariableDeclaration","scope":8415,"src":"617:28:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8410,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8413,"indexed":false,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"655:20:24","nodeType":"VariableDeclaration","scope":8415,"src":"647:28:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8412,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"616:60:24"},"src":"590:87:24"},{"body":{"id":8437,"nodeType":"Block","src":"882:156:24","statements":[{"expression":{"arguments":[{"id":8426,"name":"initialVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8418,"src":"908:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8425,"name":"_setVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8523,"src":"892:15:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"892:35:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8428,"nodeType":"ExpressionStatement","src":"892:35:24"},{"expression":{"arguments":[{"id":8430,"name":"initialVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8420,"src":"954:19:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8429,"name":"_setVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"937:16:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"937:37:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8432,"nodeType":"ExpressionStatement","src":"937:37:24"},{"expression":{"arguments":[{"id":8434,"name":"initialProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"1006:24:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8433,"name":"_setProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"984:21:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"984:47:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8436,"nodeType":"ExpressionStatement","src":"984:47:24"}]},"documentation":{"id":8416,"nodeType":"StructuredDocumentation","src":"683:61:24","text":" @dev Initialize the governance parameters."},"id":8438,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8418,"mutability":"mutable","name":"initialVotingDelay","nameLocation":"778:18:24","nodeType":"VariableDeclaration","scope":8438,"src":"770:26:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8417,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8420,"mutability":"mutable","name":"initialVotingPeriod","nameLocation":"814:19:24","nodeType":"VariableDeclaration","scope":8438,"src":"806:27:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8419,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8422,"mutability":"mutable","name":"initialProposalThreshold","nameLocation":"851:24:24","nodeType":"VariableDeclaration","scope":8438,"src":"843:32:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8421,"name":"uint256","nodeType":"ElementaryTypeName","src":"843:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:121:24"},"returnParameters":{"id":8424,"nodeType":"ParameterList","parameters":[],"src":"882:0:24"},"scope":8563,"src":"749:289:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[7092],"body":{"id":8447,"nodeType":"Block","src":"1171:36:24","statements":[{"expression":{"id":8445,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"1188:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8444,"id":8446,"nodeType":"Return","src":"1181:19:24"}]},"documentation":{"id":8439,"nodeType":"StructuredDocumentation","src":"1044:52:24","text":" @dev See {IGovernor-votingDelay}."},"functionSelector":"3932abb1","id":8448,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"1110:11:24","nodeType":"FunctionDefinition","overrides":{"id":8441,"nodeType":"OverrideSpecifier","overrides":[],"src":"1144:8:24"},"parameters":{"id":8440,"nodeType":"ParameterList","parameters":[],"src":"1121:2:24"},"returnParameters":{"id":8444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8448,"src":"1162:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8442,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1161:9:24"},"scope":8563,"src":"1101:106:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7098],"body":{"id":8457,"nodeType":"Block","src":"1342:37:24","statements":[{"expression":{"id":8455,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8395,"src":"1359:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8454,"id":8456,"nodeType":"Return","src":"1352:20:24"}]},"documentation":{"id":8449,"nodeType":"StructuredDocumentation","src":"1213:53:24","text":" @dev See {IGovernor-votingPeriod}."},"functionSelector":"02a251a3","id":8458,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"1280:12:24","nodeType":"FunctionDefinition","overrides":{"id":8451,"nodeType":"OverrideSpecifier","overrides":[],"src":"1315:8:24"},"parameters":{"id":8450,"nodeType":"ParameterList","parameters":[],"src":"1292:2:24"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8458,"src":"1333:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8452,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1332:9:24"},"scope":8563,"src":"1271:108:24","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6009],"body":{"id":8467,"nodeType":"Block","src":"1523:42:24","statements":[{"expression":{"id":8465,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8397,"src":"1540:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8464,"id":8466,"nodeType":"Return","src":"1533:25:24"}]},"documentation":{"id":8459,"nodeType":"StructuredDocumentation","src":"1385:57:24","text":" @dev See {Governor-proposalThreshold}."},"functionSelector":"b58131b0","id":8468,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"1456:17:24","nodeType":"FunctionDefinition","overrides":{"id":8461,"nodeType":"OverrideSpecifier","overrides":[],"src":"1496:8:24"},"parameters":{"id":8460,"nodeType":"ParameterList","parameters":[],"src":"1473:2:24"},"returnParameters":{"id":8464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8468,"src":"1514:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8462,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1513:9:24"},"scope":8563,"src":"1447:118:24","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8480,"nodeType":"Block","src":"1816:48:24","statements":[{"expression":{"arguments":[{"id":8477,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8471,"src":"1842:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8476,"name":"_setVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8523,"src":"1826:15:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:31:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8479,"nodeType":"ExpressionStatement","src":"1826:31:24"}]},"documentation":{"id":8469,"nodeType":"StructuredDocumentation","src":"1571:162:24","text":" @dev Update the voting delay. This operation can only be performed through a governance proposal.\n Emits a {VotingDelaySet} event."},"functionSelector":"70b0f660","id":8481,"implemented":true,"kind":"function","modifiers":[{"id":8474,"kind":"modifierInvocation","modifierName":{"id":8473,"name":"onlyGovernance","nameLocations":["1801:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"1801:14:24"},"nodeType":"ModifierInvocation","src":"1801:14:24"}],"name":"setVotingDelay","nameLocation":"1747:14:24","nodeType":"FunctionDefinition","parameters":{"id":8472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8471,"mutability":"mutable","name":"newVotingDelay","nameLocation":"1770:14:24","nodeType":"VariableDeclaration","scope":8481,"src":"1762:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1762:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1761:24:24"},"returnParameters":{"id":8475,"nodeType":"ParameterList","parameters":[],"src":"1816:0:24"},"scope":8563,"src":"1738:126:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8493,"nodeType":"Block","src":"2119:50:24","statements":[{"expression":{"arguments":[{"id":8490,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8484,"src":"2146:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8489,"name":"_setVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8546,"src":"2129:16:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2129:33:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8492,"nodeType":"ExpressionStatement","src":"2129:33:24"}]},"documentation":{"id":8482,"nodeType":"StructuredDocumentation","src":"1870:164:24","text":" @dev Update the voting period. This operation can only be performed through a governance proposal.\n Emits a {VotingPeriodSet} event."},"functionSelector":"ea0217cf","id":8494,"implemented":true,"kind":"function","modifiers":[{"id":8487,"kind":"modifierInvocation","modifierName":{"id":8486,"name":"onlyGovernance","nameLocations":["2104:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"2104:14:24"},"nodeType":"ModifierInvocation","src":"2104:14:24"}],"name":"setVotingPeriod","nameLocation":"2048:15:24","nodeType":"FunctionDefinition","parameters":{"id":8485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8484,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"2072:15:24","nodeType":"VariableDeclaration","scope":8494,"src":"2064:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2063:25:24"},"returnParameters":{"id":8488,"nodeType":"ParameterList","parameters":[],"src":"2119:0:24"},"scope":8563,"src":"2039:130:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8506,"nodeType":"Block","src":"2444:60:24","statements":[{"expression":{"arguments":[{"id":8503,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8497,"src":"2476:20:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8502,"name":"_setProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"2454:21:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":8504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2454:43:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8505,"nodeType":"ExpressionStatement","src":"2454:43:24"}]},"documentation":{"id":8495,"nodeType":"StructuredDocumentation","src":"2175:174:24","text":" @dev Update the proposal threshold. This operation can only be performed through a governance proposal.\n Emits a {ProposalThresholdSet} event."},"functionSelector":"ece40cc1","id":8507,"implemented":true,"kind":"function","modifiers":[{"id":8500,"kind":"modifierInvocation","modifierName":{"id":8499,"name":"onlyGovernance","nameLocations":["2429:14:24"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"2429:14:24"},"nodeType":"ModifierInvocation","src":"2429:14:24"}],"name":"setProposalThreshold","nameLocation":"2363:20:24","nodeType":"FunctionDefinition","parameters":{"id":8498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8497,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"2392:20:24","nodeType":"VariableDeclaration","scope":8507,"src":"2384:28:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8496,"name":"uint256","nodeType":"ElementaryTypeName","src":"2384:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2383:30:24"},"returnParameters":{"id":8501,"nodeType":"ParameterList","parameters":[],"src":"2444:0:24"},"scope":8563,"src":"2354:150:24","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8522,"nodeType":"Block","src":"2688:105:24","statements":[{"eventCall":{"arguments":[{"id":8514,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"2718:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8515,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"2732:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8513,"name":"VotingDelaySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"2703:14:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2703:44:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8517,"nodeType":"EmitStatement","src":"2698:49:24"},{"expression":{"id":8520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8518,"name":"_votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8393,"src":"2757:12:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8519,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8510,"src":"2772:14:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2757:29:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8521,"nodeType":"ExpressionStatement","src":"2757:29:24"}]},"documentation":{"id":8508,"nodeType":"StructuredDocumentation","src":"2510:107:24","text":" @dev Internal setter for the voting delay.\n Emits a {VotingDelaySet} event."},"id":8523,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingDelay","nameLocation":"2631:15:24","nodeType":"FunctionDefinition","parameters":{"id":8511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8510,"mutability":"mutable","name":"newVotingDelay","nameLocation":"2655:14:24","nodeType":"VariableDeclaration","scope":8523,"src":"2647:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8509,"name":"uint256","nodeType":"ElementaryTypeName","src":"2647:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2646:24:24"},"returnParameters":{"id":8512,"nodeType":"ParameterList","parameters":[],"src":"2688:0:24"},"scope":8563,"src":"2622:171:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8545,"nodeType":"Block","src":"2981:248:24","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8530,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8526,"src":"3056:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":8531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3074:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3056:19:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420746f6f206c6f77","id":8533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:41:24","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83","typeString":"literal_string \"GovernorSettings: voting period too low\""},"value":"GovernorSettings: voting period too low"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83","typeString":"literal_string \"GovernorSettings: voting period too low\""}],"id":8529,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3048:7:24","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3048:71:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8535,"nodeType":"ExpressionStatement","src":"3048:71:24"},{"eventCall":{"arguments":[{"id":8537,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8395,"src":"3150:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8538,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8526,"src":"3165:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8536,"name":"VotingPeriodSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8409,"src":"3134:15:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:47:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"EmitStatement","src":"3129:52:24"},{"expression":{"id":8543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8541,"name":"_votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8395,"src":"3191:13:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8542,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8526,"src":"3207:15:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3191:31:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8544,"nodeType":"ExpressionStatement","src":"3191:31:24"}]},"documentation":{"id":8524,"nodeType":"StructuredDocumentation","src":"2799:109:24","text":" @dev Internal setter for the voting period.\n Emits a {VotingPeriodSet} event."},"id":8546,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingPeriod","nameLocation":"2922:16:24","nodeType":"FunctionDefinition","parameters":{"id":8527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8526,"mutability":"mutable","name":"newVotingPeriod","nameLocation":"2947:15:24","nodeType":"VariableDeclaration","scope":8546,"src":"2939:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8525,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2938:25:24"},"returnParameters":{"id":8528,"nodeType":"ParameterList","parameters":[],"src":"2981:0:24"},"scope":8563,"src":"2913:316:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8561,"nodeType":"Block","src":"3437:135:24","statements":[{"eventCall":{"arguments":[{"id":8553,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8397,"src":"3473:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8554,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8549,"src":"3493:20:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8552,"name":"ProposalThresholdSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8415,"src":"3452:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3452:62:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8556,"nodeType":"EmitStatement","src":"3447:67:24"},{"expression":{"id":8559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8557,"name":"_proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8397,"src":"3524:18:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8558,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8549,"src":"3545:20:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3524:41:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8560,"nodeType":"ExpressionStatement","src":"3524:41:24"}]},"documentation":{"id":8547,"nodeType":"StructuredDocumentation","src":"3235:119:24","text":" @dev Internal setter for the proposal threshold.\n Emits a {ProposalThresholdSet} event."},"id":8562,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalThreshold","nameLocation":"3368:21:24","nodeType":"FunctionDefinition","parameters":{"id":8550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8549,"mutability":"mutable","name":"newProposalThreshold","nameLocation":"3398:20:24","nodeType":"VariableDeclaration","scope":8562,"src":"3390:28:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8548,"name":"uint256","nodeType":"ElementaryTypeName","src":"3390:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3389:30:24"},"returnParameters":{"id":8551,"nodeType":"ParameterList","parameters":[],"src":"3437:0:24"},"scope":8563,"src":"3359:213:24","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8564,"src":"276:3298:24","usedErrors":[17751]}],"src":"111:3464:24"},"id":24},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","exportedSymbols":{"AccessControl":[5454],"Address":[12931],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorTimelockControl":[8940],"IAccessControl":[5527],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"IGovernorTimelock":[9226],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"TimelockController":[8159],"Timers":[14787]},"id":8941,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8565,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"133:23:25"},{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","file":"./IGovernorTimelock.sol","id":8566,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8941,"sourceUnit":9227,"src":"158:33:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":8567,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8941,"sourceUnit":6949,"src":"192:25:25","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/TimelockController.sol","file":"../TimelockController.sol","id":8568,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8941,"sourceUnit":8160,"src":"218:35:25","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8570,"name":"IGovernorTimelock","nameLocations":["1370:17:25"],"nodeType":"IdentifierPath","referencedDeclaration":9226,"src":"1370:17:25"},"id":8571,"nodeType":"InheritanceSpecifier","src":"1370:17:25"},{"baseName":{"id":8572,"name":"Governor","nameLocations":["1389:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"1389:8:25"},"id":8573,"nodeType":"InheritanceSpecifier","src":"1389:8:25"}],"canonicalName":"GovernorTimelockControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":8569,"nodeType":"StructuredDocumentation","src":"255:1069:25","text":" @dev Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a\n delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The\n {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly.\n Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus,\n the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be\n inaccessible.\n WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it\n grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are\n available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively\n executing a Denial of Service attack. This risk will be mitigated in a future release.\n _Available since v4.3._"},"fullyImplemented":false,"id":8940,"linearizedBaseContracts":[8940,6948,9345,12064,9226,7245,15302,15326,15338,14324],"name":"GovernorTimelockControl","nameLocation":"1343:23:25","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8576,"mutability":"mutable","name":"_timelock","nameLocation":"1431:9:25","nodeType":"VariableDeclaration","scope":8940,"src":"1404:36:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"},"typeName":{"id":8575,"nodeType":"UserDefinedTypeName","pathNode":{"id":8574,"name":"TimelockController","nameLocations":["1404:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"1404:18:25"},"referencedDeclaration":8159,"src":"1404:18:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"visibility":"private"},{"constant":false,"id":8580,"mutability":"mutable","name":"_timelockIds","nameLocation":"1482:12:25","nodeType":"VariableDeclaration","scope":8940,"src":"1446:48:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"typeName":{"id":8579,"keyType":{"id":8577,"name":"uint256","nodeType":"ElementaryTypeName","src":"1454:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1446:27:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"},"valueType":{"id":8578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"private"},{"anonymous":false,"documentation":{"id":8581,"nodeType":"StructuredDocumentation","src":"1501:101:25","text":" @dev Emitted when the timelock controller used for proposal execution is modified."},"eventSelector":"08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401","id":8587,"name":"TimelockChange","nameLocation":"1613:14:25","nodeType":"EventDefinition","parameters":{"id":8586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8583,"indexed":false,"mutability":"mutable","name":"oldTimelock","nameLocation":"1636:11:25","nodeType":"VariableDeclaration","scope":8587,"src":"1628:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8582,"name":"address","nodeType":"ElementaryTypeName","src":"1628:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8585,"indexed":false,"mutability":"mutable","name":"newTimelock","nameLocation":"1657:11:25","nodeType":"VariableDeclaration","scope":8587,"src":"1649:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8584,"name":"address","nodeType":"ElementaryTypeName","src":"1649:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1627:42:25"},"src":"1607:63:25"},{"body":{"id":8598,"nodeType":"Block","src":"1770:49:25","statements":[{"expression":{"arguments":[{"id":8595,"name":"timelockAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"1796:15:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8594,"name":"_updateTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"1780:15:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_TimelockController_$8159_$returns$__$","typeString":"function (contract TimelockController)"}},"id":8596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:32:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8597,"nodeType":"ExpressionStatement","src":"1780:32:25"}]},"documentation":{"id":8588,"nodeType":"StructuredDocumentation","src":"1676:41:25","text":" @dev Set the timelock."},"id":8599,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"mutability":"mutable","name":"timelockAddress","nameLocation":"1753:15:25","nodeType":"VariableDeclaration","scope":8599,"src":"1734:34:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"},"typeName":{"id":8590,"nodeType":"UserDefinedTypeName","pathNode":{"id":8589,"name":"TimelockController","nameLocations":["1734:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"1734:18:25"},"referencedDeclaration":8159,"src":"1734:18:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"1733:36:25"},"returnParameters":{"id":8593,"nodeType":"ParameterList","parameters":[],"src":"1770:0:25"},"scope":8940,"src":"1722:97:25","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5827,15337],"body":{"id":8622,"nodeType":"Block","src":"1996:114:25","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8610,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"2013:11:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":8612,"name":"IGovernorTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9226,"src":"2033:17:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$9226_$","typeString":"type(contract IGovernorTimelock)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IGovernorTimelock_$9226_$","typeString":"type(contract IGovernorTimelock)"}],"id":8611,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2028:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2028:23:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IGovernorTimelock_$9226","typeString":"type(contract IGovernorTimelock)"}},"id":8614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2052:11:25","memberName":"interfaceId","nodeType":"MemberAccess","src":"2028:35:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2013:50:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":8618,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8602,"src":"2091:11:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":8616,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2067:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$8940_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":8617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2073:17:25","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"2067:23:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":8619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:36:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2013:90:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8609,"id":8621,"nodeType":"Return","src":"2006:97:25"}]},"documentation":{"id":8600,"nodeType":"StructuredDocumentation","src":"1825:56:25","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":8623,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1895:17:25","nodeType":"FunctionDefinition","overrides":{"id":8606,"nodeType":"OverrideSpecifier","overrides":[{"id":8604,"name":"IERC165","nameLocations":["1962:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"1962:7:25"},{"id":8605,"name":"Governor","nameLocations":["1971:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"1971:8:25"}],"src":"1953:27:25"},"parameters":{"id":8603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8602,"mutability":"mutable","name":"interfaceId","nameLocation":"1920:11:25","nodeType":"VariableDeclaration","scope":8623,"src":"1913:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8601,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1913:6:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1912:20:25"},"returnParameters":{"id":8609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8623,"src":"1990:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8607,"name":"bool","nodeType":"ElementaryTypeName","src":"1990:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1989:6:25"},"scope":8940,"src":"1886:224:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[5966,7070],"body":{"id":8689,"nodeType":"Block","src":"2349:638:25","statements":[{"assignments":[8637],"declarations":[{"constant":false,"id":8637,"mutability":"mutable","name":"status","nameLocation":"2373:6:25","nodeType":"VariableDeclaration","scope":8689,"src":"2359:20:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":8636,"nodeType":"UserDefinedTypeName","pathNode":{"id":8635,"name":"ProposalState","nameLocations":["2359:13:25"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"2359:13:25"},"referencedDeclaration":6963,"src":"2359:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"id":8642,"initialValue":{"arguments":[{"id":8640,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8626,"src":"2394:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8638,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2382:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$8940_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":8639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2388:5:25","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5966,"src":"2382:11:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2382:23:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"2359:46:25"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8643,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8637,"src":"2420:6:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":8644,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"2430:13:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":8645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2444:9:25","memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":6959,"src":"2430:23:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"2420:33:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8650,"nodeType":"IfStatement","src":"2416:77:25","trueBody":{"id":8649,"nodeType":"Block","src":"2455:38:25","statements":[{"expression":{"id":8647,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8637,"src":"2476:6:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":8634,"id":8648,"nodeType":"Return","src":"2469:13:25"}]}},{"assignments":[8652],"declarations":[{"constant":false,"id":8652,"mutability":"mutable","name":"queueid","nameLocation":"2611:7:25","nodeType":"VariableDeclaration","scope":8689,"src":"2603:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2603:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8656,"initialValue":{"baseExpression":{"id":8653,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"2621:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8655,"indexExpression":{"id":8654,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8626,"src":"2634:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2621:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2603:42:25"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8657,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"2659:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2678:1:25","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":8659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2670:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2670:7:25","typeDescriptions":{}}},"id":8661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2670:10:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2659:21:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":8668,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"2756:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8666,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"2730:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2740:15:25","memberName":"isOperationDone","nodeType":"MemberAccess","referencedDeclaration":7565,"src":"2730:25:25","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":8669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2730:34:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":8676,"name":"queueid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"2859:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8674,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"2830:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2840:18:25","memberName":"isOperationPending","nodeType":"MemberAccess","referencedDeclaration":7526,"src":"2830:28:25","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":8677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2830:37:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8685,"nodeType":"Block","src":"2927:54:25","statements":[{"expression":{"expression":{"id":8682,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"2948:13:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":8683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2962:8:25","memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":6957,"src":"2948:22:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":8634,"id":8684,"nodeType":"Return","src":"2941:29:25"}]},"id":8686,"nodeType":"IfStatement","src":"2826:155:25","trueBody":{"id":8681,"nodeType":"Block","src":"2869:52:25","statements":[{"expression":{"expression":{"id":8678,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"2890:13:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":8679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2904:6:25","memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":6960,"src":"2890:20:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":8634,"id":8680,"nodeType":"Return","src":"2883:27:25"}]}},"id":8687,"nodeType":"IfStatement","src":"2726:255:25","trueBody":{"id":8673,"nodeType":"Block","src":"2766:54:25","statements":[{"expression":{"expression":{"id":8670,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"2787:13:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":8671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2801:8:25","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":6962,"src":"2787:22:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":8634,"id":8672,"nodeType":"Return","src":"2780:29:25"}]}},"id":8688,"nodeType":"IfStatement","src":"2655:326:25","trueBody":{"id":8665,"nodeType":"Block","src":"2682:38:25","statements":[{"expression":{"id":8663,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8637,"src":"2703:6:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":8634,"id":8664,"nodeType":"Return","src":"2696:13:25"}]}}]},"documentation":{"id":8624,"nodeType":"StructuredDocumentation","src":"2116:119:25","text":" @dev Overridden version of the {Governor-state} function with added support for the `Queued` status."},"functionSelector":"3e4f49e6","id":8690,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"2249:5:25","nodeType":"FunctionDefinition","overrides":{"id":8630,"nodeType":"OverrideSpecifier","overrides":[{"id":8628,"name":"IGovernor","nameLocations":["2304:9:25"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"2304:9:25"},{"id":8629,"name":"Governor","nameLocations":["2315:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2315:8:25"}],"src":"2295:29:25"},"parameters":{"id":8627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8626,"mutability":"mutable","name":"proposalId","nameLocation":"2263:10:25","nodeType":"VariableDeclaration","scope":8690,"src":"2255:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8625,"name":"uint256","nodeType":"ElementaryTypeName","src":"2255:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2254:20:25"},"returnParameters":{"id":8634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8690,"src":"2334:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":8632,"nodeType":"UserDefinedTypeName","pathNode":{"id":8631,"name":"ProposalState","nameLocations":["2334:13:25"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"2334:13:25"},"referencedDeclaration":6963,"src":"2334:13:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"2333:15:25"},"scope":8940,"src":"2240:747:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9202],"body":{"id":8702,"nodeType":"Block","src":"3141:42:25","statements":[{"expression":{"arguments":[{"id":8699,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"3166:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3158:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8697,"name":"address","nodeType":"ElementaryTypeName","src":"3158:7:25","typeDescriptions":{}}},"id":8700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3158:18:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8696,"id":8701,"nodeType":"Return","src":"3151:25:25"}]},"documentation":{"id":8691,"nodeType":"StructuredDocumentation","src":"2993:76:25","text":" @dev Public accessor to check the address of the timelock"},"functionSelector":"d33219b4","id":8703,"implemented":true,"kind":"function","modifiers":[],"name":"timelock","nameLocation":"3083:8:25","nodeType":"FunctionDefinition","overrides":{"id":8693,"nodeType":"OverrideSpecifier","overrides":[],"src":"3114:8:25"},"parameters":{"id":8692,"nodeType":"ParameterList","parameters":[],"src":"3091:2:25"},"returnParameters":{"id":8696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8703,"src":"3132:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8694,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3131:9:25"},"scope":8940,"src":"3074:109:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9209],"body":{"id":8728,"nodeType":"Block","src":"3359:171:25","statements":[{"assignments":[8713],"declarations":[{"constant":false,"id":8713,"mutability":"mutable","name":"eta","nameLocation":"3377:3:25","nodeType":"VariableDeclaration","scope":8728,"src":"3369:11:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8712,"name":"uint256","nodeType":"ElementaryTypeName","src":"3369:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8720,"initialValue":{"arguments":[{"baseExpression":{"id":8716,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"3406:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8718,"indexExpression":{"id":8717,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8706,"src":"3419:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3406:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8714,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"3383:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3393:12:25","memberName":"getTimestamp","nodeType":"MemberAccess","referencedDeclaration":7578,"src":"3383:22:25","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":8719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3383:48:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3369:62:25"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8721,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8713,"src":"3448:3:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3455:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3448:8:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":8725,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8713,"src":"3463:3:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3448:18:25","trueExpression":{"hexValue":"30","id":8724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3459:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8711,"id":8727,"nodeType":"Return","src":"3441:25:25"}]},"documentation":{"id":8704,"nodeType":"StructuredDocumentation","src":"3189:77:25","text":" @dev Public accessor to check the eta of a queued proposal"},"functionSelector":"ab58fb8e","id":8729,"implemented":true,"kind":"function","modifiers":[],"name":"proposalEta","nameLocation":"3280:11:25","nodeType":"FunctionDefinition","overrides":{"id":8708,"nodeType":"OverrideSpecifier","overrides":[],"src":"3332:8:25"},"parameters":{"id":8707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8706,"mutability":"mutable","name":"proposalId","nameLocation":"3300:10:25","nodeType":"VariableDeclaration","scope":8729,"src":"3292:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8705,"name":"uint256","nodeType":"ElementaryTypeName","src":"3292:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3291:20:25"},"returnParameters":{"id":8711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8729,"src":"3350:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8709,"name":"uint256","nodeType":"ElementaryTypeName","src":"3350:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3349:9:25"},"scope":8940,"src":"3271:259:25","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9225],"body":{"id":8806,"nodeType":"Block","src":"3807:542:25","statements":[{"assignments":[8748],"declarations":[{"constant":false,"id":8748,"mutability":"mutable","name":"proposalId","nameLocation":"3825:10:25","nodeType":"VariableDeclaration","scope":8806,"src":"3817:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3817:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8755,"initialValue":{"arguments":[{"id":8750,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"3851:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":8751,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"3860:6:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":8752,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8739,"src":"3868:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":8753,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"3879:15:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8749,"name":"hashProposal","nodeType":"Identifier","overloadedDeclarations":[5879],"referencedDeclaration":5879,"src":"3838:12:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) pure returns (uint256)"}},"id":8754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:57:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3817:78:25"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"id":8762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8758,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"3920:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8757,"name":"state","nodeType":"Identifier","overloadedDeclarations":[8690],"referencedDeclaration":8690,"src":"3914:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":8759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:17:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":8760,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"3935:13:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$6963_$","typeString":"type(enum IGovernor.ProposalState)"}},"id":8761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3949:9:25","memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":6959,"src":"3935:23:25","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"src":"3914:44:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756c","id":8763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3960:35:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""},"value":"Governor: proposal not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9","typeString":"literal_string \"Governor: proposal not successful\""}],"id":8756,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3906:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3906:90:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8765,"nodeType":"ExpressionStatement","src":"3906:90:25"},{"assignments":[8767],"declarations":[{"constant":false,"id":8767,"mutability":"mutable","name":"delay","nameLocation":"4015:5:25","nodeType":"VariableDeclaration","scope":8806,"src":"4007:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8766,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8771,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8768,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"4023:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4033:11:25","memberName":"getMinDelay","nodeType":"MemberAccess","referencedDeclaration":7587,"src":"4023:21:25","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:23:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4007:39:25"},{"expression":{"id":8783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8772,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"4056:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8774,"indexExpression":{"id":8773,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"4069:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4056:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8777,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"4112:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":8778,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"4121:6:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":8779,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8739,"src":"4129:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":8780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4140:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":8781,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"4143:15:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8775,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"4083:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4093:18:25","memberName":"hashOperationBatch","nodeType":"MemberAccess","referencedDeclaration":7646,"src":"4083:28:25","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) pure external returns (bytes32)"}},"id":8782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4083:76:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4056:103:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8784,"nodeType":"ExpressionStatement","src":"4056:103:25"},{"expression":{"arguments":[{"id":8788,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8733,"src":"4193:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":8789,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8736,"src":"4202:6:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":8790,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8739,"src":"4210:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":8791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4221:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":8792,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"4224:15:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8793,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8767,"src":"4241:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8785,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"4169:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:13:25","memberName":"scheduleBatch","nodeType":"MemberAccess","referencedDeclaration":7776,"src":"4169:23:25","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32,uint256) external"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4169:78:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"ExpressionStatement","src":"4169:78:25"},{"eventCall":{"arguments":[{"id":8797,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"4278:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8798,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4290:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4296:9:25","memberName":"timestamp","nodeType":"MemberAccess","src":"4290:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8800,"name":"delay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8767,"src":"4308:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4290:23:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8796,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9197,"src":"4263:14:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":8802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:51:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8803,"nodeType":"EmitStatement","src":"4258:56:25"},{"expression":{"id":8804,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"4332:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8746,"id":8805,"nodeType":"Return","src":"4325:17:25"}]},"documentation":{"id":8730,"nodeType":"StructuredDocumentation","src":"3536:69:25","text":" @dev Function to queue a proposal to the timelock."},"functionSelector":"160cbed7","id":8807,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nameLocation":"3619:5:25","nodeType":"FunctionDefinition","overrides":{"id":8743,"nodeType":"OverrideSpecifier","overrides":[],"src":"3780:8:25"},"parameters":{"id":8742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"targets","nameLocation":"3651:7:25","nodeType":"VariableDeclaration","scope":8807,"src":"3634:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8731,"name":"address","nodeType":"ElementaryTypeName","src":"3634:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8732,"nodeType":"ArrayTypeName","src":"3634:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8736,"mutability":"mutable","name":"values","nameLocation":"3685:6:25","nodeType":"VariableDeclaration","scope":8807,"src":"3668:23:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8734,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8735,"nodeType":"ArrayTypeName","src":"3668:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8739,"mutability":"mutable","name":"calldatas","nameLocation":"3716:9:25","nodeType":"VariableDeclaration","scope":8807,"src":"3701:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8737,"name":"bytes","nodeType":"ElementaryTypeName","src":"3701:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8738,"nodeType":"ArrayTypeName","src":"3701:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":8741,"mutability":"mutable","name":"descriptionHash","nameLocation":"3743:15:25","nodeType":"VariableDeclaration","scope":8807,"src":"3735:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8740,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3624:140:25"},"returnParameters":{"id":8746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8807,"src":"3798:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8744,"name":"uint256","nodeType":"ElementaryTypeName","src":"3798:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3797:9:25"},"scope":8940,"src":"3610:739:25","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[6351],"body":{"id":8838,"nodeType":"Block","src":"4688:105:25","statements":[{"expression":{"arguments":[{"id":8831,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8813,"src":"4739:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":8832,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8816,"src":"4748:6:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":8833,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8819,"src":"4756:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"hexValue":"30","id":8834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":8835,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8821,"src":"4770:15:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8825,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"4698:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:12:25","memberName":"executeBatch","nodeType":"MemberAccess","referencedDeclaration":7990,"src":"4698:22:25","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) payable external"}},"id":8830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":8828,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4728:3:25","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4732:5:25","memberName":"value","nodeType":"MemberAccess","src":"4728:9:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4698:40:25","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$__$value","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32,bytes32) payable external"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4698:88:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8837,"nodeType":"ExpressionStatement","src":"4698:88:25"}]},"documentation":{"id":8808,"nodeType":"StructuredDocumentation","src":"4355:110:25","text":" @dev Overridden execute function that run the already queued proposal through the timelock."},"id":8839,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"4479:8:25","nodeType":"FunctionDefinition","overrides":{"id":8823,"nodeType":"OverrideSpecifier","overrides":[],"src":"4679:8:25"},"parameters":{"id":8822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8839,"src":"4497:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8809,"name":"uint256","nodeType":"ElementaryTypeName","src":"4497:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8813,"mutability":"mutable","name":"targets","nameLocation":"4548:7:25","nodeType":"VariableDeclaration","scope":8839,"src":"4531:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8811,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8812,"nodeType":"ArrayTypeName","src":"4531:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8816,"mutability":"mutable","name":"values","nameLocation":"4582:6:25","nodeType":"VariableDeclaration","scope":8839,"src":"4565:23:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8814,"name":"uint256","nodeType":"ElementaryTypeName","src":"4565:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8815,"nodeType":"ArrayTypeName","src":"4565:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8819,"mutability":"mutable","name":"calldatas","nameLocation":"4613:9:25","nodeType":"VariableDeclaration","scope":8839,"src":"4598:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8817,"name":"bytes","nodeType":"ElementaryTypeName","src":"4598:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8818,"nodeType":"ArrayTypeName","src":"4598:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":8821,"mutability":"mutable","name":"descriptionHash","nameLocation":"4640:15:25","nodeType":"VariableDeclaration","scope":8839,"src":"4632:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4632:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4487:174:25"},"returnParameters":{"id":8824,"nodeType":"ParameterList","parameters":[],"src":"4688:0:25"},"scope":8940,"src":"4470:323:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[6514],"body":{"id":8889,"nodeType":"Block","src":"5402:281:25","statements":[{"assignments":[8858],"declarations":[{"constant":false,"id":8858,"mutability":"mutable","name":"proposalId","nameLocation":"5420:10:25","nodeType":"VariableDeclaration","scope":8889,"src":"5412:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8857,"name":"uint256","nodeType":"ElementaryTypeName","src":"5412:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8866,"initialValue":{"arguments":[{"id":8861,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8843,"src":"5447:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":8862,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8846,"src":"5456:6:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":8863,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8849,"src":"5464:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":8864,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8851,"src":"5475:15:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8859,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5433:5:25","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GovernorTimelockControl_$8940_$","typeString":"type(contract super GovernorTimelockControl)"}},"id":8860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5439:7:25","memberName":"_cancel","nodeType":"MemberAccess","referencedDeclaration":6514,"src":"5433:13:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) returns (uint256)"}},"id":8865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5433:58:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5412:79:25"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8867,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"5506:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8869,"indexExpression":{"id":8868,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"5519:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5506:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5534:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5506:29:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8886,"nodeType":"IfStatement","src":"5502:147:25","trueBody":{"id":8885,"nodeType":"Block","src":"5537:112:25","statements":[{"expression":{"arguments":[{"baseExpression":{"id":8875,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"5568:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8877,"indexExpression":{"id":8876,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"5581:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5568:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8872,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"5551:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5561:6:25","memberName":"cancel","nodeType":"MemberAccess","referencedDeclaration":7836,"src":"5551:16:25","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":8878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:42:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8879,"nodeType":"ExpressionStatement","src":"5551:42:25"},{"expression":{"id":8883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5607:31:25","subExpression":{"baseExpression":{"id":8880,"name":"_timelockIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8580,"src":"5614:12:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bytes32_$","typeString":"mapping(uint256 => bytes32)"}},"id":8882,"indexExpression":{"id":8881,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"5627:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5614:24:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8884,"nodeType":"ExpressionStatement","src":"5607:31:25"}]}},{"expression":{"id":8887,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"5666:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8856,"id":8888,"nodeType":"Return","src":"5659:17:25"}]},"documentation":{"id":8840,"nodeType":"StructuredDocumentation","src":"4799:148:25","text":" @dev Overridden version of the {Governor-_cancel} function to cancel the timelocked proposal if it as already\n been queued."},"id":8890,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"5210:7:25","nodeType":"FunctionDefinition","overrides":{"id":8853,"nodeType":"OverrideSpecifier","overrides":[],"src":"5375:8:25"},"parameters":{"id":8852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8843,"mutability":"mutable","name":"targets","nameLocation":"5244:7:25","nodeType":"VariableDeclaration","scope":8890,"src":"5227:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8841,"name":"address","nodeType":"ElementaryTypeName","src":"5227:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8842,"nodeType":"ArrayTypeName","src":"5227:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8846,"mutability":"mutable","name":"values","nameLocation":"5278:6:25","nodeType":"VariableDeclaration","scope":8890,"src":"5261:23:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":8844,"name":"uint256","nodeType":"ElementaryTypeName","src":"5261:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8845,"nodeType":"ArrayTypeName","src":"5261:9:25","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":8849,"mutability":"mutable","name":"calldatas","nameLocation":"5309:9:25","nodeType":"VariableDeclaration","scope":8890,"src":"5294:24:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":8847,"name":"bytes","nodeType":"ElementaryTypeName","src":"5294:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":8848,"nodeType":"ArrayTypeName","src":"5294:7:25","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":8851,"mutability":"mutable","name":"descriptionHash","nameLocation":"5336:15:25","nodeType":"VariableDeclaration","scope":8890,"src":"5328:23:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5328:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5217:140:25"},"returnParameters":{"id":8856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8890,"src":"5393:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8854,"name":"uint256","nodeType":"ElementaryTypeName","src":"5393:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5392:9:25"},"scope":8940,"src":"5201:482:25","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[6881],"body":{"id":8902,"nodeType":"Block","src":"5867:42:25","statements":[{"expression":{"arguments":[{"id":8899,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"5892:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5884:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8897,"name":"address","nodeType":"ElementaryTypeName","src":"5884:7:25","typeDescriptions":{}}},"id":8900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5884:18:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8896,"id":8901,"nodeType":"Return","src":"5877:25:25"}]},"documentation":{"id":8891,"nodeType":"StructuredDocumentation","src":"5689:103:25","text":" @dev Address through which the governor executes action. In this case, the timelock."},"id":8903,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"5806:9:25","nodeType":"FunctionDefinition","overrides":{"id":8893,"nodeType":"OverrideSpecifier","overrides":[],"src":"5840:8:25"},"parameters":{"id":8892,"nodeType":"ParameterList","parameters":[],"src":"5815:2:25"},"returnParameters":{"id":8896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8903,"src":"5858:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8894,"name":"address","nodeType":"ElementaryTypeName","src":"5858:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5857:9:25"},"scope":8940,"src":"5797:112:25","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8916,"nodeType":"Block","src":"6335:45:25","statements":[{"expression":{"arguments":[{"id":8913,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8907,"src":"6361:11:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8912,"name":"_updateTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8939,"src":"6345:15:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_TimelockController_$8159_$returns$__$","typeString":"function (contract TimelockController)"}},"id":8914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:28:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8915,"nodeType":"ExpressionStatement","src":"6345:28:25"}]},"documentation":{"id":8904,"nodeType":"StructuredDocumentation","src":"5915:327:25","text":" @dev Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates\n must be proposed, scheduled, and executed through governance proposals.\n CAUTION: It is not recommended to change the timelock while there are other queued governance proposals."},"functionSelector":"a890c910","id":8917,"implemented":true,"kind":"function","modifiers":[{"id":8910,"kind":"modifierInvocation","modifierName":{"id":8909,"name":"onlyGovernance","nameLocations":["6320:14:25"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"6320:14:25"},"nodeType":"ModifierInvocation","src":"6320:14:25"}],"name":"updateTimelock","nameLocation":"6256:14:25","nodeType":"FunctionDefinition","parameters":{"id":8908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8907,"mutability":"mutable","name":"newTimelock","nameLocation":"6290:11:25","nodeType":"VariableDeclaration","scope":8917,"src":"6271:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"},"typeName":{"id":8906,"nodeType":"UserDefinedTypeName","pathNode":{"id":8905,"name":"TimelockController","nameLocations":["6271:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"6271:18:25"},"referencedDeclaration":8159,"src":"6271:18:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"6270:32:25"},"returnParameters":{"id":8911,"nodeType":"ParameterList","parameters":[],"src":"6335:0:25"},"scope":8940,"src":"6247:133:25","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":8938,"nodeType":"Block","src":"6451:111:25","statements":[{"eventCall":{"arguments":[{"arguments":[{"id":8926,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"6489:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6481:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8924,"name":"address","nodeType":"ElementaryTypeName","src":"6481:7:25","typeDescriptions":{}}},"id":8927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6481:18:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8930,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"6509:11:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}],"id":8929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6501:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8928,"name":"address","nodeType":"ElementaryTypeName","src":"6501:7:25","typeDescriptions":{}}},"id":8931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6501:20:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8923,"name":"TimelockChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8587,"src":"6466:14:25","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":8932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6466:56:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8933,"nodeType":"EmitStatement","src":"6461:61:25"},{"expression":{"id":8936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8934,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8576,"src":"6532:9:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8935,"name":"newTimelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"6544:11:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"src":"6532:23:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"id":8937,"nodeType":"ExpressionStatement","src":"6532:23:25"}]},"id":8939,"implemented":true,"kind":"function","modifiers":[],"name":"_updateTimelock","nameLocation":"6395:15:25","nodeType":"FunctionDefinition","parameters":{"id":8921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8920,"mutability":"mutable","name":"newTimelock","nameLocation":"6430:11:25","nodeType":"VariableDeclaration","scope":8939,"src":"6411:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"},"typeName":{"id":8919,"nodeType":"UserDefinedTypeName","pathNode":{"id":8918,"name":"TimelockController","nameLocations":["6411:18:25"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"6411:18:25"},"referencedDeclaration":8159,"src":"6411:18:25","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"6410:32:25"},"returnParameters":{"id":8922,"nodeType":"ParameterList","parameters":[],"src":"6451:0:25"},"scope":8940,"src":"6386:176:25","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":8941,"src":"1325:5239:25","usedErrors":[17751]}],"src":"133:6432:25"},"id":25},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorVotes":[8982],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"IVotes":[9304],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"Timers":[14787]},"id":8983,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8942,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:26"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"../Governor.sol","id":8943,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8983,"sourceUnit":6949,"src":"148:25:26","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"../utils/IVotes.sol","id":8944,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8983,"sourceUnit":9305,"src":"174:29:26","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8946,"name":"Governor","nameLocations":["405:8:26"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"405:8:26"},"id":8947,"nodeType":"InheritanceSpecifier","src":"405:8:26"}],"canonicalName":"GovernorVotes","contractDependencies":[],"contractKind":"contract","documentation":{"id":8945,"nodeType":"StructuredDocumentation","src":"205:164:26","text":" @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token.\n _Available since v4.3._"},"fullyImplemented":false,"id":8982,"linearizedBaseContracts":[8982,6948,9345,12064,7245,15302,15326,15338,14324],"name":"GovernorVotes","nameLocation":"388:13:26","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"fc0c546a","id":8950,"mutability":"immutable","name":"token","nameLocation":"444:5:26","nodeType":"VariableDeclaration","scope":8982,"src":"420:29:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"},"typeName":{"id":8949,"nodeType":"UserDefinedTypeName","pathNode":{"id":8948,"name":"IVotes","nameLocations":["420:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":9304,"src":"420:6:26"},"referencedDeclaration":9304,"src":"420:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"visibility":"public"},{"body":{"id":8960,"nodeType":"Block","src":"489:37:26","statements":[{"expression":{"id":8958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8956,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"499:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8957,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8953,"src":"507:12:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"src":"499:20:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"id":8959,"nodeType":"ExpressionStatement","src":"499:20:26"}]},"id":8961,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8953,"mutability":"mutable","name":"tokenAddress","nameLocation":"475:12:26","nodeType":"VariableDeclaration","scope":8961,"src":"468:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"},"typeName":{"id":8952,"nodeType":"UserDefinedTypeName","pathNode":{"id":8951,"name":"IVotes","nameLocations":["468:6:26"],"nodeType":"IdentifierPath","referencedDeclaration":9304,"src":"468:6:26"},"referencedDeclaration":9304,"src":"468:6:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"visibility":"internal"}],"src":"467:21:26"},"returnParameters":{"id":8955,"nodeType":"ParameterList","parameters":[],"src":"489:0:26"},"scope":8982,"src":"456:70:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6037],"body":{"id":8980,"nodeType":"Block","src":"812:64:26","statements":[{"expression":{"arguments":[{"id":8976,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8964,"src":"848:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8977,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8966,"src":"857:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8974,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"829:5:26","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"id":8975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"835:12:26","memberName":"getPastVotes","nodeType":"MemberAccess","referencedDeclaration":9265,"src":"829:18:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":8978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"829:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8973,"id":8979,"nodeType":"Return","src":"822:47:26"}]},"documentation":{"id":8962,"nodeType":"StructuredDocumentation","src":"532:114:26","text":" Read the voting weight from the token's built in snapshot mechanism (see {Governor-_getVotes})."},"id":8981,"implemented":true,"kind":"function","modifiers":[],"name":"_getVotes","nameLocation":"660:9:26","nodeType":"FunctionDefinition","overrides":{"id":8970,"nodeType":"OverrideSpecifier","overrides":[],"src":"785:8:26"},"parameters":{"id":8969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8964,"mutability":"mutable","name":"account","nameLocation":"687:7:26","nodeType":"VariableDeclaration","scope":8981,"src":"679:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8963,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8966,"mutability":"mutable","name":"blockNumber","nameLocation":"712:11:26","nodeType":"VariableDeclaration","scope":8981,"src":"704:19:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8965,"name":"uint256","nodeType":"ElementaryTypeName","src":"704:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8981,"src":"733:12:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8967,"name":"bytes","nodeType":"ElementaryTypeName","src":"733:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"669:93:26"},"returnParameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8972,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8981,"src":"803:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8971,"name":"uint256","nodeType":"ElementaryTypeName","src":"803:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"802:9:26"},"scope":8982,"src":"651:225:26","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":8983,"src":"370:508:26","usedErrors":[17751]}],"src":"123:756:26"},"id":26},"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol","exportedSymbols":{"Address":[12931],"Checkpoints":[14302],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorVotes":[8982],"GovernorVotesQuorumFraction":[9185],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"IVotes":[9304],"Math":[16203],"SafeCast":[17744],"Strings":[14573],"Timers":[14787]},"id":9186,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8984,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"137:23:27"},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","file":"./GovernorVotes.sol","id":8985,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9186,"sourceUnit":8983,"src":"162:29:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Checkpoints.sol","file":"../../utils/Checkpoints.sol","id":8986,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9186,"sourceUnit":14303,"src":"192:37:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../../utils/math/SafeCast.sol","id":8987,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9186,"sourceUnit":17745,"src":"230:39:27","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8989,"name":"GovernorVotes","nameLocations":["507:13:27"],"nodeType":"IdentifierPath","referencedDeclaration":8982,"src":"507:13:27"},"id":8990,"nodeType":"InheritanceSpecifier","src":"507:13:27"}],"canonicalName":"GovernorVotesQuorumFraction","contractDependencies":[],"contractKind":"contract","documentation":{"id":8988,"nodeType":"StructuredDocumentation","src":"271:186:27","text":" @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a\n fraction of the total supply.\n _Available since v4.3._"},"fullyImplemented":false,"id":9185,"linearizedBaseContracts":[9185,8982,6948,9345,12064,7245,15302,15326,15338,14324],"name":"GovernorVotesQuorumFraction","nameLocation":"476:27:27","nodeType":"ContractDefinition","nodes":[{"global":false,"id":8994,"libraryName":{"id":8991,"name":"Checkpoints","nameLocations":["533:11:27"],"nodeType":"IdentifierPath","referencedDeclaration":14302,"src":"533:11:27"},"nodeType":"UsingForDirective","src":"527:42:27","typeName":{"id":8993,"nodeType":"UserDefinedTypeName","pathNode":{"id":8992,"name":"Checkpoints.History","nameLocations":["549:11:27","561:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"549:19:27"},"referencedDeclaration":12941,"src":"549:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}}},{"constant":false,"id":8996,"mutability":"mutable","name":"_quorumNumerator","nameLocation":"591:16:27","nodeType":"VariableDeclaration","scope":9185,"src":"575:32:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8995,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":8999,"mutability":"mutable","name":"_quorumNumeratorHistory","nameLocation":"655:23:27","nodeType":"VariableDeclaration","scope":9185,"src":"627:51:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History"},"typeName":{"id":8998,"nodeType":"UserDefinedTypeName","pathNode":{"id":8997,"name":"Checkpoints.History","nameLocations":["627:11:27","639:7:27"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"627:19:27"},"referencedDeclaration":12941,"src":"627:19:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"private"},{"anonymous":false,"eventSelector":"0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997","id":9005,"name":"QuorumNumeratorUpdated","nameLocation":"691:22:27","nodeType":"EventDefinition","parameters":{"id":9004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9001,"indexed":false,"mutability":"mutable","name":"oldQuorumNumerator","nameLocation":"722:18:27","nodeType":"VariableDeclaration","scope":9005,"src":"714:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9000,"name":"uint256","nodeType":"ElementaryTypeName","src":"714:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9003,"indexed":false,"mutability":"mutable","name":"newQuorumNumerator","nameLocation":"750:18:27","nodeType":"VariableDeclaration","scope":9005,"src":"742:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9002,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"713:56:27"},"src":"685:85:27"},{"body":{"id":9015,"nodeType":"Block","src":"1199:61:27","statements":[{"expression":{"arguments":[{"id":9012,"name":"quorumNumeratorValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9008,"src":"1232:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9011,"name":"_updateQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1209:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9014,"nodeType":"ExpressionStatement","src":"1209:44:27"}]},"documentation":{"id":9006,"nodeType":"StructuredDocumentation","src":"776:376:27","text":" @dev Initialize quorum as a fraction of the token's total supply.\n The fraction is specified as `numerator / denominator`. By default the denominator is 100, so quorum is\n specified as a percent: a numerator of 10 corresponds to quorum being 10% of total supply. The denominator can be\n customized by overriding {quorumDenominator}."},"id":9016,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9008,"mutability":"mutable","name":"quorumNumeratorValue","nameLocation":"1177:20:27","nodeType":"VariableDeclaration","scope":9016,"src":"1169:28:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1169:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1168:30:27"},"returnParameters":{"id":9010,"nodeType":"ParameterList","parameters":[],"src":"1199:0:27"},"scope":9185,"src":"1157:103:27","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9033,"nodeType":"Block","src":"1422:126:27","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9022,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"1439:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1463:12:27","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"1439:36:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1476:6:27","memberName":"length","nodeType":"MemberAccess","src":"1439:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1486:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1439:48:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9028,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"1509:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1533:6:27","memberName":"latest","nodeType":"MemberAccess","referencedDeclaration":13195,"src":"1509:30:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$12941_storage_ptr_$returns$_t_uint224_$bound_to$_t_struct$_History_$12941_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint224)"}},"id":9030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1509:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1439:102:27","trueExpression":{"id":9027,"name":"_quorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8996,"src":"1490:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9021,"id":9032,"nodeType":"Return","src":"1432:109:27"}]},"documentation":{"id":9017,"nodeType":"StructuredDocumentation","src":"1266:86:27","text":" @dev Returns the current quorum numerator. See {quorumDenominator}."},"functionSelector":"a7713a70","id":9034,"implemented":true,"kind":"function","modifiers":[],"name":"quorumNumerator","nameLocation":"1366:15:27","nodeType":"FunctionDefinition","parameters":{"id":9018,"nodeType":"ParameterList","parameters":[],"src":"1381:2:27"},"returnParameters":{"id":9021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9034,"src":"1413:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1412:9:27"},"scope":9185,"src":"1357:191:27","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9081,"nodeType":"Block","src":"1748:565:27","statements":[{"assignments":[9043],"declarations":[{"constant":false,"id":9043,"mutability":"mutable","name":"length","nameLocation":"1822:6:27","nodeType":"VariableDeclaration","scope":9081,"src":"1814:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9042,"name":"uint256","nodeType":"ElementaryTypeName","src":"1814:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9047,"initialValue":{"expression":{"expression":{"id":9044,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"1831:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1855:12:27","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"1831:36:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":9046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1868:6:27","memberName":"length","nodeType":"MemberAccess","src":"1831:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1814:60:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9048,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"1888:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1898:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1888:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9054,"nodeType":"IfStatement","src":"1884:65:27","trueBody":{"id":9053,"nodeType":"Block","src":"1901:48:27","statements":[{"expression":{"id":9051,"name":"_quorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8996,"src":"1922:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9041,"id":9052,"nodeType":"Return","src":"1915:23:27"}]}},{"assignments":[9059],"declarations":[{"constant":false,"id":9059,"mutability":"mutable","name":"latest","nameLocation":"2047:6:27","nodeType":"VariableDeclaration","scope":9081,"src":"2017:36:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint"},"typeName":{"id":9058,"nodeType":"UserDefinedTypeName","pathNode":{"id":9057,"name":"Checkpoints.Checkpoint","nameLocations":["2017:11:27","2029:10:27"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"2017:22:27"},"referencedDeclaration":12946,"src":"2017:22:27","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"visibility":"internal"}],"id":9066,"initialValue":{"baseExpression":{"expression":{"id":9060,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2056:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2080:12:27","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"2056:36:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":9065,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9062,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"2093:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":9063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2102:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2093:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2056:48:27","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage","typeString":"struct Checkpoints.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2017:87:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9067,"name":"latest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"2118:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":9068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2125:12:27","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"2118:19:27","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":9069,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2141:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2118:34:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9075,"nodeType":"IfStatement","src":"2114:85:27","trueBody":{"id":9074,"nodeType":"Block","src":"2154:45:27","statements":[{"expression":{"expression":{"id":9071,"name":"latest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"2175:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":9072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2182:6:27","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"2175:13:27","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":9041,"id":9073,"nodeType":"Return","src":"2168:20:27"}]}},{"expression":{"arguments":[{"id":9078,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2294:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9076,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2259:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2283:10:27","memberName":"getAtBlock","nodeType":"MemberAccess","referencedDeclaration":13003,"src":"2259:34:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$12941_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_History_$12941_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) view returns (uint256)"}},"id":9079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2259:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9041,"id":9080,"nodeType":"Return","src":"2252:54:27"}]},"documentation":{"id":9035,"nodeType":"StructuredDocumentation","src":"1554:105:27","text":" @dev Returns the quorum numerator at a specific block number. See {quorumDenominator}."},"functionSelector":"60c4247f","id":9082,"implemented":true,"kind":"function","modifiers":[],"name":"quorumNumerator","nameLocation":"1673:15:27","nodeType":"FunctionDefinition","parameters":{"id":9038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9037,"mutability":"mutable","name":"blockNumber","nameLocation":"1697:11:27","nodeType":"VariableDeclaration","scope":9082,"src":"1689:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1689:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1688:21:27"},"returnParameters":{"id":9041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9082,"src":"1739:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9039,"name":"uint256","nodeType":"ElementaryTypeName","src":"1739:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1738:9:27"},"scope":9185,"src":"1664:649:27","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9090,"nodeType":"Block","src":"2486:27:27","statements":[{"expression":{"hexValue":"313030","id":9088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2503:3:27","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"functionReturnParameters":9087,"id":9089,"nodeType":"Return","src":"2496:10:27"}]},"documentation":{"id":9083,"nodeType":"StructuredDocumentation","src":"2319:95:27","text":" @dev Returns the quorum denominator. Defaults to 100, but may be overridden."},"functionSelector":"97c3d334","id":9091,"implemented":true,"kind":"function","modifiers":[],"name":"quorumDenominator","nameLocation":"2428:17:27","nodeType":"FunctionDefinition","parameters":{"id":9084,"nodeType":"ParameterList","parameters":[],"src":"2445:2:27"},"returnParameters":{"id":9087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9091,"src":"2477:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9085,"name":"uint256","nodeType":"ElementaryTypeName","src":"2477:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2476:9:27"},"scope":9185,"src":"2419:94:27","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7106],"body":{"id":9113,"nodeType":"Block","src":"2735:116:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9102,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9094,"src":"2778:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9100,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8950,"src":"2753:5:27","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"id":9101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2759:18:27","memberName":"getPastTotalSupply","nodeType":"MemberAccess","referencedDeclaration":9273,"src":"2753:24:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":9103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":9105,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9094,"src":"2809:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9104,"name":"quorumNumerator","nodeType":"Identifier","overloadedDeclarations":[9034,9082],"referencedDeclaration":9082,"src":"2793:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":9106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2793:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2753:68:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2752:70:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9109,"name":"quorumDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"2825:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":9110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2825:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2752:92:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9099,"id":9112,"nodeType":"Return","src":"2745:99:27"}]},"documentation":{"id":9092,"nodeType":"StructuredDocumentation","src":"2519:127:27","text":" @dev Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`."},"functionSelector":"f8ce560a","id":9114,"implemented":true,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"2660:6:27","nodeType":"FunctionDefinition","overrides":{"id":9096,"nodeType":"OverrideSpecifier","overrides":[],"src":"2708:8:27"},"parameters":{"id":9095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9094,"mutability":"mutable","name":"blockNumber","nameLocation":"2675:11:27","nodeType":"VariableDeclaration","scope":9114,"src":"2667:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9093,"name":"uint256","nodeType":"ElementaryTypeName","src":"2667:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2666:21:27"},"returnParameters":{"id":9099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9114,"src":"2726:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9097,"name":"uint256","nodeType":"ElementaryTypeName","src":"2726:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2725:9:27"},"scope":9185,"src":"2651:200:27","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9126,"nodeType":"Block","src":"3218:59:27","statements":[{"expression":{"arguments":[{"id":9123,"name":"newQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"3251:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9122,"name":"_updateQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"3228:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3228:42:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9125,"nodeType":"ExpressionStatement","src":"3228:42:27"}]},"documentation":{"id":9115,"nodeType":"StructuredDocumentation","src":"2857:265:27","text":" @dev Changes the quorum numerator.\n Emits a {QuorumNumeratorUpdated} event.\n Requirements:\n - Must be called through a governance proposal.\n - New numerator must be smaller or equal to the denominator."},"functionSelector":"06f3f9e6","id":9127,"implemented":true,"kind":"function","modifiers":[{"id":9120,"kind":"modifierInvocation","modifierName":{"id":9119,"name":"onlyGovernance","nameLocations":["3203:14:27"],"nodeType":"IdentifierPath","referencedDeclaration":5745,"src":"3203:14:27"},"nodeType":"ModifierInvocation","src":"3203:14:27"}],"name":"updateQuorumNumerator","nameLocation":"3136:21:27","nodeType":"FunctionDefinition","parameters":{"id":9118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9117,"mutability":"mutable","name":"newQuorumNumerator","nameLocation":"3166:18:27","nodeType":"VariableDeclaration","scope":9127,"src":"3158:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"3158:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3157:28:27"},"returnParameters":{"id":9121,"nodeType":"ParameterList","parameters":[],"src":"3218:0:27"},"scope":9185,"src":"3127:150:27","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":9183,"nodeType":"Block","src":"3575:810:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9134,"name":"newQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"3606:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9135,"name":"quorumDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"3628:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":9136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:19:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3606:41:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e61746f72","id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3661:69:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb","typeString":"literal_string \"GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator\""},"value":"GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb","typeString":"literal_string \"GovernorVotesQuorumFraction: quorumNumerator over quorumDenominator\""}],"id":9133,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3585:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3585:155:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9140,"nodeType":"ExpressionStatement","src":"3585:155:27"},{"assignments":[9142],"declarations":[{"constant":false,"id":9142,"mutability":"mutable","name":"oldQuorumNumerator","nameLocation":"3759:18:27","nodeType":"VariableDeclaration","scope":9183,"src":"3751:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9141,"name":"uint256","nodeType":"ElementaryTypeName","src":"3751:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9145,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9143,"name":"quorumNumerator","nodeType":"Identifier","overloadedDeclarations":[9034,9082],"referencedDeclaration":9034,"src":"3780:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":9144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3751:46:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9146,"name":"oldQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"3931:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3931:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":9149,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"3958:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3982:12:27","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"3958:36:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":9151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3995:6:27","memberName":"length","nodeType":"MemberAccess","src":"3958:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4005:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3958:48:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3931:75:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9171,"nodeType":"IfStatement","src":"3927:268:27","trueBody":{"id":9170,"nodeType":"Block","src":"4008:187:27","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4119:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":9165,"name":"oldQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4149:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9163,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"4130:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":9164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4139:9:27","memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":16306,"src":"4130:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4130:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"expression":{"id":9160,"name":"Checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14302,"src":"4081:11:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Checkpoints_$14302_$","typeString":"type(library Checkpoints)"}},"id":9161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4093:10:27","memberName":"Checkpoint","nodeType":"MemberAccess","referencedDeclaration":12946,"src":"4081:22:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint storage pointer)"}},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4105:12:27","4122:6:27"],"names":["_blockNumber","_value"],"nodeType":"FunctionCall","src":"4081:89:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}],"expression":{"expression":{"id":9155,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"4022:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4046:12:27","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"4022:36:27","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":9159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4059:4:27","memberName":"push","nodeType":"MemberAccess","src":"4022:41:27","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$12946_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,struct Checkpoints.Checkpoint storage ref)"}},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:162:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9169,"nodeType":"ExpressionStatement","src":"4022:162:27"}]}},{"expression":{"arguments":[{"id":9175,"name":"newQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"4281:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9172,"name":"_quorumNumeratorHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"4252:23:27","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage","typeString":"struct Checkpoints.History storage ref"}},"id":9174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4276:4:27","memberName":"push","nodeType":"MemberAccess","referencedDeclaration":13131,"src":"4252:28:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$12941_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_History_$12941_storage_ptr_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) returns (uint256,uint256)"}},"id":9176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4252:48:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":9177,"nodeType":"ExpressionStatement","src":"4252:48:27"},{"eventCall":{"arguments":[{"id":9179,"name":"oldQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9142,"src":"4339:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9180,"name":"newQuorumNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9130,"src":"4359:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9178,"name":"QuorumNumeratorUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"4316:22:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":9181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:62:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9182,"nodeType":"EmitStatement","src":"4311:67:27"}]},"documentation":{"id":9128,"nodeType":"StructuredDocumentation","src":"3283:210:27","text":" @dev Changes the quorum numerator.\n Emits a {QuorumNumeratorUpdated} event.\n Requirements:\n - New numerator must be smaller or equal to the denominator."},"id":9184,"implemented":true,"kind":"function","modifiers":[],"name":"_updateQuorumNumerator","nameLocation":"3507:22:27","nodeType":"FunctionDefinition","parameters":{"id":9131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9130,"mutability":"mutable","name":"newQuorumNumerator","nameLocation":"3538:18:27","nodeType":"VariableDeclaration","scope":9184,"src":"3530:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9129,"name":"uint256","nodeType":"ElementaryTypeName","src":"3530:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3529:28:27"},"returnParameters":{"id":9132,"nodeType":"ParameterList","parameters":[],"src":"3575:0:27"},"scope":9185,"src":"3498:887:27","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9186,"src":"458:3929:27","usedErrors":[17751]}],"src":"137:4251:27"},"id":27},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol","exportedSymbols":{"ERC165":[15326],"IERC165":[15338],"IGovernor":[7245],"IGovernorTimelock":[9226]},"id":9227,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9187,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:28"},{"absolutePath":"@openzeppelin/contracts/governance/IGovernor.sol","file":"../IGovernor.sol","id":9188,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9227,"sourceUnit":7246,"src":"137:26:28","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":9190,"name":"IGovernor","nameLocations":["312:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"312:9:28"},"id":9191,"nodeType":"InheritanceSpecifier","src":"312:9:28"}],"canonicalName":"IGovernorTimelock","contractDependencies":[],"contractKind":"contract","documentation":{"id":9189,"nodeType":"StructuredDocumentation","src":"165:107:28","text":" @dev Extension of the {IGovernor} for timelock supporting modules.\n _Available since v4.3._"},"fullyImplemented":false,"id":9226,"linearizedBaseContracts":[9226,7245,15338],"name":"IGovernorTimelock","nameLocation":"291:17:28","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892","id":9197,"name":"ProposalQueued","nameLocation":"334:14:28","nodeType":"EventDefinition","parameters":{"id":9196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9193,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"357:10:28","nodeType":"VariableDeclaration","scope":9197,"src":"349:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9192,"name":"uint256","nodeType":"ElementaryTypeName","src":"349:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9195,"indexed":false,"mutability":"mutable","name":"eta","nameLocation":"377:3:28","nodeType":"VariableDeclaration","scope":9197,"src":"369:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9194,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"348:33:28"},"src":"328:54:28"},{"functionSelector":"d33219b4","id":9202,"implemented":false,"kind":"function","modifiers":[],"name":"timelock","nameLocation":"397:8:28","nodeType":"FunctionDefinition","parameters":{"id":9198,"nodeType":"ParameterList","parameters":[],"src":"405:2:28"},"returnParameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9202,"src":"437:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9199,"name":"address","nodeType":"ElementaryTypeName","src":"437:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"436:9:28"},"scope":9226,"src":"388:58:28","stateMutability":"view","virtual":true,"visibility":"public"},{"functionSelector":"ab58fb8e","id":9209,"implemented":false,"kind":"function","modifiers":[],"name":"proposalEta","nameLocation":"461:11:28","nodeType":"FunctionDefinition","parameters":{"id":9205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9204,"mutability":"mutable","name":"proposalId","nameLocation":"481:10:28","nodeType":"VariableDeclaration","scope":9209,"src":"473:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9203,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"472:20:28"},"returnParameters":{"id":9208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9209,"src":"522:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9206,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"521:9:28"},"scope":9226,"src":"452:79:28","stateMutability":"view","virtual":true,"visibility":"public"},{"functionSelector":"160cbed7","id":9225,"implemented":false,"kind":"function","modifiers":[],"name":"queue","nameLocation":"546:5:28","nodeType":"FunctionDefinition","parameters":{"id":9221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9212,"mutability":"mutable","name":"targets","nameLocation":"578:7:28","nodeType":"VariableDeclaration","scope":9225,"src":"561:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":9210,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9211,"nodeType":"ArrayTypeName","src":"561:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":9215,"mutability":"mutable","name":"values","nameLocation":"612:6:28","nodeType":"VariableDeclaration","scope":9225,"src":"595:23:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9213,"name":"uint256","nodeType":"ElementaryTypeName","src":"595:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9214,"nodeType":"ArrayTypeName","src":"595:9:28","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9218,"mutability":"mutable","name":"calldatas","nameLocation":"643:9:28","nodeType":"VariableDeclaration","scope":9225,"src":"628:24:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":9216,"name":"bytes","nodeType":"ElementaryTypeName","src":"628:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":9217,"nodeType":"ArrayTypeName","src":"628:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":9220,"mutability":"mutable","name":"descriptionHash","nameLocation":"670:15:28","nodeType":"VariableDeclaration","scope":9225,"src":"662:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"662:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"551:140:28"},"returnParameters":{"id":9224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9223,"mutability":"mutable","name":"proposalId","nameLocation":"724:10:28","nodeType":"VariableDeclaration","scope":9225,"src":"716:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9222,"name":"uint256","nodeType":"ElementaryTypeName","src":"716:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"715:20:28"},"scope":9226,"src":"537:199:28","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":9227,"src":"273:465:28","usedErrors":[]}],"src":"112:627:28"},"id":28},"@openzeppelin/contracts/governance/utils/IVotes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","exportedSymbols":{"IVotes":[9304]},"id":9305,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9228,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:29"},{"abstract":false,"baseContracts":[],"canonicalName":"IVotes","contractDependencies":[],"contractKind":"interface","documentation":{"id":9229,"nodeType":"StructuredDocumentation","src":"135:132:29","text":" @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.\n _Available since v4.5._"},"fullyImplemented":false,"id":9304,"linearizedBaseContracts":[9304],"name":"IVotes","nameLocation":"278:6:29","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":9230,"nodeType":"StructuredDocumentation","src":"291:71:29","text":" @dev Emitted when an account changes their delegate."},"eventSelector":"3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f","id":9238,"name":"DelegateChanged","nameLocation":"373:15:29","nodeType":"EventDefinition","parameters":{"id":9237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9232,"indexed":true,"mutability":"mutable","name":"delegator","nameLocation":"405:9:29","nodeType":"VariableDeclaration","scope":9238,"src":"389:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9231,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9234,"indexed":true,"mutability":"mutable","name":"fromDelegate","nameLocation":"432:12:29","nodeType":"VariableDeclaration","scope":9238,"src":"416:28:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9233,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9236,"indexed":true,"mutability":"mutable","name":"toDelegate","nameLocation":"462:10:29","nodeType":"VariableDeclaration","scope":9238,"src":"446:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9235,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"388:85:29"},"src":"367:107:29"},{"anonymous":false,"documentation":{"id":9239,"nodeType":"StructuredDocumentation","src":"480:124:29","text":" @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes."},"eventSelector":"dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","id":9247,"name":"DelegateVotesChanged","nameLocation":"615:20:29","nodeType":"EventDefinition","parameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9241,"indexed":true,"mutability":"mutable","name":"delegate","nameLocation":"652:8:29","nodeType":"VariableDeclaration","scope":9247,"src":"636:24:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9240,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9243,"indexed":false,"mutability":"mutable","name":"previousBalance","nameLocation":"670:15:29","nodeType":"VariableDeclaration","scope":9247,"src":"662:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9242,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9245,"indexed":false,"mutability":"mutable","name":"newBalance","nameLocation":"695:10:29","nodeType":"VariableDeclaration","scope":9247,"src":"687:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9244,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"635:71:29"},"src":"609:98:29"},{"documentation":{"id":9248,"nodeType":"StructuredDocumentation","src":"713:79:29","text":" @dev Returns the current amount of votes that `account` has."},"functionSelector":"9ab24eb0","id":9255,"implemented":false,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"806:8:29","nodeType":"FunctionDefinition","parameters":{"id":9251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9250,"mutability":"mutable","name":"account","nameLocation":"823:7:29","nodeType":"VariableDeclaration","scope":9255,"src":"815:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9249,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"814:17:29"},"returnParameters":{"id":9254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9255,"src":"855:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9252,"name":"uint256","nodeType":"ElementaryTypeName","src":"855:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"854:9:29"},"scope":9304,"src":"797:67:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9256,"nodeType":"StructuredDocumentation","src":"870:114:29","text":" @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`)."},"functionSelector":"3a46b1a8","id":9265,"implemented":false,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"998:12:29","nodeType":"FunctionDefinition","parameters":{"id":9261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9258,"mutability":"mutable","name":"account","nameLocation":"1019:7:29","nodeType":"VariableDeclaration","scope":9265,"src":"1011:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9257,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9260,"mutability":"mutable","name":"blockNumber","nameLocation":"1036:11:29","nodeType":"VariableDeclaration","scope":9265,"src":"1028:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1028:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:38:29"},"returnParameters":{"id":9264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9265,"src":"1072:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9262,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:29"},"scope":9304,"src":"989:92:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9266,"nodeType":"StructuredDocumentation","src":"1087:365:29","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":9273,"implemented":false,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"1466:18:29","nodeType":"FunctionDefinition","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9268,"mutability":"mutable","name":"blockNumber","nameLocation":"1493:11:29","nodeType":"VariableDeclaration","scope":9273,"src":"1485:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1484:21:29"},"returnParameters":{"id":9272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9271,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9273,"src":"1529:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9270,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:9:29"},"scope":9304,"src":"1457:81:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9274,"nodeType":"StructuredDocumentation","src":"1544:71:29","text":" @dev Returns the delegate that `account` has chosen."},"functionSelector":"587cde1e","id":9281,"implemented":false,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"1629:9:29","nodeType":"FunctionDefinition","parameters":{"id":9277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9276,"mutability":"mutable","name":"account","nameLocation":"1647:7:29","nodeType":"VariableDeclaration","scope":9281,"src":"1639:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9275,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1638:17:29"},"returnParameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9281,"src":"1679:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9278,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:9:29"},"scope":9304,"src":"1620:68:29","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9282,"nodeType":"StructuredDocumentation","src":"1694:71:29","text":" @dev Delegates votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":9287,"implemented":false,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"1779:8:29","nodeType":"FunctionDefinition","parameters":{"id":9285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9284,"mutability":"mutable","name":"delegatee","nameLocation":"1796:9:29","nodeType":"VariableDeclaration","scope":9287,"src":"1788:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9283,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:19:29"},"returnParameters":{"id":9286,"nodeType":"ParameterList","parameters":[],"src":"1815:0:29"},"scope":9304,"src":"1770:46:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9288,"nodeType":"StructuredDocumentation","src":"1822:67:29","text":" @dev Delegates votes from signer to `delegatee`."},"functionSelector":"c3cda520","id":9303,"implemented":false,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"1903:13:29","nodeType":"FunctionDefinition","parameters":{"id":9301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9290,"mutability":"mutable","name":"delegatee","nameLocation":"1934:9:29","nodeType":"VariableDeclaration","scope":9303,"src":"1926:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9289,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9292,"mutability":"mutable","name":"nonce","nameLocation":"1961:5:29","nodeType":"VariableDeclaration","scope":9303,"src":"1953:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9291,"name":"uint256","nodeType":"ElementaryTypeName","src":"1953:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9294,"mutability":"mutable","name":"expiry","nameLocation":"1984:6:29","nodeType":"VariableDeclaration","scope":9303,"src":"1976:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9293,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9296,"mutability":"mutable","name":"v","nameLocation":"2006:1:29","nodeType":"VariableDeclaration","scope":9303,"src":"2000:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9295,"name":"uint8","nodeType":"ElementaryTypeName","src":"2000:5:29","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"r","nameLocation":"2025:1:29","nodeType":"VariableDeclaration","scope":9303,"src":"2017:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2017:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9300,"mutability":"mutable","name":"s","nameLocation":"2044:1:29","nodeType":"VariableDeclaration","scope":9303,"src":"2036:9:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2036:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1916:135:29"},"returnParameters":{"id":9302,"nodeType":"ParameterList","parameters":[],"src":"2060:0:29"},"scope":9304,"src":"1894:167:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9305,"src":"268:1795:29","usedErrors":[]}],"src":"110:1954:29"},"id":29},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","exportedSymbols":{"IERC1155Receiver":[9345],"IERC165":[15338]},"id":9346,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9306,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:30"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":9307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9346,"sourceUnit":15339,"src":"143:47:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9309,"name":"IERC165","nameLocations":["262:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"262:7:30"},"id":9310,"nodeType":"InheritanceSpecifier","src":"262:7:30"}],"canonicalName":"IERC1155Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":9308,"nodeType":"StructuredDocumentation","src":"192:39:30","text":" @dev _Available since v3.1._"},"fullyImplemented":false,"id":9345,"linearizedBaseContracts":[9345,15338],"name":"IERC1155Receiver","nameLocation":"242:16:30","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9311,"nodeType":"StructuredDocumentation","src":"276:826:30","text":" @dev Handles the receipt of a single ERC1155 token type. This function is\n called at the end of a `safeTransferFrom` after the balance has been updated.\n NOTE: To accept the transfer, this must return\n `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\n (i.e. 0xf23a6e61, or its own function selector).\n @param operator The address which initiated the transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param id The ID of the token being transferred\n @param value The amount of tokens being transferred\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))` if transfer is allowed"},"functionSelector":"f23a6e61","id":9326,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1116:17:30","nodeType":"FunctionDefinition","parameters":{"id":9322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9313,"mutability":"mutable","name":"operator","nameLocation":"1151:8:30","nodeType":"VariableDeclaration","scope":9326,"src":"1143:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9312,"name":"address","nodeType":"ElementaryTypeName","src":"1143:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9315,"mutability":"mutable","name":"from","nameLocation":"1177:4:30","nodeType":"VariableDeclaration","scope":9326,"src":"1169:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9314,"name":"address","nodeType":"ElementaryTypeName","src":"1169:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9317,"mutability":"mutable","name":"id","nameLocation":"1199:2:30","nodeType":"VariableDeclaration","scope":9326,"src":"1191:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9316,"name":"uint256","nodeType":"ElementaryTypeName","src":"1191:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9319,"mutability":"mutable","name":"value","nameLocation":"1219:5:30","nodeType":"VariableDeclaration","scope":9326,"src":"1211:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9318,"name":"uint256","nodeType":"ElementaryTypeName","src":"1211:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9321,"mutability":"mutable","name":"data","nameLocation":"1249:4:30","nodeType":"VariableDeclaration","scope":9326,"src":"1234:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9320,"name":"bytes","nodeType":"ElementaryTypeName","src":"1234:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1133:126:30"},"returnParameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9326,"src":"1278:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9323,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1278:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1277:8:30"},"scope":9345,"src":"1107:179:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9327,"nodeType":"StructuredDocumentation","src":"1292:994:30","text":" @dev Handles the receipt of a multiple ERC1155 token types. This function\n is called at the end of a `safeBatchTransferFrom` after the balances have\n been updated.\n NOTE: To accept the transfer(s), this must return\n `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\n (i.e. 0xbc197c81, or its own function selector).\n @param operator The address which initiated the batch transfer (i.e. msg.sender)\n @param from The address which previously owned the token\n @param ids An array containing ids of each token being transferred (order and length must match values array)\n @param values An array containing amounts of each token being transferred (order and length must match ids array)\n @param data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))` if transfer is allowed"},"functionSelector":"bc197c81","id":9344,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2300:22:30","nodeType":"FunctionDefinition","parameters":{"id":9340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9329,"mutability":"mutable","name":"operator","nameLocation":"2340:8:30","nodeType":"VariableDeclaration","scope":9344,"src":"2332:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9328,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9331,"mutability":"mutable","name":"from","nameLocation":"2366:4:30","nodeType":"VariableDeclaration","scope":9344,"src":"2358:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9330,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9334,"mutability":"mutable","name":"ids","nameLocation":"2399:3:30","nodeType":"VariableDeclaration","scope":9344,"src":"2380:22:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9332,"name":"uint256","nodeType":"ElementaryTypeName","src":"2380:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9333,"nodeType":"ArrayTypeName","src":"2380:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9337,"mutability":"mutable","name":"values","nameLocation":"2431:6:30","nodeType":"VariableDeclaration","scope":9344,"src":"2412:25:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":9335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2412:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9336,"nodeType":"ArrayTypeName","src":"2412:9:30","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":9339,"mutability":"mutable","name":"data","nameLocation":"2462:4:30","nodeType":"VariableDeclaration","scope":9344,"src":"2447:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":9338,"name":"bytes","nodeType":"ElementaryTypeName","src":"2447:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2322:150:30"},"returnParameters":{"id":9343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9344,"src":"2491:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9341,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2491:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2490:8:30"},"scope":9345,"src":"2291:208:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":9346,"src":"232:2269:30","usedErrors":[]}],"src":"118:2384:30"},"id":30},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[14324],"ERC20":[9932],"IERC20":[10010],"IERC20Metadata":[10777]},"id":9933,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9347,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:31"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":9348,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9933,"sourceUnit":10011,"src":"130:22:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":9349,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9933,"sourceUnit":10778,"src":"153:41:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":9350,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9933,"sourceUnit":14325,"src":"195:33:31","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9352,"name":"Context","nameLocations":["1419:7:31"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"1419:7:31"},"id":9353,"nodeType":"InheritanceSpecifier","src":"1419:7:31"},{"baseName":{"id":9354,"name":"IERC20","nameLocations":["1428:6:31"],"nodeType":"IdentifierPath","referencedDeclaration":10010,"src":"1428:6:31"},"id":9355,"nodeType":"InheritanceSpecifier","src":"1428:6:31"},{"baseName":{"id":9356,"name":"IERC20Metadata","nameLocations":["1436:14:31"],"nodeType":"IdentifierPath","referencedDeclaration":10777,"src":"1436:14:31"},"id":9357,"nodeType":"InheritanceSpecifier","src":"1436:14:31"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":9351,"nodeType":"StructuredDocumentation","src":"230:1170:31","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":9932,"linearizedBaseContracts":[9932,10777,10010,14324],"name":"ERC20","nameLocation":"1410:5:31","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":9361,"mutability":"mutable","name":"_balances","nameLocation":"1493:9:31","nodeType":"VariableDeclaration","scope":9932,"src":"1457:45:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9360,"keyType":{"id":9358,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1457:27:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9359,"name":"uint256","nodeType":"ElementaryTypeName","src":"1476:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":9367,"mutability":"mutable","name":"_allowances","nameLocation":"1565:11:31","nodeType":"VariableDeclaration","scope":9932,"src":"1509:67:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":9366,"keyType":{"id":9362,"name":"address","nodeType":"ElementaryTypeName","src":"1517:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1509:47:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":9365,"keyType":{"id":9363,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1528:27:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":9369,"mutability":"mutable","name":"_totalSupply","nameLocation":"1599:12:31","nodeType":"VariableDeclaration","scope":9932,"src":"1583:28:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1583:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":9371,"mutability":"mutable","name":"_name","nameLocation":"1633:5:31","nodeType":"VariableDeclaration","scope":9932,"src":"1618:20:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9370,"name":"string","nodeType":"ElementaryTypeName","src":"1618:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9373,"mutability":"mutable","name":"_symbol","nameLocation":"1659:7:31","nodeType":"VariableDeclaration","scope":9932,"src":"1644:22:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9372,"name":"string","nodeType":"ElementaryTypeName","src":"1644:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":9389,"nodeType":"Block","src":"2032:57:31","statements":[{"expression":{"id":9383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9381,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"2042:5:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9382,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"2050:5:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2042:13:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9384,"nodeType":"ExpressionStatement","src":"2042:13:31"},{"expression":{"id":9387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9385,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9373,"src":"2065:7:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9386,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9378,"src":"2075:7:31","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2065:17:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9388,"nodeType":"ExpressionStatement","src":"2065:17:31"}]},"documentation":{"id":9374,"nodeType":"StructuredDocumentation","src":"1673:298:31","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":9390,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9376,"mutability":"mutable","name":"name_","nameLocation":"2002:5:31","nodeType":"VariableDeclaration","scope":9390,"src":"1988:19:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9375,"name":"string","nodeType":"ElementaryTypeName","src":"1988:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9378,"mutability":"mutable","name":"symbol_","nameLocation":"2023:7:31","nodeType":"VariableDeclaration","scope":9390,"src":"2009:21:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9377,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1987:44:31"},"returnParameters":{"id":9380,"nodeType":"ParameterList","parameters":[],"src":"2032:0:31"},"scope":9932,"src":"1976:113:31","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[10764],"body":{"id":9399,"nodeType":"Block","src":"2223:29:31","statements":[{"expression":{"id":9397,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"2240:5:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9396,"id":9398,"nodeType":"Return","src":"2233:12:31"}]},"documentation":{"id":9391,"nodeType":"StructuredDocumentation","src":"2095:54:31","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":9400,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2163:4:31","nodeType":"FunctionDefinition","overrides":{"id":9393,"nodeType":"OverrideSpecifier","overrides":[],"src":"2190:8:31"},"parameters":{"id":9392,"nodeType":"ParameterList","parameters":[],"src":"2167:2:31"},"returnParameters":{"id":9396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9400,"src":"2208:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9394,"name":"string","nodeType":"ElementaryTypeName","src":"2208:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2207:15:31"},"scope":9932,"src":"2154:98:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10770],"body":{"id":9409,"nodeType":"Block","src":"2436:31:31","statements":[{"expression":{"id":9407,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9373,"src":"2453:7:31","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9406,"id":9408,"nodeType":"Return","src":"2446:14:31"}]},"documentation":{"id":9401,"nodeType":"StructuredDocumentation","src":"2258:102:31","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":9410,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2374:6:31","nodeType":"FunctionDefinition","overrides":{"id":9403,"nodeType":"OverrideSpecifier","overrides":[],"src":"2403:8:31"},"parameters":{"id":9402,"nodeType":"ParameterList","parameters":[],"src":"2380:2:31"},"returnParameters":{"id":9406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9410,"src":"2421:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9404,"name":"string","nodeType":"ElementaryTypeName","src":"2421:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2420:15:31"},"scope":9932,"src":"2365:102:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10776],"body":{"id":9419,"nodeType":"Block","src":"3156:26:31","statements":[{"expression":{"hexValue":"3138","id":9417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:2:31","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":9416,"id":9418,"nodeType":"Return","src":"3166:9:31"}]},"documentation":{"id":9411,"nodeType":"StructuredDocumentation","src":"2473:613:31","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":9420,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3100:8:31","nodeType":"FunctionDefinition","overrides":{"id":9413,"nodeType":"OverrideSpecifier","overrides":[],"src":"3131:8:31"},"parameters":{"id":9412,"nodeType":"ParameterList","parameters":[],"src":"3108:2:31"},"returnParameters":{"id":9416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9420,"src":"3149:5:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9414,"name":"uint8","nodeType":"ElementaryTypeName","src":"3149:5:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3148:7:31"},"scope":9932,"src":"3091:91:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9959],"body":{"id":9429,"nodeType":"Block","src":"3312:36:31","statements":[{"expression":{"id":9427,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"3329:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9426,"id":9428,"nodeType":"Return","src":"3322:19:31"}]},"documentation":{"id":9421,"nodeType":"StructuredDocumentation","src":"3188:49:31","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":9430,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3251:11:31","nodeType":"FunctionDefinition","overrides":{"id":9423,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:31"},"parameters":{"id":9422,"nodeType":"ParameterList","parameters":[],"src":"3262:2:31"},"returnParameters":{"id":9426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9430,"src":"3303:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9424,"name":"uint256","nodeType":"ElementaryTypeName","src":"3303:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3302:9:31"},"scope":9932,"src":"3242:106:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9967],"body":{"id":9443,"nodeType":"Block","src":"3489:42:31","statements":[{"expression":{"baseExpression":{"id":9439,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"3506:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9441,"indexExpression":{"id":9440,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9433,"src":"3516:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3506:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9438,"id":9442,"nodeType":"Return","src":"3499:25:31"}]},"documentation":{"id":9431,"nodeType":"StructuredDocumentation","src":"3354:47:31","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":9444,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3415:9:31","nodeType":"FunctionDefinition","overrides":{"id":9435,"nodeType":"OverrideSpecifier","overrides":[],"src":"3462:8:31"},"parameters":{"id":9434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9433,"mutability":"mutable","name":"account","nameLocation":"3433:7:31","nodeType":"VariableDeclaration","scope":9444,"src":"3425:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9432,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3424:17:31"},"returnParameters":{"id":9438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9444,"src":"3480:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9436,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:9:31"},"scope":9932,"src":"3406:125:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9977],"body":{"id":9468,"nodeType":"Block","src":"3812:104:31","statements":[{"assignments":[9456],"declarations":[{"constant":false,"id":9456,"mutability":"mutable","name":"owner","nameLocation":"3830:5:31","nodeType":"VariableDeclaration","scope":9468,"src":"3822:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9455,"name":"address","nodeType":"ElementaryTypeName","src":"3822:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9459,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9457,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"3838:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3822:28:31"},{"expression":{"arguments":[{"id":9461,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9456,"src":"3870:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9462,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9447,"src":"3877:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9449,"src":"3881:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9460,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"3860:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3860:28:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9465,"nodeType":"ExpressionStatement","src":"3860:28:31"},{"expression":{"hexValue":"74727565","id":9466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3905:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9454,"id":9467,"nodeType":"Return","src":"3898:11:31"}]},"documentation":{"id":9445,"nodeType":"StructuredDocumentation","src":"3537:185:31","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":9469,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3736:8:31","nodeType":"FunctionDefinition","overrides":{"id":9451,"nodeType":"OverrideSpecifier","overrides":[],"src":"3788:8:31"},"parameters":{"id":9450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9447,"mutability":"mutable","name":"to","nameLocation":"3753:2:31","nodeType":"VariableDeclaration","scope":9469,"src":"3745:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9446,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9449,"mutability":"mutable","name":"amount","nameLocation":"3765:6:31","nodeType":"VariableDeclaration","scope":9469,"src":"3757:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9448,"name":"uint256","nodeType":"ElementaryTypeName","src":"3757:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3744:28:31"},"returnParameters":{"id":9454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9469,"src":"3806:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9452,"name":"bool","nodeType":"ElementaryTypeName","src":"3806:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3805:6:31"},"scope":9932,"src":"3727:189:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9987],"body":{"id":9486,"nodeType":"Block","src":"4072:51:31","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9480,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"4089:11:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9482,"indexExpression":{"id":9481,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9472,"src":"4101:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:18:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9484,"indexExpression":{"id":9483,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9474,"src":"4108:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4089:27:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9479,"id":9485,"nodeType":"Return","src":"4082:34:31"}]},"documentation":{"id":9470,"nodeType":"StructuredDocumentation","src":"3922:47:31","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":9487,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3983:9:31","nodeType":"FunctionDefinition","overrides":{"id":9476,"nodeType":"OverrideSpecifier","overrides":[],"src":"4045:8:31"},"parameters":{"id":9475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9472,"mutability":"mutable","name":"owner","nameLocation":"4001:5:31","nodeType":"VariableDeclaration","scope":9487,"src":"3993:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9471,"name":"address","nodeType":"ElementaryTypeName","src":"3993:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9474,"mutability":"mutable","name":"spender","nameLocation":"4016:7:31","nodeType":"VariableDeclaration","scope":9487,"src":"4008:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9473,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3992:32:31"},"returnParameters":{"id":9479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9487,"src":"4063:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9477,"name":"uint256","nodeType":"ElementaryTypeName","src":"4063:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4062:9:31"},"scope":9932,"src":"3974:149:31","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9997],"body":{"id":9511,"nodeType":"Block","src":"4520:108:31","statements":[{"assignments":[9499],"declarations":[{"constant":false,"id":9499,"mutability":"mutable","name":"owner","nameLocation":"4538:5:31","nodeType":"VariableDeclaration","scope":9511,"src":"4530:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9498,"name":"address","nodeType":"ElementaryTypeName","src":"4530:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9500,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"4546:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4530:28:31"},{"expression":{"arguments":[{"id":9504,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9499,"src":"4577:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9505,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"4584:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9506,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"4593:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9503,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"4568:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4568:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9508,"nodeType":"ExpressionStatement","src":"4568:32:31"},{"expression":{"hexValue":"74727565","id":9509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4617:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9497,"id":9510,"nodeType":"Return","src":"4610:11:31"}]},"documentation":{"id":9488,"nodeType":"StructuredDocumentation","src":"4129:297:31","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":9512,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4440:7:31","nodeType":"FunctionDefinition","overrides":{"id":9494,"nodeType":"OverrideSpecifier","overrides":[],"src":"4496:8:31"},"parameters":{"id":9493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9490,"mutability":"mutable","name":"spender","nameLocation":"4456:7:31","nodeType":"VariableDeclaration","scope":9512,"src":"4448:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9489,"name":"address","nodeType":"ElementaryTypeName","src":"4448:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9492,"mutability":"mutable","name":"amount","nameLocation":"4473:6:31","nodeType":"VariableDeclaration","scope":9512,"src":"4465:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9491,"name":"uint256","nodeType":"ElementaryTypeName","src":"4465:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4447:33:31"},"returnParameters":{"id":9497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9512,"src":"4514:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9495,"name":"bool","nodeType":"ElementaryTypeName","src":"4514:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4513:6:31"},"scope":9932,"src":"4431:197:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10009],"body":{"id":9544,"nodeType":"Block","src":"5323:153:31","statements":[{"assignments":[9526],"declarations":[{"constant":false,"id":9526,"mutability":"mutable","name":"spender","nameLocation":"5341:7:31","nodeType":"VariableDeclaration","scope":9544,"src":"5333:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9525,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9527,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"5351:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5351:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:30:31"},{"expression":{"arguments":[{"id":9531,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"5389:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9532,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9526,"src":"5395:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9533,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9519,"src":"5404:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9530,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"5373:15:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:38:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9535,"nodeType":"ExpressionStatement","src":"5373:38:31"},{"expression":{"arguments":[{"id":9537,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"5431:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9538,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9517,"src":"5437:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9539,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9519,"src":"5441:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9536,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"5421:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5421:27:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9541,"nodeType":"ExpressionStatement","src":"5421:27:31"},{"expression":{"hexValue":"74727565","id":9542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5465:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9524,"id":9543,"nodeType":"Return","src":"5458:11:31"}]},"documentation":{"id":9513,"nodeType":"StructuredDocumentation","src":"4634:551:31","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":9545,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5199:12:31","nodeType":"FunctionDefinition","overrides":{"id":9521,"nodeType":"OverrideSpecifier","overrides":[],"src":"5299:8:31"},"parameters":{"id":9520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9515,"mutability":"mutable","name":"from","nameLocation":"5229:4:31","nodeType":"VariableDeclaration","scope":9545,"src":"5221:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9514,"name":"address","nodeType":"ElementaryTypeName","src":"5221:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9517,"mutability":"mutable","name":"to","nameLocation":"5251:2:31","nodeType":"VariableDeclaration","scope":9545,"src":"5243:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9516,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9519,"mutability":"mutable","name":"amount","nameLocation":"5271:6:31","nodeType":"VariableDeclaration","scope":9545,"src":"5263:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9518,"name":"uint256","nodeType":"ElementaryTypeName","src":"5263:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5211:72:31"},"returnParameters":{"id":9524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9545,"src":"5317:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9522,"name":"bool","nodeType":"ElementaryTypeName","src":"5317:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5316:6:31"},"scope":9932,"src":"5190:286:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9573,"nodeType":"Block","src":"5965:140:31","statements":[{"assignments":[9556],"declarations":[{"constant":false,"id":9556,"mutability":"mutable","name":"owner","nameLocation":"5983:5:31","nodeType":"VariableDeclaration","scope":9573,"src":"5975:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9555,"name":"address","nodeType":"ElementaryTypeName","src":"5975:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9559,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9557,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"5991:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5991:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5975:28:31"},{"expression":{"arguments":[{"id":9561,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9556,"src":"6022:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9562,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9548,"src":"6029:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9564,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9556,"src":"6048:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9565,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9548,"src":"6055:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9563,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9487,"src":"6038:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":9566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9567,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9550,"src":"6066:10:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:38:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9560,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"6013:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:64:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9570,"nodeType":"ExpressionStatement","src":"6013:64:31"},{"expression":{"hexValue":"74727565","id":9571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6094:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9554,"id":9572,"nodeType":"Return","src":"6087:11:31"}]},"documentation":{"id":9546,"nodeType":"StructuredDocumentation","src":"5482:384:31","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":9574,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5880:17:31","nodeType":"FunctionDefinition","parameters":{"id":9551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9548,"mutability":"mutable","name":"spender","nameLocation":"5906:7:31","nodeType":"VariableDeclaration","scope":9574,"src":"5898:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9547,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9550,"mutability":"mutable","name":"addedValue","nameLocation":"5923:10:31","nodeType":"VariableDeclaration","scope":9574,"src":"5915:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9549,"name":"uint256","nodeType":"ElementaryTypeName","src":"5915:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5897:37:31"},"returnParameters":{"id":9554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9574,"src":"5959:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9552,"name":"bool","nodeType":"ElementaryTypeName","src":"5959:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5958:6:31"},"scope":9932,"src":"5871:234:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9614,"nodeType":"Block","src":"6691:328:31","statements":[{"assignments":[9585],"declarations":[{"constant":false,"id":9585,"mutability":"mutable","name":"owner","nameLocation":"6709:5:31","nodeType":"VariableDeclaration","scope":9614,"src":"6701:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9584,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9588,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9586,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"6717:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6717:12:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6701:28:31"},{"assignments":[9590],"declarations":[{"constant":false,"id":9590,"mutability":"mutable","name":"currentAllowance","nameLocation":"6747:16:31","nodeType":"VariableDeclaration","scope":9614,"src":"6739:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9589,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9595,"initialValue":{"arguments":[{"id":9592,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9585,"src":"6776:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9593,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"6783:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9591,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9487,"src":"6766:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":9594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6766:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6739:52:31"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9597,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9590,"src":"6809:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9598,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"6829:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6809:35:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":9600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:39:31","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":9596,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6801:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6801:85:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9602,"nodeType":"ExpressionStatement","src":"6801:85:31"},{"id":9611,"nodeType":"UncheckedBlock","src":"6896:95:31","statements":[{"expression":{"arguments":[{"id":9604,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9585,"src":"6929:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9605,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"6936:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9606,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9590,"src":"6945:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9607,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"6964:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6945:34:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9603,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"6920:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6920:60:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9610,"nodeType":"ExpressionStatement","src":"6920:60:31"}]},{"expression":{"hexValue":"74727565","id":9612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7008:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9583,"id":9613,"nodeType":"Return","src":"7001:11:31"}]},"documentation":{"id":9575,"nodeType":"StructuredDocumentation","src":"6111:476:31","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":9615,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6601:17:31","nodeType":"FunctionDefinition","parameters":{"id":9580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9577,"mutability":"mutable","name":"spender","nameLocation":"6627:7:31","nodeType":"VariableDeclaration","scope":9615,"src":"6619:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9576,"name":"address","nodeType":"ElementaryTypeName","src":"6619:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9579,"mutability":"mutable","name":"subtractedValue","nameLocation":"6644:15:31","nodeType":"VariableDeclaration","scope":9615,"src":"6636:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9578,"name":"uint256","nodeType":"ElementaryTypeName","src":"6636:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6618:42:31"},"returnParameters":{"id":9583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9615,"src":"6685:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9581,"name":"bool","nodeType":"ElementaryTypeName","src":"6685:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6684:6:31"},"scope":9932,"src":"6592:427:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9691,"nodeType":"Block","src":"7581:710:31","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9626,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"7599:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7607:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9627,"name":"address","nodeType":"ElementaryTypeName","src":"7607:7:31","typeDescriptions":{}}},"id":9630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7607:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7599:18:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":9632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7619:39:31","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":9625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7591:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7591:68:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9634,"nodeType":"ExpressionStatement","src":"7591:68:31"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9636,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"7677:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7691:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7683:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9637,"name":"address","nodeType":"ElementaryTypeName","src":"7683:7:31","typeDescriptions":{}}},"id":9640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7683:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7677:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":9642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7695:37:31","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":9635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7669:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7669:64:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9644,"nodeType":"ExpressionStatement","src":"7669:64:31"},{"expression":{"arguments":[{"id":9646,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"7765:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9647,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"7771:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9648,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"7775:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9645,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9920,"src":"7744:20:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7744:38:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9650,"nodeType":"ExpressionStatement","src":"7744:38:31"},{"assignments":[9652],"declarations":[{"constant":false,"id":9652,"mutability":"mutable","name":"fromBalance","nameLocation":"7801:11:31","nodeType":"VariableDeclaration","scope":9691,"src":"7793:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9651,"name":"uint256","nodeType":"ElementaryTypeName","src":"7793:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9656,"initialValue":{"baseExpression":{"id":9653,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"7815:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9655,"indexExpression":{"id":9654,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"7825:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7815:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7793:37:31"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9658,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9652,"src":"7848:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9659,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"7863:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7848:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":9661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:40:31","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":9657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7840:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:72:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9663,"nodeType":"ExpressionStatement","src":"7840:72:31"},{"id":9678,"nodeType":"UncheckedBlock","src":"7922:273:31","statements":[{"expression":{"id":9670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9664,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"7946:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9666,"indexExpression":{"id":9665,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"7956:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7946:15:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9667,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9652,"src":"7964:11:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9668,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"7978:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7964:20:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7946:38:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9671,"nodeType":"ExpressionStatement","src":"7946:38:31"},{"expression":{"id":9676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9672,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"8161:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9674,"indexExpression":{"id":9673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"8171:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8161:13:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9675,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"8178:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8161:23:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9677,"nodeType":"ExpressionStatement","src":"8161:23:31"}]},{"eventCall":{"arguments":[{"id":9680,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"8219:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9681,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"8225:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9682,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"8229:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9679,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"8210:8:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:26:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9684,"nodeType":"EmitStatement","src":"8205:31:31"},{"expression":{"arguments":[{"id":9686,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"8267:4:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9687,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"8273:2:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9688,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"8277:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9685,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9931,"src":"8247:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8247:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9690,"nodeType":"ExpressionStatement","src":"8247:37:31"}]},"documentation":{"id":9616,"nodeType":"StructuredDocumentation","src":"7025:443:31","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":9692,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7482:9:31","nodeType":"FunctionDefinition","parameters":{"id":9623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9618,"mutability":"mutable","name":"from","nameLocation":"7509:4:31","nodeType":"VariableDeclaration","scope":9692,"src":"7501:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9617,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9620,"mutability":"mutable","name":"to","nameLocation":"7531:2:31","nodeType":"VariableDeclaration","scope":9692,"src":"7523:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9619,"name":"address","nodeType":"ElementaryTypeName","src":"7523:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9622,"mutability":"mutable","name":"amount","nameLocation":"7551:6:31","nodeType":"VariableDeclaration","scope":9692,"src":"7543:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9621,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7491:72:31"},"returnParameters":{"id":9624,"nodeType":"ParameterList","parameters":[],"src":"7581:0:31"},"scope":9932,"src":"7473:818:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9748,"nodeType":"Block","src":"8632:470:31","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9701,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"8650:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8661:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9702,"name":"address","nodeType":"ElementaryTypeName","src":"8661:7:31","typeDescriptions":{}}},"id":9705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8661:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8650:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":9707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8673:33:31","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":9700,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8642:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8642:65:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9709,"nodeType":"ExpressionStatement","src":"8642:65:31"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8747:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9711,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:31","typeDescriptions":{}}},"id":9714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9715,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"8751:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9716,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"8760:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9710,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9920,"src":"8718:20:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8718:49:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9718,"nodeType":"ExpressionStatement","src":"8718:49:31"},{"expression":{"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9719,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"8778:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9720,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"8794:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8778:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9722,"nodeType":"ExpressionStatement","src":"8778:22:31"},{"id":9729,"nodeType":"UncheckedBlock","src":"8810:175:31","statements":[{"expression":{"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9723,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"8946:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9725,"indexExpression":{"id":9724,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"8956:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8946:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":9726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"8968:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8946:28:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9728,"nodeType":"ExpressionStatement","src":"8946:28:31"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9016:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9008:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9731,"name":"address","nodeType":"ElementaryTypeName","src":"9008:7:31","typeDescriptions":{}}},"id":9734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9008:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9735,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"9020:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9736,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"9029:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9730,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"8999:8:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8999:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9738,"nodeType":"EmitStatement","src":"8994:42:31"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9075:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9067:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9740,"name":"address","nodeType":"ElementaryTypeName","src":"9067:7:31","typeDescriptions":{}}},"id":9743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9067:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9744,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"9079:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9745,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"9088:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9739,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9931,"src":"9047:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9047:48:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9747,"nodeType":"ExpressionStatement","src":"9047:48:31"}]},"documentation":{"id":9693,"nodeType":"StructuredDocumentation","src":"8297:265:31","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":9749,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8576:5:31","nodeType":"FunctionDefinition","parameters":{"id":9698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9695,"mutability":"mutable","name":"account","nameLocation":"8590:7:31","nodeType":"VariableDeclaration","scope":9749,"src":"8582:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9694,"name":"address","nodeType":"ElementaryTypeName","src":"8582:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9697,"mutability":"mutable","name":"amount","nameLocation":"8607:6:31","nodeType":"VariableDeclaration","scope":9749,"src":"8599:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8599:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8581:33:31"},"returnParameters":{"id":9699,"nodeType":"ParameterList","parameters":[],"src":"8632:0:31"},"scope":9932,"src":"8567:535:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9820,"nodeType":"Block","src":"9487:594:31","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9758,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"9505:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9759,"name":"address","nodeType":"ElementaryTypeName","src":"9516:7:31","typeDescriptions":{}}},"id":9762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9505:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":9764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:35:31","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":9757,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9497:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9497:67:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9766,"nodeType":"ExpressionStatement","src":"9497:67:31"},{"expression":{"arguments":[{"id":9768,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"9596:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9613:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9605:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9769,"name":"address","nodeType":"ElementaryTypeName","src":"9605:7:31","typeDescriptions":{}}},"id":9772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9605:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9773,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"9617:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9767,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9920,"src":"9575:20:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9575:49:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9775,"nodeType":"ExpressionStatement","src":"9575:49:31"},{"assignments":[9777],"declarations":[{"constant":false,"id":9777,"mutability":"mutable","name":"accountBalance","nameLocation":"9643:14:31","nodeType":"VariableDeclaration","scope":9820,"src":"9635:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9776,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9781,"initialValue":{"baseExpression":{"id":9778,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"9660:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9780,"indexExpression":{"id":9779,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"9670:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9660:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9635:43:31"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9783,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9777,"src":"9696:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9784,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"9714:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9696:24:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":9786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9722:36:31","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":9782,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9688:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9688:71:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9788,"nodeType":"ExpressionStatement","src":"9688:71:31"},{"id":9801,"nodeType":"UncheckedBlock","src":"9769:194:31","statements":[{"expression":{"id":9795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9789,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9361,"src":"9793:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9791,"indexExpression":{"id":9790,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"9803:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9793:18:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9792,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9777,"src":"9814:14:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"9831:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9814:23:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9793:44:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9796,"nodeType":"ExpressionStatement","src":"9793:44:31"},{"expression":{"id":9799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9797,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"9930:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":9798,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"9946:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9930:22:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9800,"nodeType":"ExpressionStatement","src":"9930:22:31"}]},{"eventCall":{"arguments":[{"id":9803,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"9987:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10004:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9996:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9804,"name":"address","nodeType":"ElementaryTypeName","src":"9996:7:31","typeDescriptions":{}}},"id":9807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9996:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9808,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"10008:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9802,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"9978:8:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9978:37:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9810,"nodeType":"EmitStatement","src":"9973:42:31"},{"expression":{"arguments":[{"id":9812,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"10046:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10055:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9813,"name":"address","nodeType":"ElementaryTypeName","src":"10055:7:31","typeDescriptions":{}}},"id":9816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10055:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9817,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9754,"src":"10067:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9811,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9931,"src":"10026:19:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:48:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9819,"nodeType":"ExpressionStatement","src":"10026:48:31"}]},"documentation":{"id":9750,"nodeType":"StructuredDocumentation","src":"9108:309:31","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":9821,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9431:5:31","nodeType":"FunctionDefinition","parameters":{"id":9755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9752,"mutability":"mutable","name":"account","nameLocation":"9445:7:31","nodeType":"VariableDeclaration","scope":9821,"src":"9437:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9751,"name":"address","nodeType":"ElementaryTypeName","src":"9437:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9754,"mutability":"mutable","name":"amount","nameLocation":"9462:6:31","nodeType":"VariableDeclaration","scope":9821,"src":"9454:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9753,"name":"uint256","nodeType":"ElementaryTypeName","src":"9454:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9436:33:31"},"returnParameters":{"id":9756,"nodeType":"ParameterList","parameters":[],"src":"9487:0:31"},"scope":9932,"src":"9422:659:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9865,"nodeType":"Block","src":"10617:257:31","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9832,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"10635:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10652:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10644:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9833,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:31","typeDescriptions":{}}},"id":9836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10644:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10635:19:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":9838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10656:38:31","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":9831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10627:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10627:68:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9840,"nodeType":"ExpressionStatement","src":"10627:68:31"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9842,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"10713:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10732:1:31","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10724:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9843,"name":"address","nodeType":"ElementaryTypeName","src":"10724:7:31","typeDescriptions":{}}},"id":9846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10724:10:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10713:21:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":9848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10736:36:31","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":9841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10705:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10705:68:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9850,"nodeType":"ExpressionStatement","src":"10705:68:31"},{"expression":{"id":9857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9851,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"10784:11:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":9854,"indexExpression":{"id":9852,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"10796:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10784:18:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9855,"indexExpression":{"id":9853,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"10803:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10784:27:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9856,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9828,"src":"10814:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10784:36:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9858,"nodeType":"ExpressionStatement","src":"10784:36:31"},{"eventCall":{"arguments":[{"id":9860,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"10844:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9861,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"10851:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9862,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9828,"src":"10860:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9859,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9953,"src":"10835:8:31","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10835:32:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9864,"nodeType":"EmitStatement","src":"10830:37:31"}]},"documentation":{"id":9822,"nodeType":"StructuredDocumentation","src":"10087:412:31","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":9866,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10513:8:31","nodeType":"FunctionDefinition","parameters":{"id":9829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9824,"mutability":"mutable","name":"owner","nameLocation":"10539:5:31","nodeType":"VariableDeclaration","scope":9866,"src":"10531:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9823,"name":"address","nodeType":"ElementaryTypeName","src":"10531:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9826,"mutability":"mutable","name":"spender","nameLocation":"10562:7:31","nodeType":"VariableDeclaration","scope":9866,"src":"10554:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9825,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9828,"mutability":"mutable","name":"amount","nameLocation":"10587:6:31","nodeType":"VariableDeclaration","scope":9866,"src":"10579:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9827,"name":"uint256","nodeType":"ElementaryTypeName","src":"10579:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10521:78:31"},"returnParameters":{"id":9830,"nodeType":"ParameterList","parameters":[],"src":"10617:0:31"},"scope":9932,"src":"10504:370:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9908,"nodeType":"Block","src":"11275:321:31","statements":[{"assignments":[9877],"declarations":[{"constant":false,"id":9877,"mutability":"mutable","name":"currentAllowance","nameLocation":"11293:16:31","nodeType":"VariableDeclaration","scope":9908,"src":"11285:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9876,"name":"uint256","nodeType":"ElementaryTypeName","src":"11285:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9882,"initialValue":{"arguments":[{"id":9879,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9869,"src":"11322:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9880,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9871,"src":"11329:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9878,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9487,"src":"11312:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":9881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11312:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11285:52:31"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9883,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"11351:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":9886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11376:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9885,"name":"uint256","nodeType":"ElementaryTypeName","src":"11376:7:31","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":9884,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11371:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11371:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":9888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11385:3:31","memberName":"max","nodeType":"MemberAccess","src":"11371:17:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11351:37:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9907,"nodeType":"IfStatement","src":"11347:243:31","trueBody":{"id":9906,"nodeType":"Block","src":"11390:200:31","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9891,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"11412:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9892,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"11432:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11412:26:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":9894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11440:31:31","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":9890,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11404:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11404:68:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9896,"nodeType":"ExpressionStatement","src":"11404:68:31"},{"id":9905,"nodeType":"UncheckedBlock","src":"11486:94:31","statements":[{"expression":{"arguments":[{"id":9898,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9869,"src":"11523:5:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9899,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9871,"src":"11530:7:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9900,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"11539:16:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9901,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"11558:6:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11539:25:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9897,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"11514:8:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11514:51:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9904,"nodeType":"ExpressionStatement","src":"11514:51:31"}]}]}}]},"documentation":{"id":9867,"nodeType":"StructuredDocumentation","src":"10880:270:31","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":9909,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11164:15:31","nodeType":"FunctionDefinition","parameters":{"id":9874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9869,"mutability":"mutable","name":"owner","nameLocation":"11197:5:31","nodeType":"VariableDeclaration","scope":9909,"src":"11189:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9868,"name":"address","nodeType":"ElementaryTypeName","src":"11189:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9871,"mutability":"mutable","name":"spender","nameLocation":"11220:7:31","nodeType":"VariableDeclaration","scope":9909,"src":"11212:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9870,"name":"address","nodeType":"ElementaryTypeName","src":"11212:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9873,"mutability":"mutable","name":"amount","nameLocation":"11245:6:31","nodeType":"VariableDeclaration","scope":9909,"src":"11237:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9872,"name":"uint256","nodeType":"ElementaryTypeName","src":"11237:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11179:78:31"},"returnParameters":{"id":9875,"nodeType":"ParameterList","parameters":[],"src":"11275:0:31"},"scope":9932,"src":"11155:441:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9919,"nodeType":"Block","src":"12299:2:31","statements":[]},"documentation":{"id":9910,"nodeType":"StructuredDocumentation","src":"11602:573:31","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":9920,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12189:20:31","nodeType":"FunctionDefinition","parameters":{"id":9917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9912,"mutability":"mutable","name":"from","nameLocation":"12227:4:31","nodeType":"VariableDeclaration","scope":9920,"src":"12219:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9911,"name":"address","nodeType":"ElementaryTypeName","src":"12219:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9914,"mutability":"mutable","name":"to","nameLocation":"12249:2:31","nodeType":"VariableDeclaration","scope":9920,"src":"12241:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9913,"name":"address","nodeType":"ElementaryTypeName","src":"12241:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9916,"mutability":"mutable","name":"amount","nameLocation":"12269:6:31","nodeType":"VariableDeclaration","scope":9920,"src":"12261:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9915,"name":"uint256","nodeType":"ElementaryTypeName","src":"12261:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:72:31"},"returnParameters":{"id":9918,"nodeType":"ParameterList","parameters":[],"src":"12299:0:31"},"scope":9932,"src":"12180:121:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9930,"nodeType":"Block","src":"13007:2:31","statements":[]},"documentation":{"id":9921,"nodeType":"StructuredDocumentation","src":"12307:577:31","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":9931,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12898:19:31","nodeType":"FunctionDefinition","parameters":{"id":9928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9923,"mutability":"mutable","name":"from","nameLocation":"12935:4:31","nodeType":"VariableDeclaration","scope":9931,"src":"12927:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9922,"name":"address","nodeType":"ElementaryTypeName","src":"12927:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9925,"mutability":"mutable","name":"to","nameLocation":"12957:2:31","nodeType":"VariableDeclaration","scope":9931,"src":"12949:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9924,"name":"address","nodeType":"ElementaryTypeName","src":"12949:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9927,"mutability":"mutable","name":"amount","nameLocation":"12977:6:31","nodeType":"VariableDeclaration","scope":9931,"src":"12969:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9926,"name":"uint256","nodeType":"ElementaryTypeName","src":"12969:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12917:72:31"},"returnParameters":{"id":9929,"nodeType":"ParameterList","parameters":[],"src":"13007:0:31"},"scope":9932,"src":"12889:120:31","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":9933,"src":"1401:11610:31","usedErrors":[]}],"src":"105:12907:31"},"id":31},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[10010]},"id":10011,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9934,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:32"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":9935,"nodeType":"StructuredDocumentation","src":"131:70:32","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":10010,"linearizedBaseContracts":[10010],"name":"IERC20","nameLocation":"212:6:32","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":9936,"nodeType":"StructuredDocumentation","src":"225:158:32","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":9944,"name":"Transfer","nameLocation":"394:8:32","nodeType":"EventDefinition","parameters":{"id":9943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9938,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:32","nodeType":"VariableDeclaration","scope":9944,"src":"403:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9937,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9940,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:32","nodeType":"VariableDeclaration","scope":9944,"src":"425:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9939,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9942,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:32","nodeType":"VariableDeclaration","scope":9944,"src":"445:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9941,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:32"},"src":"388:72:32"},{"anonymous":false,"documentation":{"id":9945,"nodeType":"StructuredDocumentation","src":"466:148:32","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":9953,"name":"Approval","nameLocation":"625:8:32","nodeType":"EventDefinition","parameters":{"id":9952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9947,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:32","nodeType":"VariableDeclaration","scope":9953,"src":"634:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9946,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9949,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:32","nodeType":"VariableDeclaration","scope":9953,"src":"657:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9948,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9951,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:32","nodeType":"VariableDeclaration","scope":9953,"src":"682:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9950,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:32"},"src":"619:78:32"},{"documentation":{"id":9954,"nodeType":"StructuredDocumentation","src":"703:66:32","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":9959,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:32","nodeType":"FunctionDefinition","parameters":{"id":9955,"nodeType":"ParameterList","parameters":[],"src":"794:2:32"},"returnParameters":{"id":9958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9959,"src":"820:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9956,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:32"},"scope":10010,"src":"774:55:32","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9960,"nodeType":"StructuredDocumentation","src":"835:72:32","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":9967,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:32","nodeType":"FunctionDefinition","parameters":{"id":9963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9962,"mutability":"mutable","name":"account","nameLocation":"939:7:32","nodeType":"VariableDeclaration","scope":9967,"src":"931:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9961,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:32"},"returnParameters":{"id":9966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9967,"src":"971:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9964,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:32"},"scope":10010,"src":"912:68:32","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9968,"nodeType":"StructuredDocumentation","src":"986:202:32","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":9977,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:32","nodeType":"FunctionDefinition","parameters":{"id":9973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9970,"mutability":"mutable","name":"to","nameLocation":"1219:2:32","nodeType":"VariableDeclaration","scope":9977,"src":"1211:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9969,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9972,"mutability":"mutable","name":"amount","nameLocation":"1231:6:32","nodeType":"VariableDeclaration","scope":9977,"src":"1223:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:32"},"returnParameters":{"id":9976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9977,"src":"1257:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9974,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:32"},"scope":10010,"src":"1193:70:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9978,"nodeType":"StructuredDocumentation","src":"1269:264:32","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":9987,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:32","nodeType":"FunctionDefinition","parameters":{"id":9983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9980,"mutability":"mutable","name":"owner","nameLocation":"1565:5:32","nodeType":"VariableDeclaration","scope":9987,"src":"1557:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9979,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9982,"mutability":"mutable","name":"spender","nameLocation":"1580:7:32","nodeType":"VariableDeclaration","scope":9987,"src":"1572:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9981,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:32"},"returnParameters":{"id":9986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9987,"src":"1612:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9984,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:32"},"scope":10010,"src":"1538:83:32","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":9988,"nodeType":"StructuredDocumentation","src":"1627:642:32","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":9997,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:32","nodeType":"FunctionDefinition","parameters":{"id":9993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9990,"mutability":"mutable","name":"spender","nameLocation":"2299:7:32","nodeType":"VariableDeclaration","scope":9997,"src":"2291:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9989,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9992,"mutability":"mutable","name":"amount","nameLocation":"2316:6:32","nodeType":"VariableDeclaration","scope":9997,"src":"2308:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9991,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:32"},"returnParameters":{"id":9996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9997,"src":"2342:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9994,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:32"},"scope":10010,"src":"2274:74:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":9998,"nodeType":"StructuredDocumentation","src":"2354:287:32","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":10009,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:32","nodeType":"FunctionDefinition","parameters":{"id":10005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10000,"mutability":"mutable","name":"from","nameLocation":"2685:4:32","nodeType":"VariableDeclaration","scope":10009,"src":"2677:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9999,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10002,"mutability":"mutable","name":"to","nameLocation":"2707:2:32","nodeType":"VariableDeclaration","scope":10009,"src":"2699:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10001,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10004,"mutability":"mutable","name":"amount","nameLocation":"2727:6:32","nodeType":"VariableDeclaration","scope":10009,"src":"2719:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10003,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:32"},"returnParameters":{"id":10008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10009,"src":"2758:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10006,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:32"},"scope":10010,"src":"2646:118:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":10011,"src":"202:2564:32","usedErrors":[]}],"src":"106:2661:32"},"id":32},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","exportedSymbols":{"Context":[14324],"ERC20":[9932],"ERC20Burnable":[10054],"IERC20":[10010],"IERC20Metadata":[10777]},"id":10055,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10012,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"124:23:33"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":10013,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10055,"sourceUnit":9933,"src":"149:22:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":10014,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10055,"sourceUnit":14325,"src":"172:36:33","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10016,"name":"Context","nameLocations":["454:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"454:7:33"},"id":10017,"nodeType":"InheritanceSpecifier","src":"454:7:33"},{"baseName":{"id":10018,"name":"ERC20","nameLocations":["463:5:33"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"463:5:33"},"id":10019,"nodeType":"InheritanceSpecifier","src":"463:5:33"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":10015,"nodeType":"StructuredDocumentation","src":"210:208:33","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":10054,"linearizedBaseContracts":[10054,9932,10777,10010,14324],"name":"ERC20Burnable","nameLocation":"437:13:33","nodeType":"ContractDefinition","nodes":[{"body":{"id":10031,"nodeType":"Block","src":"623:44:33","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10026,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"639:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"639:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10028,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10022,"src":"653:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10025,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9821,"src":"633:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"633:27:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10030,"nodeType":"ExpressionStatement","src":"633:27:33"}]},"documentation":{"id":10020,"nodeType":"StructuredDocumentation","src":"475:98:33","text":" @dev Destroys `amount` tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","id":10032,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"587:4:33","nodeType":"FunctionDefinition","parameters":{"id":10023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10022,"mutability":"mutable","name":"amount","nameLocation":"600:6:33","nodeType":"VariableDeclaration","scope":10032,"src":"592:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10021,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"591:16:33"},"returnParameters":{"id":10024,"nodeType":"ParameterList","parameters":[],"src":"623:0:33"},"scope":10054,"src":"578:89:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10052,"nodeType":"Block","src":"1039:95:33","statements":[{"expression":{"arguments":[{"id":10041,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"1065:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":10042,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"1074:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:12:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10044,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"1088:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10040,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"1049:15:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":10045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1049:46:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10046,"nodeType":"ExpressionStatement","src":"1049:46:33"},{"expression":{"arguments":[{"id":10048,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10035,"src":"1111:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10049,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10037,"src":"1120:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10047,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9821,"src":"1105:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1105:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10051,"nodeType":"ExpressionStatement","src":"1105:22:33"}]},"documentation":{"id":10033,"nodeType":"StructuredDocumentation","src":"673:295:33","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":10053,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"982:8:33","nodeType":"FunctionDefinition","parameters":{"id":10038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10035,"mutability":"mutable","name":"account","nameLocation":"999:7:33","nodeType":"VariableDeclaration","scope":10053,"src":"991:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10034,"name":"address","nodeType":"ElementaryTypeName","src":"991:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10037,"mutability":"mutable","name":"amount","nameLocation":"1016:6:33","nodeType":"VariableDeclaration","scope":10053,"src":"1008:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1008:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:33:33"},"returnParameters":{"id":10039,"nodeType":"ParameterList","parameters":[],"src":"1039:0:33"},"scope":10054,"src":"973:161:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":10055,"src":"419:717:33","usedErrors":[]}],"src":"124:1013:33"},"id":33},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol","exportedSymbols":{"Context":[14324],"Counters":[14398],"ECDSA":[15148],"EIP712":[15302],"ERC20":[9932],"ERC20Permit":[10949],"ERC20Votes":[10752],"IERC20":[10010],"IERC20Metadata":[10777],"IERC20Permit":[10985],"IVotes":[9304],"Math":[16203],"SafeCast":[17744],"Strings":[14573]},"id":10753,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10056,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"121:23:34"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","file":"./draft-ERC20Permit.sol","id":10057,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10753,"sourceUnit":10950,"src":"146:33:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"../../../utils/math/Math.sol","id":10058,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10753,"sourceUnit":16204,"src":"180:38:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/utils/IVotes.sol","file":"../../../governance/utils/IVotes.sol","id":10059,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10753,"sourceUnit":9305,"src":"219:46:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../../../utils/math/SafeCast.sol","id":10060,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10753,"sourceUnit":17745,"src":"266:42:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../../../utils/cryptography/ECDSA.sol","id":10061,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10753,"sourceUnit":15149,"src":"309:47:34","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10063,"name":"IVotes","nameLocations":["1285:6:34"],"nodeType":"IdentifierPath","referencedDeclaration":9304,"src":"1285:6:34"},"id":10064,"nodeType":"InheritanceSpecifier","src":"1285:6:34"},{"baseName":{"id":10065,"name":"ERC20Permit","nameLocations":["1293:11:34"],"nodeType":"IdentifierPath","referencedDeclaration":10949,"src":"1293:11:34"},"id":10066,"nodeType":"InheritanceSpecifier","src":"1293:11:34"}],"canonicalName":"ERC20Votes","contractDependencies":[],"contractKind":"contract","documentation":{"id":10062,"nodeType":"StructuredDocumentation","src":"358:894:34","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":10752,"linearizedBaseContracts":[10752,10949,15302,10985,9932,10777,10010,14324,9304],"name":"ERC20Votes","nameLocation":"1271:10:34","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC20Votes.Checkpoint","id":10071,"members":[{"constant":false,"id":10068,"mutability":"mutable","name":"fromBlock","nameLocation":"1346:9:34","nodeType":"VariableDeclaration","scope":10071,"src":"1339:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10067,"name":"uint32","nodeType":"ElementaryTypeName","src":"1339:6:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":10070,"mutability":"mutable","name":"votes","nameLocation":"1373:5:34","nodeType":"VariableDeclaration","scope":10071,"src":"1365:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":10069,"name":"uint224","nodeType":"ElementaryTypeName","src":"1365:7:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"1318:10:34","nodeType":"StructDefinition","scope":10752,"src":"1311:74:34","visibility":"public"},{"constant":true,"id":10076,"mutability":"constant","name":"_DELEGATION_TYPEHASH","nameLocation":"1416:20:34","nodeType":"VariableDeclaration","scope":10752,"src":"1391:127:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10072,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1391:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"44656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e743235362065787069727929","id":10074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1457:60:34","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":10073,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1447:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1447:71:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":10080,"mutability":"mutable","name":"_delegates","nameLocation":"1561:10:34","nodeType":"VariableDeclaration","scope":10752,"src":"1525:46:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":10079,"keyType":{"id":10077,"name":"address","nodeType":"ElementaryTypeName","src":"1533:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1525:27:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":10078,"name":"address","nodeType":"ElementaryTypeName","src":"1544:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":10086,"mutability":"mutable","name":"_checkpoints","nameLocation":"1618:12:34","nodeType":"VariableDeclaration","scope":10752,"src":"1577:53:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint[])"},"typeName":{"id":10085,"keyType":{"id":10081,"name":"address","nodeType":"ElementaryTypeName","src":"1585:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1577:32:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint[])"},"valueType":{"baseType":{"id":10083,"nodeType":"UserDefinedTypeName","pathNode":{"id":10082,"name":"Checkpoint","nameLocations":["1596:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"1596:10:34"},"referencedDeclaration":10071,"src":"1596:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":10084,"nodeType":"ArrayTypeName","src":"1596:12:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}}},"visibility":"private"},{"constant":false,"id":10090,"mutability":"mutable","name":"_totalSupplyCheckpoints","nameLocation":"1657:23:34","nodeType":"VariableDeclaration","scope":10752,"src":"1636:44:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":10088,"nodeType":"UserDefinedTypeName","pathNode":{"id":10087,"name":"Checkpoint","nameLocations":["1636:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"1636:10:34"},"referencedDeclaration":10071,"src":"1636:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":10089,"nodeType":"ArrayTypeName","src":"1636:12:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"private"},{"body":{"id":10107,"nodeType":"Block","src":"1856:50:34","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":10101,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"1873:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10103,"indexExpression":{"id":10102,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10093,"src":"1886:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1873:21:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":10105,"indexExpression":{"id":10104,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10095,"src":"1895:3:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1873:26:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage","typeString":"struct ERC20Votes.Checkpoint storage ref"}},"functionReturnParameters":10100,"id":10106,"nodeType":"Return","src":"1866:33:34"}]},"documentation":{"id":10091,"nodeType":"StructuredDocumentation","src":"1687:66:34","text":" @dev Get the `pos`-th checkpoint for `account`."},"functionSelector":"f1127ed8","id":10108,"implemented":true,"kind":"function","modifiers":[],"name":"checkpoints","nameLocation":"1767:11:34","nodeType":"FunctionDefinition","parameters":{"id":10096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10093,"mutability":"mutable","name":"account","nameLocation":"1787:7:34","nodeType":"VariableDeclaration","scope":10108,"src":"1779:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10092,"name":"address","nodeType":"ElementaryTypeName","src":"1779:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10095,"mutability":"mutable","name":"pos","nameLocation":"1803:3:34","nodeType":"VariableDeclaration","scope":10108,"src":"1796:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10094,"name":"uint32","nodeType":"ElementaryTypeName","src":"1796:6:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1778:29:34"},"returnParameters":{"id":10100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10108,"src":"1837:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":10098,"nodeType":"UserDefinedTypeName","pathNode":{"id":10097,"name":"Checkpoint","nameLocations":["1837:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"1837:10:34"},"referencedDeclaration":10071,"src":"1837:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"src":"1836:19:34"},"scope":10752,"src":"1758:148:34","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":10124,"nodeType":"Block","src":"2059:71:34","statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":10118,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"2094:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10120,"indexExpression":{"id":10119,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10111,"src":"2107:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2094:21:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":10121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2116:6:34","memberName":"length","nodeType":"MemberAccess","src":"2094:28:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10116,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"2076:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":10117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2085:8:34","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":16906,"src":"2076:17:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":10122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2076:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":10115,"id":10123,"nodeType":"Return","src":"2069:54:34"}]},"documentation":{"id":10109,"nodeType":"StructuredDocumentation","src":"1912:64:34","text":" @dev Get number of checkpoints for `account`."},"functionSelector":"6fcfff45","id":10125,"implemented":true,"kind":"function","modifiers":[],"name":"numCheckpoints","nameLocation":"1990:14:34","nodeType":"FunctionDefinition","parameters":{"id":10112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10111,"mutability":"mutable","name":"account","nameLocation":"2013:7:34","nodeType":"VariableDeclaration","scope":10125,"src":"2005:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10110,"name":"address","nodeType":"ElementaryTypeName","src":"2005:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2004:17:34"},"returnParameters":{"id":10115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10125,"src":"2051:6:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":10113,"name":"uint32","nodeType":"ElementaryTypeName","src":"2051:6:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2050:8:34"},"scope":10752,"src":"1981:149:34","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9281],"body":{"id":10138,"nodeType":"Block","src":"2301:43:34","statements":[{"expression":{"baseExpression":{"id":10134,"name":"_delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"2318:10:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":10136,"indexExpression":{"id":10135,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"2329:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2318:19:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10133,"id":10137,"nodeType":"Return","src":"2311:26:34"}]},"documentation":{"id":10126,"nodeType":"StructuredDocumentation","src":"2136:77:34","text":" @dev Get the address `account` is currently delegating to."},"functionSelector":"587cde1e","id":10139,"implemented":true,"kind":"function","modifiers":[],"name":"delegates","nameLocation":"2227:9:34","nodeType":"FunctionDefinition","overrides":{"id":10130,"nodeType":"OverrideSpecifier","overrides":[],"src":"2274:8:34"},"parameters":{"id":10129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10128,"mutability":"mutable","name":"account","nameLocation":"2245:7:34","nodeType":"VariableDeclaration","scope":10139,"src":"2237:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10127,"name":"address","nodeType":"ElementaryTypeName","src":"2237:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2236:17:34"},"returnParameters":{"id":10133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10139,"src":"2292:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10131,"name":"address","nodeType":"ElementaryTypeName","src":"2292:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2291:9:34"},"scope":10752,"src":"2218:126:34","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9255],"body":{"id":10169,"nodeType":"Block","src":"2505:127:34","statements":[{"assignments":[10149],"declarations":[{"constant":false,"id":10149,"mutability":"mutable","name":"pos","nameLocation":"2523:3:34","nodeType":"VariableDeclaration","scope":10169,"src":"2515:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2515:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10154,"initialValue":{"expression":{"baseExpression":{"id":10150,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"2529:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10152,"indexExpression":{"id":10151,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10142,"src":"2542:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2529:21:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":10153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2551:6:34","memberName":"length","nodeType":"MemberAccess","src":"2529:28:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2515:42:34"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10155,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"2574:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2574:8:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"baseExpression":{"baseExpression":{"id":10159,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"2589:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10161,"indexExpression":{"id":10160,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10142,"src":"2602:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2589:21:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},"id":10165,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10162,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"2611:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2617:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2611:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2589:30:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage","typeString":"struct ERC20Votes.Checkpoint storage ref"}},"id":10166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:5:34","memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":10070,"src":"2589:36:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":10167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2574:51:34","trueExpression":{"hexValue":"30","id":10158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":10147,"id":10168,"nodeType":"Return","src":"2567:58:34"}]},"documentation":{"id":10140,"nodeType":"StructuredDocumentation","src":"2350:68:34","text":" @dev Gets the current votes balance for `account`"},"functionSelector":"9ab24eb0","id":10170,"implemented":true,"kind":"function","modifiers":[],"name":"getVotes","nameLocation":"2432:8:34","nodeType":"FunctionDefinition","overrides":{"id":10144,"nodeType":"OverrideSpecifier","overrides":[],"src":"2478:8:34"},"parameters":{"id":10143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10142,"mutability":"mutable","name":"account","nameLocation":"2449:7:34","nodeType":"VariableDeclaration","scope":10170,"src":"2441:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10141,"name":"address","nodeType":"ElementaryTypeName","src":"2441:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2440:17:34"},"returnParameters":{"id":10147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10170,"src":"2496:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10145,"name":"uint256","nodeType":"ElementaryTypeName","src":"2496:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2495:9:34"},"scope":10752,"src":"2423:209:34","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9265],"body":{"id":10196,"nodeType":"Block","src":"2932:158:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10182,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10175,"src":"2950:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":10183,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2964:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2970:6:34","memberName":"number","nodeType":"MemberAccess","src":"2964:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2950:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":10186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2978:33:34","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":10181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2942:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2942:70:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10188,"nodeType":"ExpressionStatement","src":"2942:70:34"},{"expression":{"arguments":[{"baseExpression":{"id":10190,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"3048:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10192,"indexExpression":{"id":10191,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10173,"src":"3061:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3048:21:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10193,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10175,"src":"3071:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10189,"name":"_checkpointsLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"3029:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3029:54:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10180,"id":10195,"nodeType":"Return","src":"3022:61:34"}]},"documentation":{"id":10171,"nodeType":"StructuredDocumentation","src":"2638:182:34","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":10197,"implemented":true,"kind":"function","modifiers":[],"name":"getPastVotes","nameLocation":"2834:12:34","nodeType":"FunctionDefinition","overrides":{"id":10177,"nodeType":"OverrideSpecifier","overrides":[],"src":"2905:8:34"},"parameters":{"id":10176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"account","nameLocation":"2855:7:34","nodeType":"VariableDeclaration","scope":10197,"src":"2847:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10172,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10175,"mutability":"mutable","name":"blockNumber","nameLocation":"2872:11:34","nodeType":"VariableDeclaration","scope":10197,"src":"2864:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2864:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2846:38:34"},"returnParameters":{"id":10180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10197,"src":"2923:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10178,"name":"uint256","nodeType":"ElementaryTypeName","src":"2923:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2922:9:34"},"scope":10752,"src":"2825:265:34","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[9273],"body":{"id":10219,"nodeType":"Block","src":"3465:160:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10207,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"3483:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":10208,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3497:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3503:6:34","memberName":"number","nodeType":"MemberAccess","src":"3497:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3483:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","id":10211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3511:33:34","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":10206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3475:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3475:70:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10213,"nodeType":"ExpressionStatement","src":"3475:70:34"},{"expression":{"arguments":[{"id":10215,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10090,"src":"3581:23:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10216,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10200,"src":"3606:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10214,"name":"_checkpointsLookup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"3562:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":10217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:56:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10205,"id":10218,"nodeType":"Return","src":"3555:63:34"}]},"documentation":{"id":10198,"nodeType":"StructuredDocumentation","src":"3096:268:34","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":10220,"implemented":true,"kind":"function","modifiers":[],"name":"getPastTotalSupply","nameLocation":"3378:18:34","nodeType":"FunctionDefinition","overrides":{"id":10202,"nodeType":"OverrideSpecifier","overrides":[],"src":"3438:8:34"},"parameters":{"id":10201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10200,"mutability":"mutable","name":"blockNumber","nameLocation":"3405:11:34","nodeType":"VariableDeclaration","scope":10220,"src":"3397:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10199,"name":"uint256","nodeType":"ElementaryTypeName","src":"3397:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3396:21:34"},"returnParameters":{"id":10205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10220,"src":"3456:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10203,"name":"uint256","nodeType":"ElementaryTypeName","src":"3456:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3455:9:34"},"scope":10752,"src":"3369:256:34","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":10325,"nodeType":"Block","src":"3817:1750:34","statements":[{"assignments":[10233],"declarations":[{"constant":false,"id":10233,"mutability":"mutable","name":"length","nameLocation":"4904:6:34","nodeType":"VariableDeclaration","scope":10325,"src":"4896:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10232,"name":"uint256","nodeType":"ElementaryTypeName","src":"4896:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10236,"initialValue":{"expression":{"id":10234,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"4913:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4919:6:34","memberName":"length","nodeType":"MemberAccess","src":"4913:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4896:29:34"},{"assignments":[10238],"declarations":[{"constant":false,"id":10238,"mutability":"mutable","name":"low","nameLocation":"4944:3:34","nodeType":"VariableDeclaration","scope":10325,"src":"4936:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10237,"name":"uint256","nodeType":"ElementaryTypeName","src":"4936:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10240,"initialValue":{"hexValue":"30","id":10239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4950:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4936:15:34"},{"assignments":[10242],"declarations":[{"constant":false,"id":10242,"mutability":"mutable","name":"high","nameLocation":"4969:4:34","nodeType":"VariableDeclaration","scope":10325,"src":"4961:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10241,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10244,"initialValue":{"id":10243,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10233,"src":"4976:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4961:21:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10233,"src":"4997:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":10246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5006:1:34","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"4997:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10278,"nodeType":"IfStatement","src":"4993:244:34","trueBody":{"id":10277,"nodeType":"Block","src":"5009:228:34","statements":[{"assignments":[10249],"declarations":[{"constant":false,"id":10249,"mutability":"mutable","name":"mid","nameLocation":"5031:3:34","nodeType":"VariableDeclaration","scope":10277,"src":"5023:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10248,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10256,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10250,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10233,"src":"5037:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":10253,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10233,"src":"5056:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10251,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"5046:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":10252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5051:4:34","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":15707,"src":"5046:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":10254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5046:17:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5037:26:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5023:40:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10258,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"5095:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"id":10259,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10249,"src":"5102:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10257,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"5081:13:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":10260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5081:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":10261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5107:9:34","memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":10068,"src":"5081:35:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10262,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10227,"src":"5119:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5081:49:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10275,"nodeType":"Block","src":"5181:46:34","statements":[{"expression":{"id":10273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10269,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"5199:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10270,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10249,"src":"5205:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5211:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5205:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5199:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10274,"nodeType":"ExpressionStatement","src":"5199:13:34"}]},"id":10276,"nodeType":"IfStatement","src":"5077:150:34","trueBody":{"id":10268,"nodeType":"Block","src":"5132:43:34","statements":[{"expression":{"id":10266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10264,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5150:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10265,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10249,"src":"5157:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5150:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10267,"nodeType":"ExpressionStatement","src":"5150:10:34"}]}}]}},{"body":{"id":10310,"nodeType":"Block","src":"5266:225:34","statements":[{"assignments":[10283],"declarations":[{"constant":false,"id":10283,"mutability":"mutable","name":"mid","nameLocation":"5288:3:34","nodeType":"VariableDeclaration","scope":10310,"src":"5280:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10282,"name":"uint256","nodeType":"ElementaryTypeName","src":"5280:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10289,"initialValue":{"arguments":[{"id":10286,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"5307:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10287,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5312:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10284,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"5294:4:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":10285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5299:7:34","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"5294:12:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5294:23:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5280:37:34"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10291,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"5349:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"id":10292,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10283,"src":"5356:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10290,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"5335:13:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5335:25:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":10294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5361:9:34","memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":10068,"src":"5335:35:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10295,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10227,"src":"5373:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5335:49:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10308,"nodeType":"Block","src":"5435:46:34","statements":[{"expression":{"id":10306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10302,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"5453:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10303,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10283,"src":"5459:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5465:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5459:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:13:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10307,"nodeType":"ExpressionStatement","src":"5453:13:34"}]},"id":10309,"nodeType":"IfStatement","src":"5331:150:34","trueBody":{"id":10301,"nodeType":"Block","src":"5386:43:34","statements":[{"expression":{"id":10299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10297,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5404:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10298,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10283,"src":"5411:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5404:10:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10300,"nodeType":"ExpressionStatement","src":"5404:10:34"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10279,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"5254:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":10280,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5260:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5254:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10311,"nodeType":"WhileStatement","src":"5247:244:34"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10312,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5508:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5516:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5508:9:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"id":10317,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10225,"src":"5538:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10318,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10242,"src":"5545:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5552:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5545:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10316,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"5524:13:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":10321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5524:30:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":10322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5555:5:34","memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":10070,"src":"5524:36:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":10323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5508:52:34","trueExpression":{"hexValue":"30","id":10315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5520:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":10231,"id":10324,"nodeType":"Return","src":"5501:59:34"}]},"documentation":{"id":10221,"nodeType":"StructuredDocumentation","src":"3631:73:34","text":" @dev Lookup a value in a list of (sorted) checkpoints."},"id":10326,"implemented":true,"kind":"function","modifiers":[],"name":"_checkpointsLookup","nameLocation":"3718:18:34","nodeType":"FunctionDefinition","parameters":{"id":10228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10225,"mutability":"mutable","name":"ckpts","nameLocation":"3758:5:34","nodeType":"VariableDeclaration","scope":10326,"src":"3737:26:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":10223,"nodeType":"UserDefinedTypeName","pathNode":{"id":10222,"name":"Checkpoint","nameLocations":["3737:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"3737:10:34"},"referencedDeclaration":10071,"src":"3737:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":10224,"nodeType":"ArrayTypeName","src":"3737:12:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":10227,"mutability":"mutable","name":"blockNumber","nameLocation":"3773:11:34","nodeType":"VariableDeclaration","scope":10326,"src":"3765:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3765:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3736:49:34"},"returnParameters":{"id":10231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10326,"src":"3808:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10229,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3807:9:34"},"scope":10752,"src":"3709:1858:34","stateMutability":"view","virtual":false,"visibility":"private"},{"baseFunctions":[9287],"body":{"id":10339,"nodeType":"Block","src":"5709:51:34","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":10334,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"5729:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":10335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10336,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10329,"src":"5743:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10333,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10537,"src":"5719:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":10337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5719:34:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10338,"nodeType":"ExpressionStatement","src":"5719:34:34"}]},"documentation":{"id":10327,"nodeType":"StructuredDocumentation","src":"5573:70:34","text":" @dev Delegate votes from the sender to `delegatee`."},"functionSelector":"5c19a95c","id":10340,"implemented":true,"kind":"function","modifiers":[],"name":"delegate","nameLocation":"5657:8:34","nodeType":"FunctionDefinition","overrides":{"id":10331,"nodeType":"OverrideSpecifier","overrides":[],"src":"5700:8:34"},"parameters":{"id":10330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10329,"mutability":"mutable","name":"delegatee","nameLocation":"5674:9:34","nodeType":"VariableDeclaration","scope":10340,"src":"5666:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10328,"name":"address","nodeType":"ElementaryTypeName","src":"5666:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5665:19:34"},"returnParameters":{"id":10332,"nodeType":"ParameterList","parameters":[],"src":"5709:0:34"},"scope":10752,"src":"5648:112:34","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[9303],"body":{"id":10399,"nodeType":"Block","src":"6019:392:34","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10358,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6037:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6043:9:34","memberName":"timestamp","nodeType":"MemberAccess","src":"6037:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10360,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"6056:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6037:25:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a207369676e61747572652065787069726564","id":10362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6064:31:34","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":10357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6029:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6029:67:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10364,"nodeType":"ExpressionStatement","src":"6029:67:34"},{"assignments":[10366],"declarations":[{"constant":false,"id":10366,"mutability":"mutable","name":"signer","nameLocation":"6114:6:34","nodeType":"VariableDeclaration","scope":10399,"src":"6106:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10365,"name":"address","nodeType":"ElementaryTypeName","src":"6106:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10384,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":10373,"name":"_DELEGATION_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10076,"src":"6188:20:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10374,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"6210:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10375,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"6221:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10376,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"6228:6:34","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":10371,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6177:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6181:6:34","memberName":"encode","nodeType":"MemberAccess","src":"6177:10:34","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6177:58:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10370,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6167:9:34","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:69:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10369,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"6150:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6150:87:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10380,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10349,"src":"6251:1:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":10381,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10351,"src":"6266:1:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10382,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10353,"src":"6281:1:34","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":10367,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"6123:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$15148_$","typeString":"type(library ECDSA)"}},"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6129:7:34","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":15088,"src":"6123:13:34","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":10383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6123:169:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6106:186:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10386,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"6310:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":10388,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10366,"src":"6329:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10387,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10948,"src":"6319:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":10389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6319:17:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6310:26:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20696e76616c6964206e6f6e6365","id":10391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6338:27:34","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":10385,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6302:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6302:64:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10393,"nodeType":"ExpressionStatement","src":"6302:64:34"},{"expression":{"arguments":[{"id":10395,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10366,"src":"6386:6:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10396,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"6394:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10394,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10537,"src":"6376:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":10397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6376:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10398,"nodeType":"ExpressionStatement","src":"6376:28:34"}]},"documentation":{"id":10341,"nodeType":"StructuredDocumentation","src":"5766:66:34","text":" @dev Delegates votes from signer to `delegatee`"},"functionSelector":"c3cda520","id":10400,"implemented":true,"kind":"function","modifiers":[],"name":"delegateBySig","nameLocation":"5846:13:34","nodeType":"FunctionDefinition","overrides":{"id":10355,"nodeType":"OverrideSpecifier","overrides":[],"src":"6010:8:34"},"parameters":{"id":10354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10343,"mutability":"mutable","name":"delegatee","nameLocation":"5877:9:34","nodeType":"VariableDeclaration","scope":10400,"src":"5869:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10342,"name":"address","nodeType":"ElementaryTypeName","src":"5869:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10345,"mutability":"mutable","name":"nonce","nameLocation":"5904:5:34","nodeType":"VariableDeclaration","scope":10400,"src":"5896:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10344,"name":"uint256","nodeType":"ElementaryTypeName","src":"5896:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10347,"mutability":"mutable","name":"expiry","nameLocation":"5927:6:34","nodeType":"VariableDeclaration","scope":10400,"src":"5919:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10346,"name":"uint256","nodeType":"ElementaryTypeName","src":"5919:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10349,"mutability":"mutable","name":"v","nameLocation":"5949:1:34","nodeType":"VariableDeclaration","scope":10400,"src":"5943:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10348,"name":"uint8","nodeType":"ElementaryTypeName","src":"5943:5:34","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10351,"mutability":"mutable","name":"r","nameLocation":"5968:1:34","nodeType":"VariableDeclaration","scope":10400,"src":"5960:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5960:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10353,"mutability":"mutable","name":"s","nameLocation":"5987:1:34","nodeType":"VariableDeclaration","scope":10400,"src":"5979:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5979:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5859:135:34"},"returnParameters":{"id":10356,"nodeType":"ParameterList","parameters":[],"src":"6019:0:34"},"scope":10752,"src":"5837:574:34","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":10412,"nodeType":"Block","src":"6575:41:34","statements":[{"expression":{"expression":{"arguments":[{"id":10408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6597:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":10407,"name":"uint224","nodeType":"ElementaryTypeName","src":"6597:7:34","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":10406,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6592:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6592:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":10410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6606:3:34","memberName":"max","nodeType":"MemberAccess","src":"6592:17:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":10405,"id":10411,"nodeType":"Return","src":"6585:24:34"}]},"documentation":{"id":10401,"nodeType":"StructuredDocumentation","src":"6417:91:34","text":" @dev Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1)."},"id":10413,"implemented":true,"kind":"function","modifiers":[],"name":"_maxSupply","nameLocation":"6522:10:34","nodeType":"FunctionDefinition","parameters":{"id":10402,"nodeType":"ParameterList","parameters":[],"src":"6532:2:34"},"returnParameters":{"id":10405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10413,"src":"6566:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":10403,"name":"uint224","nodeType":"ElementaryTypeName","src":"6566:7:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"6565:9:34"},"scope":10752,"src":"6513:103:34","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[9749],"body":{"id":10444,"nodeType":"Block","src":"6779:211:34","statements":[{"expression":{"arguments":[{"id":10425,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10416,"src":"6801:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10426,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10418,"src":"6810:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10422,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6789:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$10752_$","typeString":"type(contract super ERC20Votes)"}},"id":10424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6795:5:34","memberName":"_mint","nodeType":"MemberAccess","referencedDeclaration":9749,"src":"6789:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6789:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10428,"nodeType":"ExpressionStatement","src":"6789:28:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10430,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9430,"src":"6835:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":10431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6835:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":10432,"name":"_maxSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10413,"src":"6852:10:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint224_$","typeString":"function () view returns (uint224)"}},"id":10433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"6835:29:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f766572666c6f77696e6720766f746573","id":10435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6866:50:34","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":10429,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6827:7:34","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6827:90:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10437,"nodeType":"ExpressionStatement","src":"6827:90:34"},{"expression":{"arguments":[{"id":10439,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10090,"src":"6945:23:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10440,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"6970:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":10441,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10418,"src":"6976:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_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":10438,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"6928:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$10071_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":10442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6928:55:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":10443,"nodeType":"ExpressionStatement","src":"6928:55:34"}]},"documentation":{"id":10414,"nodeType":"StructuredDocumentation","src":"6622:78:34","text":" @dev Snapshots the totalSupply after it has been increased."},"id":10445,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6714:5:34","nodeType":"FunctionDefinition","overrides":{"id":10420,"nodeType":"OverrideSpecifier","overrides":[],"src":"6770:8:34"},"parameters":{"id":10419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10416,"mutability":"mutable","name":"account","nameLocation":"6728:7:34","nodeType":"VariableDeclaration","scope":10445,"src":"6720:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10415,"name":"address","nodeType":"ElementaryTypeName","src":"6720:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10418,"mutability":"mutable","name":"amount","nameLocation":"6745:6:34","nodeType":"VariableDeclaration","scope":10445,"src":"6737:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10417,"name":"uint256","nodeType":"ElementaryTypeName","src":"6737:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:33:34"},"returnParameters":{"id":10421,"nodeType":"ParameterList","parameters":[],"src":"6779:0:34"},"scope":10752,"src":"6705:285:34","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[9821],"body":{"id":10467,"nodeType":"Block","src":"7153:116:34","statements":[{"expression":{"arguments":[{"id":10457,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10448,"src":"7175:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10458,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"7184:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10454,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"7163:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$10752_$","typeString":"type(contract super ERC20Votes)"}},"id":10456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7169:5:34","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":9821,"src":"7163:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":10459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7163:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10460,"nodeType":"ExpressionStatement","src":"7163:28:34"},{"expression":{"arguments":[{"id":10462,"name":"_totalSupplyCheckpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10090,"src":"7219:23:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10463,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10736,"src":"7244:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":10464,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"7255:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_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":10461,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"7202:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$10071_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":10465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7202:60:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":10466,"nodeType":"ExpressionStatement","src":"7202:60:34"}]},"documentation":{"id":10446,"nodeType":"StructuredDocumentation","src":"6996:78:34","text":" @dev Snapshots the totalSupply after it has been decreased."},"id":10468,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"7088:5:34","nodeType":"FunctionDefinition","overrides":{"id":10452,"nodeType":"OverrideSpecifier","overrides":[],"src":"7144:8:34"},"parameters":{"id":10451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10448,"mutability":"mutable","name":"account","nameLocation":"7102:7:34","nodeType":"VariableDeclaration","scope":10468,"src":"7094:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10447,"name":"address","nodeType":"ElementaryTypeName","src":"7094:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10450,"mutability":"mutable","name":"amount","nameLocation":"7119:6:34","nodeType":"VariableDeclaration","scope":10468,"src":"7111:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10449,"name":"uint256","nodeType":"ElementaryTypeName","src":"7111:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7093:33:34"},"returnParameters":{"id":10453,"nodeType":"ParameterList","parameters":[],"src":"7153:0:34"},"scope":10752,"src":"7079:190:34","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[9931],"body":{"id":10497,"nodeType":"Block","src":"7536:127:34","statements":[{"expression":{"arguments":[{"id":10482,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"7572:4:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10483,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"7578:2:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"7582:6:34","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":10479,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"7546:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC20Votes_$10752_$","typeString":"type(contract super ERC20Votes)"}},"id":10481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7552:19:34","memberName":"_afterTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":9931,"src":"7546:25:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":10485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7546:43:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10486,"nodeType":"ExpressionStatement","src":"7546:43:34"},{"expression":{"arguments":[{"arguments":[{"id":10489,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"7627:4:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10488,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"7617:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":10490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7617:15:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":10492,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"7644:2:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10491,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"7634:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":10493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7634:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10494,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"7649:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10487,"name":"_moveVotingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10608,"src":"7600:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":10495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7600:56:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10496,"nodeType":"ExpressionStatement","src":"7600:56:34"}]},"documentation":{"id":10469,"nodeType":"StructuredDocumentation","src":"7275:129:34","text":" @dev Move voting power when tokens are transferred.\n Emits a {IVotes-DelegateVotesChanged} event."},"id":10498,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"7418:19:34","nodeType":"FunctionDefinition","overrides":{"id":10477,"nodeType":"OverrideSpecifier","overrides":[],"src":"7527:8:34"},"parameters":{"id":10476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10471,"mutability":"mutable","name":"from","nameLocation":"7455:4:34","nodeType":"VariableDeclaration","scope":10498,"src":"7447:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10470,"name":"address","nodeType":"ElementaryTypeName","src":"7447:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10473,"mutability":"mutable","name":"to","nameLocation":"7477:2:34","nodeType":"VariableDeclaration","scope":10498,"src":"7469:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10472,"name":"address","nodeType":"ElementaryTypeName","src":"7469:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10475,"mutability":"mutable","name":"amount","nameLocation":"7497:6:34","nodeType":"VariableDeclaration","scope":10498,"src":"7489:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10474,"name":"uint256","nodeType":"ElementaryTypeName","src":"7489:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7437:72:34"},"returnParameters":{"id":10478,"nodeType":"ParameterList","parameters":[],"src":"7536:0:34"},"scope":10752,"src":"7409:254:34","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10536,"nodeType":"Block","src":"7908:306:34","statements":[{"assignments":[10507],"declarations":[{"constant":false,"id":10507,"mutability":"mutable","name":"currentDelegate","nameLocation":"7926:15:34","nodeType":"VariableDeclaration","scope":10536,"src":"7918:23:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10506,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10511,"initialValue":{"arguments":[{"id":10509,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"7954:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10508,"name":"delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10139,"src":"7944:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":10510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7944:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7918:46:34"},{"assignments":[10513],"declarations":[{"constant":false,"id":10513,"mutability":"mutable","name":"delegatorBalance","nameLocation":"7982:16:34","nodeType":"VariableDeclaration","scope":10536,"src":"7974:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10512,"name":"uint256","nodeType":"ElementaryTypeName","src":"7974:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10517,"initialValue":{"arguments":[{"id":10515,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"8011:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10514,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9444,"src":"8001:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":10516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8001:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7974:47:34"},{"expression":{"id":10522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10518,"name":"_delegates","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"8031:10:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":10520,"indexExpression":{"id":10519,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"8042:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8031:21:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10521,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"8055:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8031:33:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10523,"nodeType":"ExpressionStatement","src":"8031:33:34"},{"eventCall":{"arguments":[{"id":10525,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"8096:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10526,"name":"currentDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10507,"src":"8107:15:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10527,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"8124:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10524,"name":"DelegateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9238,"src":"8080:15:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":10528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8080:54:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10529,"nodeType":"EmitStatement","src":"8075:59:34"},{"expression":{"arguments":[{"id":10531,"name":"currentDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10507,"src":"8162:15:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10532,"name":"delegatee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10503,"src":"8179:9:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10533,"name":"delegatorBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10513,"src":"8190:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10530,"name":"_moveVotingPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10608,"src":"8145:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":10534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:62:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10535,"nodeType":"ExpressionStatement","src":"8145:62:34"}]},"documentation":{"id":10499,"nodeType":"StructuredDocumentation","src":"7669:160:34","text":" @dev Change delegation for `delegator` to `delegatee`.\n Emits events {IVotes-DelegateChanged} and {IVotes-DelegateVotesChanged}."},"id":10537,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"7843:9:34","nodeType":"FunctionDefinition","parameters":{"id":10504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10501,"mutability":"mutable","name":"delegator","nameLocation":"7861:9:34","nodeType":"VariableDeclaration","scope":10537,"src":"7853:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10500,"name":"address","nodeType":"ElementaryTypeName","src":"7853:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10503,"mutability":"mutable","name":"delegatee","nameLocation":"7880:9:34","nodeType":"VariableDeclaration","scope":10537,"src":"7872:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10502,"name":"address","nodeType":"ElementaryTypeName","src":"7872:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7852:38:34"},"returnParameters":{"id":10505,"nodeType":"ParameterList","parameters":[],"src":"7908:0:34"},"scope":10752,"src":"7834:380:34","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10607,"nodeType":"Block","src":"8326:521:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10546,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10539,"src":"8340:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10547,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"8347:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8340:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10549,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10543,"src":"8354:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8363:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8354:10:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8340:24:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10606,"nodeType":"IfStatement","src":"8336:505:34","trueBody":{"id":10605,"nodeType":"Block","src":"8366:475:34","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10553,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10539,"src":"8384:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8399:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8391:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10554,"name":"address","nodeType":"ElementaryTypeName","src":"8391:7:34","typeDescriptions":{}}},"id":10557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8391:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8384:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10578,"nodeType":"IfStatement","src":"8380:221:34","trueBody":{"id":10577,"nodeType":"Block","src":"8403:198:34","statements":[{"assignments":[10560,10562],"declarations":[{"constant":false,"id":10560,"mutability":"mutable","name":"oldWeight","nameLocation":"8430:9:34","nodeType":"VariableDeclaration","scope":10577,"src":"8422:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10559,"name":"uint256","nodeType":"ElementaryTypeName","src":"8422:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10562,"mutability":"mutable","name":"newWeight","nameLocation":"8449:9:34","nodeType":"VariableDeclaration","scope":10577,"src":"8441:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10561,"name":"uint256","nodeType":"ElementaryTypeName","src":"8441:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10570,"initialValue":{"arguments":[{"baseExpression":{"id":10564,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"8479:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10566,"indexExpression":{"id":10565,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10539,"src":"8492:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8479:17:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10567,"name":"_subtract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10736,"src":"8498:9:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":10568,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10543,"src":"8509:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_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":10563,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"8462:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$10071_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":10569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8462:54:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8421:95:34"},{"eventCall":{"arguments":[{"id":10572,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10539,"src":"8560:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10573,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10560,"src":"8565:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10574,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10562,"src":"8576:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10571,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9247,"src":"8539:20:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8539:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10576,"nodeType":"EmitStatement","src":"8534:52:34"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10579,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"8619:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":10582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8634:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8626:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10580,"name":"address","nodeType":"ElementaryTypeName","src":"8626:7:34","typeDescriptions":{}}},"id":10583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8626:10:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8619:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10604,"nodeType":"IfStatement","src":"8615:216:34","trueBody":{"id":10603,"nodeType":"Block","src":"8638:193:34","statements":[{"assignments":[10586,10588],"declarations":[{"constant":false,"id":10586,"mutability":"mutable","name":"oldWeight","nameLocation":"8665:9:34","nodeType":"VariableDeclaration","scope":10603,"src":"8657:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10585,"name":"uint256","nodeType":"ElementaryTypeName","src":"8657:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10588,"mutability":"mutable","name":"newWeight","nameLocation":"8684:9:34","nodeType":"VariableDeclaration","scope":10603,"src":"8676:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10587,"name":"uint256","nodeType":"ElementaryTypeName","src":"8676:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10596,"initialValue":{"arguments":[{"baseExpression":{"id":10590,"name":"_checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"8714:12:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_$","typeString":"mapping(address => struct ERC20Votes.Checkpoint storage ref[] storage ref)"}},"id":10592,"indexExpression":{"id":10591,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"8727:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8714:17:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage ref"}},{"id":10593,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"8733:4:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},{"id":10594,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10543,"src":"8739:6:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_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":10589,"name":"_writeCheckpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10708,"src":"8697:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$10071_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":10595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:49:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8656:90:34"},{"eventCall":{"arguments":[{"id":10598,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10541,"src":"8790:3:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10599,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10586,"src":"8795:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10600,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10588,"src":"8806:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10597,"name":"DelegateVotesChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9247,"src":"8769:20:34","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8769:47:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10602,"nodeType":"EmitStatement","src":"8764:52:34"}]}}]}}]},"id":10608,"implemented":true,"kind":"function","modifiers":[],"name":"_moveVotingPower","nameLocation":"8229:16:34","nodeType":"FunctionDefinition","parameters":{"id":10544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10539,"mutability":"mutable","name":"src","nameLocation":"8263:3:34","nodeType":"VariableDeclaration","scope":10608,"src":"8255:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10538,"name":"address","nodeType":"ElementaryTypeName","src":"8255:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10541,"mutability":"mutable","name":"dst","nameLocation":"8284:3:34","nodeType":"VariableDeclaration","scope":10608,"src":"8276:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10540,"name":"address","nodeType":"ElementaryTypeName","src":"8276:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10543,"mutability":"mutable","name":"amount","nameLocation":"8305:6:34","nodeType":"VariableDeclaration","scope":10608,"src":"8297:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10542,"name":"uint256","nodeType":"ElementaryTypeName","src":"8297:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8245:72:34"},"returnParameters":{"id":10545,"nodeType":"ParameterList","parameters":[],"src":"8326:0:34"},"scope":10752,"src":"8220:627:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10707,"nodeType":"Block","src":"9061:508:34","statements":[{"assignments":[10632],"declarations":[{"constant":false,"id":10632,"mutability":"mutable","name":"pos","nameLocation":"9079:3:34","nodeType":"VariableDeclaration","scope":10707,"src":"9071:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10631,"name":"uint256","nodeType":"ElementaryTypeName","src":"9071:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10635,"initialValue":{"expression":{"id":10633,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"9085:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":10634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9091:6:34","memberName":"length","nodeType":"MemberAccess","src":"9085:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9071:26:34"},{"assignments":[10638],"declarations":[{"constant":false,"id":10638,"mutability":"mutable","name":"oldCkpt","nameLocation":"9126:7:34","nodeType":"VariableDeclaration","scope":10707,"src":"9108:25:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":10637,"nodeType":"UserDefinedTypeName","pathNode":{"id":10636,"name":"Checkpoint","nameLocations":["9108:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"9108:10:34"},"referencedDeclaration":10071,"src":"9108:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"id":10653,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10639,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"9136:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9143:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9136:8:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"id":10647,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"9180:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10648,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"9187:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9193:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9187:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10646,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"9166:13:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":10651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9166:29:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9136:59:34","trueExpression":{"arguments":[{"hexValue":"30","id":10643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9158:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":10644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9161:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10642,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10071,"src":"9147:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"type(struct ERC20Votes.Checkpoint storage pointer)"}},"id":10645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9147:16:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"nodeType":"VariableDeclarationStatement","src":"9108:87:34"},{"expression":{"id":10657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10654,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10627,"src":"9206:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":10655,"name":"oldCkpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10638,"src":"9218:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"id":10656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9226:5:34","memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":10070,"src":"9218:13:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"9206:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10658,"nodeType":"ExpressionStatement","src":"9206:25:34"},{"expression":{"id":10664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10659,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"9241:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10661,"name":"oldWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10627,"src":"9256:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10662,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10624,"src":"9267:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10660,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"9253:2:34","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":10663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9253:20:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9241:32:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10665,"nodeType":"ExpressionStatement","src":"9241:32:34"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10666,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"9288:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9294:1:34","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9288:7:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10669,"name":"oldCkpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10638,"src":"9299:7:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}},"id":10670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9307:9:34","memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":10068,"src":"9299:17:34","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":10671,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9320:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9326:6:34","memberName":"number","nodeType":"MemberAccess","src":"9320:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9299:33:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9288:44:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10705,"nodeType":"Block","src":"9432:131:34","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":10695,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9498:5:34","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9504:6:34","memberName":"number","nodeType":"MemberAccess","src":"9498:12:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10693,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"9480:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":10694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9489:8:34","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":16906,"src":"9480:17:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9480:31:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":10700,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"9539:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10698,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"9520:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":10699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9529:9:34","memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":16306,"src":"9520:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":10701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9520:29:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":10692,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10071,"src":"9457:10:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"type(struct ERC20Votes.Checkpoint storage pointer)"}},"id":10702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9469:9:34","9513:5:34"],"names":["fromBlock","votes"],"nodeType":"FunctionCall","src":"9457:94:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$10071_memory_ptr","typeString":"struct ERC20Votes.Checkpoint memory"}],"expression":{"id":10689,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"9446:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9452:4:34","memberName":"push","nodeType":"MemberAccess","src":"9446:10:34","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$10071_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,struct ERC20Votes.Checkpoint storage ref)"}},"id":10703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9446:106:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10704,"nodeType":"ExpressionStatement","src":"9446:106:34"}]},"id":10706,"nodeType":"IfStatement","src":"9284:279:34","trueBody":{"id":10688,"nodeType":"Block","src":"9334:92:34","statements":[{"expression":{"id":10686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":10676,"name":"ckpts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10612,"src":"9362:5:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10677,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"9369:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9375:1:34","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9369:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10675,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"9348:13:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$10071_storage_ptr_$","typeString":"function (struct ERC20Votes.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct ERC20Votes.Checkpoint storage pointer)"}},"id":10680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9348:29:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint storage pointer"}},"id":10681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9378:5:34","memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":10070,"src":"9348:35:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10684,"name":"newWeight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10629,"src":"9405:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10682,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"9386:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":10683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9395:9:34","memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":16306,"src":"9386:18:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":10685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9386:29:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"9348:67:34","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":10687,"nodeType":"ExpressionStatement","src":"9348:67:34"}]}}]},"id":10708,"implemented":true,"kind":"function","modifiers":[],"name":"_writeCheckpoint","nameLocation":"8862:16:34","nodeType":"FunctionDefinition","parameters":{"id":10625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10612,"mutability":"mutable","name":"ckpts","nameLocation":"8909:5:34","nodeType":"VariableDeclaration","scope":10708,"src":"8888:26:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":10610,"nodeType":"UserDefinedTypeName","pathNode":{"id":10609,"name":"Checkpoint","nameLocations":["8888:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"8888:10:34"},"referencedDeclaration":10071,"src":"8888:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":10611,"nodeType":"ArrayTypeName","src":"8888:12:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":10622,"mutability":"mutable","name":"op","nameLocation":"8974:2:34","nodeType":"VariableDeclaration","scope":10708,"src":"8924:52:34","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":10621,"nodeType":"FunctionTypeName","parameterTypes":{"id":10617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10621,"src":"8933:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10613,"name":"uint256","nodeType":"ElementaryTypeName","src":"8933:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10621,"src":"8942:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10615,"name":"uint256","nodeType":"ElementaryTypeName","src":"8942:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8932:18:34"},"returnParameterTypes":{"id":10620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10621,"src":"8965:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10618,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8964:9:34"},"src":"8924:52:34","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":10624,"mutability":"mutable","name":"delta","nameLocation":"8994:5:34","nodeType":"VariableDeclaration","scope":10708,"src":"8986:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10623,"name":"uint256","nodeType":"ElementaryTypeName","src":"8986:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8878:127:34"},"returnParameters":{"id":10630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10627,"mutability":"mutable","name":"oldWeight","nameLocation":"9031:9:34","nodeType":"VariableDeclaration","scope":10708,"src":"9023:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10626,"name":"uint256","nodeType":"ElementaryTypeName","src":"9023:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10629,"mutability":"mutable","name":"newWeight","nameLocation":"9050:9:34","nodeType":"VariableDeclaration","scope":10708,"src":"9042:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10628,"name":"uint256","nodeType":"ElementaryTypeName","src":"9042:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9022:38:34"},"scope":10752,"src":"8853:716:34","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10721,"nodeType":"Block","src":"9642:29:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10717,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"9659:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":10718,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"9663:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9659:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10716,"id":10720,"nodeType":"Return","src":"9652:12:34"}]},"id":10722,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"9584:4:34","nodeType":"FunctionDefinition","parameters":{"id":10713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"a","nameLocation":"9597:1:34","nodeType":"VariableDeclaration","scope":10722,"src":"9589:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10709,"name":"uint256","nodeType":"ElementaryTypeName","src":"9589:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10712,"mutability":"mutable","name":"b","nameLocation":"9608:1:34","nodeType":"VariableDeclaration","scope":10722,"src":"9600:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10711,"name":"uint256","nodeType":"ElementaryTypeName","src":"9600:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9588:22:34"},"returnParameters":{"id":10716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10722,"src":"9633:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10714,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9632:9:34"},"scope":10752,"src":"9575:96:34","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":10735,"nodeType":"Block","src":"9749:29:34","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10731,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10724,"src":"9766:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10732,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10726,"src":"9770:1:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9766:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10730,"id":10734,"nodeType":"Return","src":"9759:12:34"}]},"id":10736,"implemented":true,"kind":"function","modifiers":[],"name":"_subtract","nameLocation":"9686:9:34","nodeType":"FunctionDefinition","parameters":{"id":10727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10724,"mutability":"mutable","name":"a","nameLocation":"9704:1:34","nodeType":"VariableDeclaration","scope":10736,"src":"9696:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10723,"name":"uint256","nodeType":"ElementaryTypeName","src":"9696:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10726,"mutability":"mutable","name":"b","nameLocation":"9715:1:34","nodeType":"VariableDeclaration","scope":10736,"src":"9707:9:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10725,"name":"uint256","nodeType":"ElementaryTypeName","src":"9707:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9695:22:34"},"returnParameters":{"id":10730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10736,"src":"9740:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10728,"name":"uint256","nodeType":"ElementaryTypeName","src":"9740:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9739:9:34"},"scope":10752,"src":"9677:101:34","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":10750,"nodeType":"Block","src":"10034:126:34","statements":[{"AST":{"nodeType":"YulBlock","src":"10053:101:34","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10074:1:34","type":"","value":"0"},{"name":"ckpts.slot","nodeType":"YulIdentifier","src":"10077:10:34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10067:6:34"},"nodeType":"YulFunctionCall","src":"10067:21:34"},"nodeType":"YulExpressionStatement","src":"10067:21:34"},{"nodeType":"YulAssignment","src":"10101:43:34","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10130:1:34","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10133:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"10120:9:34"},"nodeType":"YulFunctionCall","src":"10120:18:34"},{"name":"pos","nodeType":"YulIdentifier","src":"10140:3:34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10116:3:34"},"nodeType":"YulFunctionCall","src":"10116:28:34"},"variableNames":[{"name":"result.slot","nodeType":"YulIdentifier","src":"10101:11:34"}]}]},"evmVersion":"london","externalReferences":[{"declaration":10741,"isOffset":false,"isSlot":true,"src":"10077:10:34","suffix":"slot","valueSize":1},{"declaration":10743,"isOffset":false,"isSlot":false,"src":"10140:3:34","valueSize":1},{"declaration":10747,"isOffset":false,"isSlot":true,"src":"10101:11:34","suffix":"slot","valueSize":1}],"id":10749,"nodeType":"InlineAssembly","src":"10044:110:34"}]},"documentation":{"id":10737,"nodeType":"StructuredDocumentation","src":"9784:132:34","text":" @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds."},"id":10751,"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAccess","nameLocation":"9930:13:34","nodeType":"FunctionDefinition","parameters":{"id":10744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10741,"mutability":"mutable","name":"ckpts","nameLocation":"9965:5:34","nodeType":"VariableDeclaration","scope":10751,"src":"9944:26:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"},"typeName":{"baseType":{"id":10739,"nodeType":"UserDefinedTypeName","pathNode":{"id":10738,"name":"Checkpoint","nameLocations":["9944:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"9944:10:34"},"referencedDeclaration":10071,"src":"9944:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"id":10740,"nodeType":"ArrayTypeName","src":"9944:12:34","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$10071_storage_$dyn_storage_ptr","typeString":"struct ERC20Votes.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":10743,"mutability":"mutable","name":"pos","nameLocation":"9980:3:34","nodeType":"VariableDeclaration","scope":10751,"src":"9972:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10742,"name":"uint256","nodeType":"ElementaryTypeName","src":"9972:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9943:41:34"},"returnParameters":{"id":10748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10747,"mutability":"mutable","name":"result","nameLocation":"10026:6:34","nodeType":"VariableDeclaration","scope":10751,"src":"10007:25:34","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"},"typeName":{"id":10746,"nodeType":"UserDefinedTypeName","pathNode":{"id":10745,"name":"Checkpoint","nameLocations":["10007:10:34"],"nodeType":"IdentifierPath","referencedDeclaration":10071,"src":"10007:10:34"},"referencedDeclaration":10071,"src":"10007:10:34","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$10071_storage_ptr","typeString":"struct ERC20Votes.Checkpoint"}},"visibility":"internal"}],"src":"10006:27:34"},"scope":10752,"src":"9921:239:34","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":10753,"src":"1253:8909:34","usedErrors":[]}],"src":"121:10042:34"},"id":34},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[10010],"IERC20Metadata":[10777]},"id":10778,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10754,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:35"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":10755,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10778,"sourceUnit":10011,"src":"135:23:35","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10757,"name":"IERC20","nameLocations":["305:6:35"],"nodeType":"IdentifierPath","referencedDeclaration":10010,"src":"305:6:35"},"id":10758,"nodeType":"InheritanceSpecifier","src":"305:6:35"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":10756,"nodeType":"StructuredDocumentation","src":"160:116:35","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":10777,"linearizedBaseContracts":[10777,10010],"name":"IERC20Metadata","nameLocation":"287:14:35","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10759,"nodeType":"StructuredDocumentation","src":"318:54:35","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":10764,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:35","nodeType":"FunctionDefinition","parameters":{"id":10760,"nodeType":"ParameterList","parameters":[],"src":"390:2:35"},"returnParameters":{"id":10763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10764,"src":"416:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10761,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:35"},"scope":10777,"src":"377:54:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10765,"nodeType":"StructuredDocumentation","src":"437:56:35","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":10770,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:35","nodeType":"FunctionDefinition","parameters":{"id":10766,"nodeType":"ParameterList","parameters":[],"src":"513:2:35"},"returnParameters":{"id":10769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10770,"src":"539:13:35","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10767,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:35","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:35"},"scope":10777,"src":"498:56:35","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10771,"nodeType":"StructuredDocumentation","src":"560:65:35","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":10776,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:35","nodeType":"FunctionDefinition","parameters":{"id":10772,"nodeType":"ParameterList","parameters":[],"src":"647:2:35"},"returnParameters":{"id":10775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10776,"src":"673:5:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10773,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:35","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:35"},"scope":10777,"src":"630:50:35","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10778,"src":"277:405:35","usedErrors":[]}],"src":"110:573:35"},"id":35},"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","exportedSymbols":{"Context":[14324],"Counters":[14398],"ECDSA":[15148],"EIP712":[15302],"ERC20":[9932],"ERC20Permit":[10949],"IERC20":[10010],"IERC20Metadata":[10777],"IERC20Permit":[10985],"Math":[16203],"Strings":[14573]},"id":10950,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10779,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:36"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"./draft-IERC20Permit.sol","id":10780,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10950,"sourceUnit":10986,"src":"153:34:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":10781,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10950,"sourceUnit":9933,"src":"188:22:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"../../../utils/cryptography/ECDSA.sol","id":10782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10950,"sourceUnit":15149,"src":"211:47:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"../../../utils/cryptography/EIP712.sol","id":10783,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10950,"sourceUnit":15303,"src":"259:48:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"../../../utils/Counters.sol","id":10784,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10950,"sourceUnit":14399,"src":"308:37:36","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10786,"name":"ERC20","nameLocations":["898:5:36"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"898:5:36"},"id":10787,"nodeType":"InheritanceSpecifier","src":"898:5:36"},{"baseName":{"id":10788,"name":"IERC20Permit","nameLocations":["905:12:36"],"nodeType":"IdentifierPath","referencedDeclaration":10985,"src":"905:12:36"},"id":10789,"nodeType":"InheritanceSpecifier","src":"905:12:36"},{"baseName":{"id":10790,"name":"EIP712","nameLocations":["919:6:36"],"nodeType":"IdentifierPath","referencedDeclaration":15302,"src":"919:6:36"},"id":10791,"nodeType":"InheritanceSpecifier","src":"919:6:36"}],"canonicalName":"ERC20Permit","contractDependencies":[],"contractKind":"contract","documentation":{"id":10785,"nodeType":"StructuredDocumentation","src":"347:517:36","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":10949,"linearizedBaseContracts":[10949,15302,10985,9932,10777,10010,14324],"name":"ERC20Permit","nameLocation":"883:11:36","nodeType":"ContractDefinition","nodes":[{"global":false,"id":10795,"libraryName":{"id":10792,"name":"Counters","nameLocations":["938:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":14398,"src":"938:8:36"},"nodeType":"UsingForDirective","src":"932:36:36","typeName":{"id":10794,"nodeType":"UserDefinedTypeName","pathNode":{"id":10793,"name":"Counters.Counter","nameLocations":["951:8:36","960:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"951:16:36"},"referencedDeclaration":14330,"src":"951:16:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":false,"id":10800,"mutability":"mutable","name":"_nonces","nameLocation":"1019:7:36","nodeType":"VariableDeclaration","scope":10949,"src":"974:52:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$14330_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"typeName":{"id":10799,"keyType":{"id":10796,"name":"address","nodeType":"ElementaryTypeName","src":"982:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"974:36:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$14330_storage_$","typeString":"mapping(address => struct Counters.Counter)"},"valueType":{"id":10798,"nodeType":"UserDefinedTypeName","pathNode":{"id":10797,"name":"Counters.Counter","nameLocations":["993:8:36","1002:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"993:16:36"},"referencedDeclaration":14330,"src":"993:16:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}}},"visibility":"private"},{"constant":true,"id":10805,"mutability":"constant","name":"_PERMIT_TYPEHASH","nameLocation":"1110:16:36","nodeType":"VariableDeclaration","scope":10949,"src":"1085:147:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1085:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":10803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1147:84:36","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":10802,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1137:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:95:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"documentation":{"id":10806,"nodeType":"StructuredDocumentation","src":"1238:254:36","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":10808,"mutability":"mutable","name":"_PERMIT_TYPEHASH_DEPRECATED_SLOT","nameLocation":"1565:32:36","nodeType":"VariableDeclaration","scope":10949,"src":"1549:48:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1549:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":10818,"nodeType":"Block","src":"1879:2:36","statements":[]},"documentation":{"id":10809,"nodeType":"StructuredDocumentation","src":"1604:220:36","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":10819,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":10814,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10811,"src":"1868:4:36","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"31","id":10815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1874:3:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"id":10816,"kind":"baseConstructorSpecifier","modifierName":{"id":10813,"name":"EIP712","nameLocations":["1861:6:36"],"nodeType":"IdentifierPath","referencedDeclaration":15302,"src":"1861:6:36"},"nodeType":"ModifierInvocation","src":"1861:17:36"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":10812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10811,"mutability":"mutable","name":"name","nameLocation":"1855:4:36","nodeType":"VariableDeclaration","scope":10819,"src":"1841:18:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10810,"name":"string","nodeType":"ElementaryTypeName","src":"1841:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1840:20:36"},"returnParameters":{"id":10817,"nodeType":"ParameterList","parameters":[],"src":"1879:0:36"},"scope":10949,"src":"1829:52:36","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[10970],"body":{"id":10891,"nodeType":"Block","src":"2140:428:36","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10839,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2158:5:36","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":10840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2164:9:36","memberName":"timestamp","nodeType":"MemberAccess","src":"2158:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":10841,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10828,"src":"2177:8:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2158:27:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332305065726d69743a206578706972656420646561646c696e65","id":10843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2187:31:36","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":10838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2150:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2150:69:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10845,"nodeType":"ExpressionStatement","src":"2150:69:36"},{"assignments":[10847],"declarations":[{"constant":false,"id":10847,"mutability":"mutable","name":"structHash","nameLocation":"2238:10:36","nodeType":"VariableDeclaration","scope":10891,"src":"2230:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10861,"initialValue":{"arguments":[{"arguments":[{"id":10851,"name":"_PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10805,"src":"2272:16:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10852,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10822,"src":"2290:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10853,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10824,"src":"2297:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10826,"src":"2306:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":10856,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10822,"src":"2323:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10855,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10948,"src":"2313:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":10857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2313:16:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10858,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10828,"src":"2331:8:36","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":10849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2261:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2265:6:36","memberName":"encode","nodeType":"MemberAccess","src":"2261:10:36","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2261:79:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10848,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2251:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2251:90:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2230:111:36"},{"assignments":[10863],"declarations":[{"constant":false,"id":10863,"mutability":"mutable","name":"hash","nameLocation":"2360:4:36","nodeType":"VariableDeclaration","scope":10891,"src":"2352:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2352:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10867,"initialValue":{"arguments":[{"id":10865,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10847,"src":"2384:10:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10864,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15301,"src":"2367:16:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2367:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2352:43:36"},{"assignments":[10869],"declarations":[{"constant":false,"id":10869,"mutability":"mutable","name":"signer","nameLocation":"2414:6:36","nodeType":"VariableDeclaration","scope":10891,"src":"2406:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10868,"name":"address","nodeType":"ElementaryTypeName","src":"2406:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":10877,"initialValue":{"arguments":[{"id":10872,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10863,"src":"2437:4:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10873,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10830,"src":"2443:1:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":10874,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10832,"src":"2446:1:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10875,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10834,"src":"2449:1:36","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":10870,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"2423:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$15148_$","typeString":"type(library ECDSA)"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2429:7:36","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":15088,"src":"2423:13:36","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":10876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2423:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2406:45:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10879,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10869,"src":"2469:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":10880,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10822,"src":"2479:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2469:15:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332305065726d69743a20696e76616c6964207369676e6174757265","id":10882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2486:32:36","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":10878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2461:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2461:58:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10884,"nodeType":"ExpressionStatement","src":"2461:58:36"},{"expression":{"arguments":[{"id":10886,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10822,"src":"2539:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10887,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10824,"src":"2546:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10888,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10826,"src":"2555:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10885,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"2530:8:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":10889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:31:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10890,"nodeType":"ExpressionStatement","src":"2530:31:36"}]},"documentation":{"id":10820,"nodeType":"StructuredDocumentation","src":"1887:50:36","text":" @dev See {IERC20Permit-permit}."},"functionSelector":"d505accf","id":10892,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1951:6:36","nodeType":"FunctionDefinition","overrides":{"id":10836,"nodeType":"OverrideSpecifier","overrides":[],"src":"2131:8:36"},"parameters":{"id":10835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10822,"mutability":"mutable","name":"owner","nameLocation":"1975:5:36","nodeType":"VariableDeclaration","scope":10892,"src":"1967:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10821,"name":"address","nodeType":"ElementaryTypeName","src":"1967:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10824,"mutability":"mutable","name":"spender","nameLocation":"1998:7:36","nodeType":"VariableDeclaration","scope":10892,"src":"1990:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10823,"name":"address","nodeType":"ElementaryTypeName","src":"1990:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10826,"mutability":"mutable","name":"value","nameLocation":"2023:5:36","nodeType":"VariableDeclaration","scope":10892,"src":"2015:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10825,"name":"uint256","nodeType":"ElementaryTypeName","src":"2015:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10828,"mutability":"mutable","name":"deadline","nameLocation":"2046:8:36","nodeType":"VariableDeclaration","scope":10892,"src":"2038:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10827,"name":"uint256","nodeType":"ElementaryTypeName","src":"2038:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10830,"mutability":"mutable","name":"v","nameLocation":"2070:1:36","nodeType":"VariableDeclaration","scope":10892,"src":"2064:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10829,"name":"uint8","nodeType":"ElementaryTypeName","src":"2064:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10832,"mutability":"mutable","name":"r","nameLocation":"2089:1:36","nodeType":"VariableDeclaration","scope":10892,"src":"2081:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2081:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10834,"mutability":"mutable","name":"s","nameLocation":"2108:1:36","nodeType":"VariableDeclaration","scope":10892,"src":"2100:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2100:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1957:158:36"},"returnParameters":{"id":10837,"nodeType":"ParameterList","parameters":[],"src":"2140:0:36"},"scope":10949,"src":"1942:626:36","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10978],"body":{"id":10907,"nodeType":"Block","src":"2707:48:36","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":10901,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10800,"src":"2724:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$14330_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":10903,"indexExpression":{"id":10902,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10895,"src":"2732:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2724:14:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage","typeString":"struct Counters.Counter storage ref"}},"id":10904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2739:7:36","memberName":"current","nodeType":"MemberAccess","referencedDeclaration":14342,"src":"2724:22:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$14330_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$14330_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":10905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10900,"id":10906,"nodeType":"Return","src":"2717:31:36"}]},"documentation":{"id":10893,"nodeType":"StructuredDocumentation","src":"2574:50:36","text":" @dev See {IERC20Permit-nonces}."},"functionSelector":"7ecebe00","id":10908,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"2638:6:36","nodeType":"FunctionDefinition","overrides":{"id":10897,"nodeType":"OverrideSpecifier","overrides":[],"src":"2680:8:36"},"parameters":{"id":10896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10895,"mutability":"mutable","name":"owner","nameLocation":"2653:5:36","nodeType":"VariableDeclaration","scope":10908,"src":"2645:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10894,"name":"address","nodeType":"ElementaryTypeName","src":"2645:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2644:15:36"},"returnParameters":{"id":10900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10899,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10908,"src":"2698:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10898,"name":"uint256","nodeType":"ElementaryTypeName","src":"2698:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2697:9:36"},"scope":10949,"src":"2629:126:36","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10984],"body":{"id":10918,"nodeType":"Block","src":"2948:44:36","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":10915,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15258,"src":"2965:18:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":10916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2965:20:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10914,"id":10917,"nodeType":"Return","src":"2958:27:36"}]},"documentation":{"id":10909,"nodeType":"StructuredDocumentation","src":"2761:60:36","text":" @dev See {IERC20Permit-DOMAIN_SEPARATOR}."},"functionSelector":"3644e515","id":10919,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2888:16:36","nodeType":"FunctionDefinition","overrides":{"id":10911,"nodeType":"OverrideSpecifier","overrides":[],"src":"2921:8:36"},"parameters":{"id":10910,"nodeType":"ParameterList","parameters":[],"src":"2904:2:36"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10919,"src":"2939:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2939:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2938:9:36"},"scope":10949,"src":"2879:113:36","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":10947,"nodeType":"Block","src":"3200:126:36","statements":[{"assignments":[10931],"declarations":[{"constant":false,"id":10931,"mutability":"mutable","name":"nonce","nameLocation":"3235:5:36","nodeType":"VariableDeclaration","scope":10947,"src":"3210:30:36","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":10930,"nodeType":"UserDefinedTypeName","pathNode":{"id":10929,"name":"Counters.Counter","nameLocations":["3210:8:36","3219:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"3210:16:36"},"referencedDeclaration":14330,"src":"3210:16:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"id":10935,"initialValue":{"baseExpression":{"id":10932,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10800,"src":"3243:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Counter_$14330_storage_$","typeString":"mapping(address => struct Counters.Counter storage ref)"}},"id":10934,"indexExpression":{"id":10933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"3251:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3243:14:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage","typeString":"struct Counters.Counter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3210:47:36"},{"expression":{"id":10940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10936,"name":"current","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10925,"src":"3267:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10937,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"3277:5:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":10938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3283:7:36","memberName":"current","nodeType":"MemberAccess","referencedDeclaration":14342,"src":"3277:13:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$14330_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$14330_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":10939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3277:15:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3267:25:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10941,"nodeType":"ExpressionStatement","src":"3267:25:36"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":10942,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"3302:5:36","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":10944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3308:9:36","memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":14356,"src":"3302:15:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$14330_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$14330_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":10945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3302:17:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10946,"nodeType":"ExpressionStatement","src":"3302:17:36"}]},"documentation":{"id":10920,"nodeType":"StructuredDocumentation","src":"2998:120:36","text":" @dev \"Consume a nonce\": return the current value and increment.\n _Available since v4.1._"},"id":10948,"implemented":true,"kind":"function","modifiers":[],"name":"_useNonce","nameLocation":"3132:9:36","nodeType":"FunctionDefinition","parameters":{"id":10923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10922,"mutability":"mutable","name":"owner","nameLocation":"3150:5:36","nodeType":"VariableDeclaration","scope":10948,"src":"3142:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10921,"name":"address","nodeType":"ElementaryTypeName","src":"3142:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3141:15:36"},"returnParameters":{"id":10926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10925,"mutability":"mutable","name":"current","nameLocation":"3191:7:36","nodeType":"VariableDeclaration","scope":10948,"src":"3183:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3183:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3182:17:36"},"scope":10949,"src":"3123:203:36","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":10950,"src":"865:2463:36","usedErrors":[]}],"src":"128:3201:36"},"id":36},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[10985]},"id":10986,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10951,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:37"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":10952,"nodeType":"StructuredDocumentation","src":"139:480:37","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":10985,"linearizedBaseContracts":[10985],"name":"IERC20Permit","nameLocation":"630:12:37","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10953,"nodeType":"StructuredDocumentation","src":"649:792:37","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":10970,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:37","nodeType":"FunctionDefinition","parameters":{"id":10968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10955,"mutability":"mutable","name":"owner","nameLocation":"1479:5:37","nodeType":"VariableDeclaration","scope":10970,"src":"1471:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10954,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10957,"mutability":"mutable","name":"spender","nameLocation":"1502:7:37","nodeType":"VariableDeclaration","scope":10970,"src":"1494:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10956,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10959,"mutability":"mutable","name":"value","nameLocation":"1527:5:37","nodeType":"VariableDeclaration","scope":10970,"src":"1519:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10958,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10961,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:37","nodeType":"VariableDeclaration","scope":10970,"src":"1542:16:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10960,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10963,"mutability":"mutable","name":"v","nameLocation":"1574:1:37","nodeType":"VariableDeclaration","scope":10970,"src":"1568:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10962,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:37","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":10965,"mutability":"mutable","name":"r","nameLocation":"1593:1:37","nodeType":"VariableDeclaration","scope":10970,"src":"1585:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10967,"mutability":"mutable","name":"s","nameLocation":"1612:1:37","nodeType":"VariableDeclaration","scope":10970,"src":"1604:9:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:37"},"returnParameters":{"id":10969,"nodeType":"ParameterList","parameters":[],"src":"1628:0:37"},"scope":10985,"src":"1446:183:37","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10971,"nodeType":"StructuredDocumentation","src":"1635:294:37","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":10978,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:37","nodeType":"FunctionDefinition","parameters":{"id":10974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10973,"mutability":"mutable","name":"owner","nameLocation":"1958:5:37","nodeType":"VariableDeclaration","scope":10978,"src":"1950:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10972,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:37"},"returnParameters":{"id":10977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10978,"src":"1988:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10975,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:37"},"scope":10985,"src":"1934:63:37","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10979,"nodeType":"StructuredDocumentation","src":"2003:128:37","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":10984,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:37","nodeType":"FunctionDefinition","parameters":{"id":10980,"nodeType":"ParameterList","parameters":[],"src":"2214:2:37"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10984,"src":"2240:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:37"},"scope":10985,"src":"2189:60:37","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10986,"src":"620:1631:37","usedErrors":[]}],"src":"114:2138:37"},"id":37},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"ERC165":[15326],"ERC721":[11930],"IERC165":[15338],"IERC721":[12046],"IERC721Metadata":[12601],"IERC721Receiver":[12064],"Math":[16203],"Strings":[14573]},"id":11931,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10987,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:38"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":10988,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":12047,"src":"132:23:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":10989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":12065,"src":"156:31:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":10990,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":12602,"src":"188:42:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":10991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":12932,"src":"231:33:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":10992,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":14325,"src":"265:33:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":10993,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":14574,"src":"299:33:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":10994,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11931,"sourceUnit":15327,"src":"333:46:38","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10996,"name":"Context","nameLocations":["647:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":14324,"src":"647:7:38"},"id":10997,"nodeType":"InheritanceSpecifier","src":"647:7:38"},{"baseName":{"id":10998,"name":"ERC165","nameLocations":["656:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":15326,"src":"656:6:38"},"id":10999,"nodeType":"InheritanceSpecifier","src":"656:6:38"},{"baseName":{"id":11000,"name":"IERC721","nameLocations":["664:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":12046,"src":"664:7:38"},"id":11001,"nodeType":"InheritanceSpecifier","src":"664:7:38"},{"baseName":{"id":11002,"name":"IERC721Metadata","nameLocations":["673:15:38"],"nodeType":"IdentifierPath","referencedDeclaration":12601,"src":"673:15:38"},"id":11003,"nodeType":"InheritanceSpecifier","src":"673:15:38"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":10995,"nodeType":"StructuredDocumentation","src":"381:246:38","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":11930,"linearizedBaseContracts":[11930,12601,12046,15326,15338,14324],"name":"ERC721","nameLocation":"637:6:38","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11006,"libraryName":{"id":11004,"name":"Address","nameLocations":["701:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":12931,"src":"701:7:38"},"nodeType":"UsingForDirective","src":"695:26:38","typeName":{"id":11005,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":11009,"libraryName":{"id":11007,"name":"Strings","nameLocations":["732:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":14573,"src":"732:7:38"},"nodeType":"UsingForDirective","src":"726:26:38","typeName":{"id":11008,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":11011,"mutability":"mutable","name":"_name","nameLocation":"791:5:38","nodeType":"VariableDeclaration","scope":11930,"src":"776:20:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":11010,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":11013,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:38","nodeType":"VariableDeclaration","scope":11930,"src":"823:22:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":11012,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":11017,"mutability":"mutable","name":"_owners","nameLocation":"934:7:38","nodeType":"VariableDeclaration","scope":11930,"src":"898:43:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":11016,"keyType":{"id":11014,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":11015,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":11021,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:38","nodeType":"VariableDeclaration","scope":11930,"src":"992:45:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":11020,"keyType":{"id":11018,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":11019,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":11025,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:38","nodeType":"VariableDeclaration","scope":11930,"src":"1093:51:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":11024,"keyType":{"id":11022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":11023,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":11031,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:38","nodeType":"VariableDeclaration","scope":11930,"src":"1199:71:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":11030,"keyType":{"id":11026,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":11029,"keyType":{"id":11027,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":11028,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":11047,"nodeType":"Block","src":"1446:57:38","statements":[{"expression":{"id":11041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11039,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"1456:5:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11040,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11034,"src":"1464:5:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11042,"nodeType":"ExpressionStatement","src":"1456:13:38"},{"expression":{"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11043,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11013,"src":"1479:7:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11044,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11036,"src":"1489:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":11046,"nodeType":"ExpressionStatement","src":"1479:17:38"}]},"documentation":{"id":11032,"nodeType":"StructuredDocumentation","src":"1277:108:38","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":11048,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11034,"mutability":"mutable","name":"name_","nameLocation":"1416:5:38","nodeType":"VariableDeclaration","scope":11048,"src":"1402:19:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11033,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11036,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:38","nodeType":"VariableDeclaration","scope":11048,"src":"1423:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11035,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:38"},"returnParameters":{"id":11038,"nodeType":"ParameterList","parameters":[],"src":"1446:0:38"},"scope":11930,"src":"1390:113:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[15325,15337],"body":{"id":11078,"nodeType":"Block","src":"1678:192:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11059,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"1707:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11061,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"1727:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$12046_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$12046_$","typeString":"type(contract IERC721)"}],"id":11060,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:13:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$12046","typeString":"type(contract IERC721)"}},"id":11063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1736:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11065,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"1763:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":11067,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12601,"src":"1783:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$12601_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$12601_$","typeString":"type(contract IERC721Metadata)"}],"id":11066,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$12601","typeString":"type(contract IERC721Metadata)"}},"id":11069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1800:11:38","memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":11074,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"1851:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":11072,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$11930_$","typeString":"type(contract super ERC721)"}},"id":11073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1833:17:38","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":15325,"src":"1827:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":11075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11058,"id":11077,"nodeType":"Return","src":"1688:175:38"}]},"documentation":{"id":11049,"nodeType":"StructuredDocumentation","src":"1509:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":11079,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:38","nodeType":"FunctionDefinition","overrides":{"id":11055,"nodeType":"OverrideSpecifier","overrides":[{"id":11053,"name":"ERC165","nameLocations":["1646:6:38"],"nodeType":"IdentifierPath","referencedDeclaration":15326,"src":"1646:6:38"},{"id":11054,"name":"IERC165","nameLocations":["1654:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"1654:7:38"}],"src":"1637:25:38"},"parameters":{"id":11052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11051,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:38","nodeType":"VariableDeclaration","scope":11079,"src":"1597:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11050,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:38"},"returnParameters":{"id":11058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11079,"src":"1672:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11056,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:38"},"scope":11930,"src":"1570:300:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[11971],"body":{"id":11102,"nodeType":"Block","src":"2010:123:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11089,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"2028:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:38","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":11091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11090,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:38","typeDescriptions":{}}},"id":11093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":11095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:38","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":11088,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:73:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11097,"nodeType":"ExpressionStatement","src":"2020:73:38"},{"expression":{"baseExpression":{"id":11098,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"2110:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11100,"indexExpression":{"id":11099,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11082,"src":"2120:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11087,"id":11101,"nodeType":"Return","src":"2103:23:38"}]},"documentation":{"id":11080,"nodeType":"StructuredDocumentation","src":"1876:48:38","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":11103,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:38","nodeType":"FunctionDefinition","overrides":{"id":11084,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:38"},"parameters":{"id":11083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11082,"mutability":"mutable","name":"owner","nameLocation":"1956:5:38","nodeType":"VariableDeclaration","scope":11103,"src":"1948:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11081,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:38"},"returnParameters":{"id":11087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11103,"src":"2001:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11085,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:38"},"scope":11930,"src":"1929:204:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[11979],"body":{"id":11130,"nodeType":"Block","src":"2271:138:38","statements":[{"assignments":[11113],"declarations":[{"constant":false,"id":11113,"mutability":"mutable","name":"owner","nameLocation":"2289:5:38","nodeType":"VariableDeclaration","scope":11130,"src":"2281:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11112,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11117,"initialValue":{"arguments":[{"id":11115,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11106,"src":"2306:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11114,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"2297:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:33:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11119,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11113,"src":"2332:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:38","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":11121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11120,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:38","typeDescriptions":{}}},"id":11123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2341:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2332:19:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":11125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:26:38","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":11118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:56:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11127,"nodeType":"ExpressionStatement","src":"2324:56:38"},{"expression":{"id":11128,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11113,"src":"2397:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11111,"id":11129,"nodeType":"Return","src":"2390:12:38"}]},"documentation":{"id":11104,"nodeType":"StructuredDocumentation","src":"2139:46:38","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":11131,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:38","nodeType":"FunctionDefinition","overrides":{"id":11108,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:38"},"parameters":{"id":11107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11106,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:38","nodeType":"VariableDeclaration","scope":11131,"src":"2207:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11105,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:38"},"returnParameters":{"id":11111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11131,"src":"2262:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11109,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:38"},"scope":11930,"src":"2190:219:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12586],"body":{"id":11140,"nodeType":"Block","src":"2540:29:38","statements":[{"expression":{"id":11138,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2557:5:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":11137,"id":11139,"nodeType":"Return","src":"2550:12:38"}]},"documentation":{"id":11132,"nodeType":"StructuredDocumentation","src":"2415:51:38","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":11141,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2480:4:38","nodeType":"FunctionDefinition","overrides":{"id":11134,"nodeType":"OverrideSpecifier","overrides":[],"src":"2507:8:38"},"parameters":{"id":11133,"nodeType":"ParameterList","parameters":[],"src":"2484:2:38"},"returnParameters":{"id":11137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11141,"src":"2525:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11135,"name":"string","nodeType":"ElementaryTypeName","src":"2525:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2524:15:38"},"scope":11930,"src":"2471:98:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12592],"body":{"id":11150,"nodeType":"Block","src":"2704:31:38","statements":[{"expression":{"id":11148,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11013,"src":"2721:7:38","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":11147,"id":11149,"nodeType":"Return","src":"2714:14:38"}]},"documentation":{"id":11142,"nodeType":"StructuredDocumentation","src":"2575:53:38","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":11151,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2642:6:38","nodeType":"FunctionDefinition","overrides":{"id":11144,"nodeType":"OverrideSpecifier","overrides":[],"src":"2671:8:38"},"parameters":{"id":11143,"nodeType":"ParameterList","parameters":[],"src":"2648:2:38"},"returnParameters":{"id":11147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11151,"src":"2689:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11145,"name":"string","nodeType":"ElementaryTypeName","src":"2689:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2688:15:38"},"scope":11930,"src":"2633:102:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12600],"body":{"id":11189,"nodeType":"Block","src":"2889:188:38","statements":[{"expression":{"arguments":[{"id":11161,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11154,"src":"2914:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11160,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11808,"src":"2899:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":11162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2899:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11163,"nodeType":"ExpressionStatement","src":"2899:23:38"},{"assignments":[11165],"declarations":[{"constant":false,"id":11165,"mutability":"mutable","name":"baseURI","nameLocation":"2947:7:38","nodeType":"VariableDeclaration","scope":11189,"src":"2933:21:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11164,"name":"string","nodeType":"ElementaryTypeName","src":"2933:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":11168,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":11166,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11199,"src":"2957:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":11167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2933:34:38"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":11171,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11165,"src":"2990:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2984:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":11169,"name":"bytes","nodeType":"ElementaryTypeName","src":"2984:5:38","typeDescriptions":{}}},"id":11172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:14:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2999:6:38","memberName":"length","nodeType":"MemberAccess","src":"2984:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3008:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2984:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":11186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3068:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":11187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2984:86:38","trueExpression":{"arguments":[{"arguments":[{"id":11180,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11165,"src":"3036:7:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11181,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11154,"src":"3045:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3053:8:38","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14456,"src":"3045:16:38","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":11183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3045:18:38","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":11178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3019:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3023:12:38","memberName":"encodePacked","nodeType":"MemberAccess","src":"3019:16:38","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:45:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3012:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":11176,"name":"string","nodeType":"ElementaryTypeName","src":"3012:6:38","typeDescriptions":{}}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11159,"id":11188,"nodeType":"Return","src":"2977:93:38"}]},"documentation":{"id":11152,"nodeType":"StructuredDocumentation","src":"2741:55:38","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":11190,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2810:8:38","nodeType":"FunctionDefinition","overrides":{"id":11156,"nodeType":"OverrideSpecifier","overrides":[],"src":"2856:8:38"},"parameters":{"id":11155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11154,"mutability":"mutable","name":"tokenId","nameLocation":"2827:7:38","nodeType":"VariableDeclaration","scope":11190,"src":"2819:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11153,"name":"uint256","nodeType":"ElementaryTypeName","src":"2819:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2818:17:38"},"returnParameters":{"id":11159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11190,"src":"2874:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11157,"name":"string","nodeType":"ElementaryTypeName","src":"2874:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2873:15:38"},"scope":11930,"src":"2801:276:38","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":11198,"nodeType":"Block","src":"3385:26:38","statements":[{"expression":{"hexValue":"","id":11196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3402:2:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":11195,"id":11197,"nodeType":"Return","src":"3395:9:38"}]},"documentation":{"id":11191,"nodeType":"StructuredDocumentation","src":"3083:231:38","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":11199,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3328:8:38","nodeType":"FunctionDefinition","parameters":{"id":11192,"nodeType":"ParameterList","parameters":[],"src":"3336:2:38"},"returnParameters":{"id":11195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11199,"src":"3370:13:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11193,"name":"string","nodeType":"ElementaryTypeName","src":"3370:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3369:15:38"},"scope":11930,"src":"3319:92:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[12019],"body":{"id":11241,"nodeType":"Block","src":"3538:336:38","statements":[{"assignments":[11209],"declarations":[{"constant":false,"id":11209,"mutability":"mutable","name":"owner","nameLocation":"3556:5:38","nodeType":"VariableDeclaration","scope":11241,"src":"3548:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11208,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11214,"initialValue":{"arguments":[{"id":11212,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11204,"src":"3579:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11210,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"3564:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3571:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"3564:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3564:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3548:39:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11216,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"3605:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11217,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"3611:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3605:11:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":11219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3618:35:38","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":11215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3597:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:57:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11221,"nodeType":"ExpressionStatement","src":"3597:57:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":11223,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"3686:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11225,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"3702:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3686:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":11228,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"3728:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":11229,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"3735:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3735:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11227,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"3711:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":11231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:37:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3686:62:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","id":11233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3762:63:38","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":11222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3665:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3665:170:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11235,"nodeType":"ExpressionStatement","src":"3665:170:38"},{"expression":{"arguments":[{"id":11237,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"3855:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11238,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11204,"src":"3859:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11236,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11762,"src":"3846:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:21:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11240,"nodeType":"ExpressionStatement","src":"3846:21:38"}]},"documentation":{"id":11200,"nodeType":"StructuredDocumentation","src":"3417:46:38","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":11242,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3477:7:38","nodeType":"FunctionDefinition","overrides":{"id":11206,"nodeType":"OverrideSpecifier","overrides":[],"src":"3529:8:38"},"parameters":{"id":11205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11202,"mutability":"mutable","name":"to","nameLocation":"3493:2:38","nodeType":"VariableDeclaration","scope":11242,"src":"3485:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11201,"name":"address","nodeType":"ElementaryTypeName","src":"3485:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11204,"mutability":"mutable","name":"tokenId","nameLocation":"3505:7:38","nodeType":"VariableDeclaration","scope":11242,"src":"3497:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11203,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3484:29:38"},"returnParameters":{"id":11207,"nodeType":"ParameterList","parameters":[],"src":"3538:0:38"},"scope":11930,"src":"3468:406:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12035],"body":{"id":11259,"nodeType":"Block","src":"4020:82:38","statements":[{"expression":{"arguments":[{"id":11252,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11245,"src":"4045:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11251,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11808,"src":"4030:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":11253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11254,"nodeType":"ExpressionStatement","src":"4030:23:38"},{"expression":{"baseExpression":{"id":11255,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"4071:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11257,"indexExpression":{"id":11256,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11245,"src":"4087:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11250,"id":11258,"nodeType":"Return","src":"4064:31:38"}]},"documentation":{"id":11243,"nodeType":"StructuredDocumentation","src":"3880:50:38","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":11260,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:38","nodeType":"FunctionDefinition","overrides":{"id":11247,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:38"},"parameters":{"id":11246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11245,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:38","nodeType":"VariableDeclaration","scope":11260,"src":"3956:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11244,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:38"},"returnParameters":{"id":11250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11260,"src":"4011:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11248,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:38"},"scope":11930,"src":"3935:167:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12027],"body":{"id":11276,"nodeType":"Block","src":"4253:69:38","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11270,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"4282:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4282:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11272,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11263,"src":"4296:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11273,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"4306:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11269,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11794,"src":"4263:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":11274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:52:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11275,"nodeType":"ExpressionStatement","src":"4263:52:38"}]},"documentation":{"id":11261,"nodeType":"StructuredDocumentation","src":"4108:56:38","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":11277,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:38","nodeType":"FunctionDefinition","overrides":{"id":11267,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:38"},"parameters":{"id":11266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11263,"mutability":"mutable","name":"operator","nameLocation":"4204:8:38","nodeType":"VariableDeclaration","scope":11277,"src":"4196:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11262,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11265,"mutability":"mutable","name":"approved","nameLocation":"4219:8:38","nodeType":"VariableDeclaration","scope":11277,"src":"4214:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11264,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:38"},"returnParameters":{"id":11268,"nodeType":"ParameterList","parameters":[],"src":"4253:0:38"},"scope":11930,"src":"4169:153:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12045],"body":{"id":11294,"nodeType":"Block","src":"4491:59:38","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":11288,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11031,"src":"4508:18:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":11290,"indexExpression":{"id":11289,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"4527:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11292,"indexExpression":{"id":11291,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11282,"src":"4534:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11287,"id":11293,"nodeType":"Return","src":"4501:42:38"}]},"documentation":{"id":11278,"nodeType":"StructuredDocumentation","src":"4328:55:38","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":11295,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:38","nodeType":"FunctionDefinition","overrides":{"id":11284,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:38"},"parameters":{"id":11283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11280,"mutability":"mutable","name":"owner","nameLocation":"4422:5:38","nodeType":"VariableDeclaration","scope":11295,"src":"4414:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11279,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11282,"mutability":"mutable","name":"operator","nameLocation":"4437:8:38","nodeType":"VariableDeclaration","scope":11295,"src":"4429:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11281,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:38"},"returnParameters":{"id":11287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11295,"src":"4485:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11285,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:38"},"scope":11930,"src":"4388:162:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12011],"body":{"id":11321,"nodeType":"Block","src":"4731:207:38","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11308,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"4820:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4820:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11310,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11302,"src":"4834:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11307,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"4801:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4801:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":11312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4844:47:38","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":11306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4793:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4793:99:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11314,"nodeType":"ExpressionStatement","src":"4793:99:38"},{"expression":{"arguments":[{"id":11316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11298,"src":"4913:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11317,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11300,"src":"4919:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11318,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11302,"src":"4923:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11315,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11738,"src":"4903:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4903:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11320,"nodeType":"ExpressionStatement","src":"4903:28:38"}]},"documentation":{"id":11296,"nodeType":"StructuredDocumentation","src":"4556:51:38","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":11322,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:38","nodeType":"FunctionDefinition","overrides":{"id":11304,"nodeType":"OverrideSpecifier","overrides":[],"src":"4722:8:38"},"parameters":{"id":11303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11298,"mutability":"mutable","name":"from","nameLocation":"4651:4:38","nodeType":"VariableDeclaration","scope":11322,"src":"4643:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11297,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11300,"mutability":"mutable","name":"to","nameLocation":"4673:2:38","nodeType":"VariableDeclaration","scope":11322,"src":"4665:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11299,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11302,"mutability":"mutable","name":"tokenId","nameLocation":"4693:7:38","nodeType":"VariableDeclaration","scope":11322,"src":"4685:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11301,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:73:38"},"returnParameters":{"id":11305,"nodeType":"ParameterList","parameters":[],"src":"4731:0:38"},"scope":11930,"src":"4612:326:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12001],"body":{"id":11340,"nodeType":"Block","src":"5127:56:38","statements":[{"expression":{"arguments":[{"id":11334,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11325,"src":"5154:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11335,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11327,"src":"5160:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11336,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11329,"src":"5164:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":11337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5173:2:38","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":11333,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[11341,11371],"referencedDeclaration":11371,"src":"5137:16:38","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":11338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11339,"nodeType":"ExpressionStatement","src":"5137:39:38"}]},"documentation":{"id":11323,"nodeType":"StructuredDocumentation","src":"4944:55:38","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":11341,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5013:16:38","nodeType":"FunctionDefinition","overrides":{"id":11331,"nodeType":"OverrideSpecifier","overrides":[],"src":"5118:8:38"},"parameters":{"id":11330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11325,"mutability":"mutable","name":"from","nameLocation":"5047:4:38","nodeType":"VariableDeclaration","scope":11341,"src":"5039:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11324,"name":"address","nodeType":"ElementaryTypeName","src":"5039:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11327,"mutability":"mutable","name":"to","nameLocation":"5069:2:38","nodeType":"VariableDeclaration","scope":11341,"src":"5061:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11326,"name":"address","nodeType":"ElementaryTypeName","src":"5061:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11329,"mutability":"mutable","name":"tokenId","nameLocation":"5089:7:38","nodeType":"VariableDeclaration","scope":11341,"src":"5081:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11328,"name":"uint256","nodeType":"ElementaryTypeName","src":"5081:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5029:73:38"},"returnParameters":{"id":11332,"nodeType":"ParameterList","parameters":[],"src":"5127:0:38"},"scope":11930,"src":"5004:179:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[11991],"body":{"id":11370,"nodeType":"Block","src":"5399:164:38","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11356,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"5436:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5436:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11358,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"5450:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11355,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"5417:18:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":11359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5417:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5460:47:38","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":11354,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5409:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5409:99:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11362,"nodeType":"ExpressionStatement","src":"5409:99:38"},{"expression":{"arguments":[{"id":11364,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11344,"src":"5532:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11365,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11346,"src":"5538:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11366,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"5542:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11367,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11350,"src":"5551:4:38","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":11363,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11400,"src":"5518:13:38","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":11368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5518:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11369,"nodeType":"ExpressionStatement","src":"5518:38:38"}]},"documentation":{"id":11342,"nodeType":"StructuredDocumentation","src":"5189:55:38","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":11371,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5258:16:38","nodeType":"FunctionDefinition","overrides":{"id":11352,"nodeType":"OverrideSpecifier","overrides":[],"src":"5390:8:38"},"parameters":{"id":11351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11344,"mutability":"mutable","name":"from","nameLocation":"5292:4:38","nodeType":"VariableDeclaration","scope":11371,"src":"5284:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11343,"name":"address","nodeType":"ElementaryTypeName","src":"5284:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11346,"mutability":"mutable","name":"to","nameLocation":"5314:2:38","nodeType":"VariableDeclaration","scope":11371,"src":"5306:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11345,"name":"address","nodeType":"ElementaryTypeName","src":"5306:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11348,"mutability":"mutable","name":"tokenId","nameLocation":"5334:7:38","nodeType":"VariableDeclaration","scope":11371,"src":"5326:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11347,"name":"uint256","nodeType":"ElementaryTypeName","src":"5326:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11350,"mutability":"mutable","name":"data","nameLocation":"5364:4:38","nodeType":"VariableDeclaration","scope":11371,"src":"5351:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11349,"name":"bytes","nodeType":"ElementaryTypeName","src":"5351:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5274:100:38"},"returnParameters":{"id":11353,"nodeType":"ParameterList","parameters":[],"src":"5399:0:38"},"scope":11930,"src":"5249:314:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":11399,"nodeType":"Block","src":"6564:165:38","statements":[{"expression":{"arguments":[{"id":11384,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11374,"src":"6584:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11385,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11376,"src":"6590:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11386,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11378,"src":"6594:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11383,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11738,"src":"6574:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6574:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11388,"nodeType":"ExpressionStatement","src":"6574:28:38"},{"expression":{"arguments":[{"arguments":[{"id":11391,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11374,"src":"6643:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11392,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11376,"src":"6649:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11393,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11378,"src":"6653:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11394,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11380,"src":"6662:4:38","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":11390,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11870,"src":"6620:22:38","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":11395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6620:47:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":11396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6669:52:38","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":11389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6612:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6612:110:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11398,"nodeType":"ExpressionStatement","src":"6612:110:38"}]},"documentation":{"id":11372,"nodeType":"StructuredDocumentation","src":"5569:850:38","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":11400,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6433:13:38","nodeType":"FunctionDefinition","parameters":{"id":11381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11374,"mutability":"mutable","name":"from","nameLocation":"6464:4:38","nodeType":"VariableDeclaration","scope":11400,"src":"6456:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11373,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11376,"mutability":"mutable","name":"to","nameLocation":"6486:2:38","nodeType":"VariableDeclaration","scope":11400,"src":"6478:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11375,"name":"address","nodeType":"ElementaryTypeName","src":"6478:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11378,"mutability":"mutable","name":"tokenId","nameLocation":"6506:7:38","nodeType":"VariableDeclaration","scope":11400,"src":"6498:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11377,"name":"uint256","nodeType":"ElementaryTypeName","src":"6498:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11380,"mutability":"mutable","name":"data","nameLocation":"6536:4:38","nodeType":"VariableDeclaration","scope":11400,"src":"6523:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11379,"name":"bytes","nodeType":"ElementaryTypeName","src":"6523:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6446:100:38"},"returnParameters":{"id":11382,"nodeType":"ParameterList","parameters":[],"src":"6564:0:38"},"scope":11930,"src":"6424:305:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11412,"nodeType":"Block","src":"6913:40:38","statements":[{"expression":{"baseExpression":{"id":11408,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"6930:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11410,"indexExpression":{"id":11409,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11403,"src":"6938:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6930:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11407,"id":11411,"nodeType":"Return","src":"6923:23:38"}]},"documentation":{"id":11401,"nodeType":"StructuredDocumentation","src":"6735:98:38","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist"},"id":11413,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"6847:8:38","nodeType":"FunctionDefinition","parameters":{"id":11404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11403,"mutability":"mutable","name":"tokenId","nameLocation":"6864:7:38","nodeType":"VariableDeclaration","scope":11413,"src":"6856:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11402,"name":"uint256","nodeType":"ElementaryTypeName","src":"6856:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6855:17:38"},"returnParameters":{"id":11407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11413,"src":"6904:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11405,"name":"address","nodeType":"ElementaryTypeName","src":"6904:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6903:9:38"},"scope":11930,"src":"6838:115:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":11430,"nodeType":"Block","src":"7327:55:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11422,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11416,"src":"7353:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11421,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11413,"src":"7344:8:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:17:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7373:1:38","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":11425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7365:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11424,"name":"address","nodeType":"ElementaryTypeName","src":"7365:7:38","typeDescriptions":{}}},"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7365:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7344:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11420,"id":11429,"nodeType":"Return","src":"7337:38:38"}]},"documentation":{"id":11414,"nodeType":"StructuredDocumentation","src":"6959:292:38","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":11431,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7265:7:38","nodeType":"FunctionDefinition","parameters":{"id":11417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11416,"mutability":"mutable","name":"tokenId","nameLocation":"7281:7:38","nodeType":"VariableDeclaration","scope":11431,"src":"7273:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11415,"name":"uint256","nodeType":"ElementaryTypeName","src":"7273:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7272:17:38"},"returnParameters":{"id":11420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11419,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11431,"src":"7321:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11418,"name":"bool","nodeType":"ElementaryTypeName","src":"7321:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7320:6:38"},"scope":11930,"src":"7256:126:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":11464,"nodeType":"Block","src":"7639:162:38","statements":[{"assignments":[11442],"declarations":[{"constant":false,"id":11442,"mutability":"mutable","name":"owner","nameLocation":"7657:5:38","nodeType":"VariableDeclaration","scope":11464,"src":"7649:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11441,"name":"address","nodeType":"ElementaryTypeName","src":"7649:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11447,"initialValue":{"arguments":[{"id":11445,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"7680:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11443,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"7665:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7672:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"7665:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7665:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7649:39:38"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11448,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"7706:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11449,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11442,"src":"7717:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7706:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":11452,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11442,"src":"7743:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11453,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"7750:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11451,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11295,"src":"7726:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":11454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7726:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7706:52:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11457,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"7774:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11456,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"7762:11:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7762:20:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11459,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11434,"src":"7786:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7762:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7706:87:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":11462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7705:89:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11440,"id":11463,"nodeType":"Return","src":"7698:96:38"}]},"documentation":{"id":11432,"nodeType":"StructuredDocumentation","src":"7388:147:38","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":11465,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7549:18:38","nodeType":"FunctionDefinition","parameters":{"id":11437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11434,"mutability":"mutable","name":"spender","nameLocation":"7576:7:38","nodeType":"VariableDeclaration","scope":11465,"src":"7568:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11433,"name":"address","nodeType":"ElementaryTypeName","src":"7568:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11436,"mutability":"mutable","name":"tokenId","nameLocation":"7593:7:38","nodeType":"VariableDeclaration","scope":11465,"src":"7585:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11435,"name":"uint256","nodeType":"ElementaryTypeName","src":"7585:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7567:34:38"},"returnParameters":{"id":11440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11465,"src":"7633:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11438,"name":"bool","nodeType":"ElementaryTypeName","src":"7633:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7632:6:38"},"scope":11930,"src":"7540:261:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":11479,"nodeType":"Block","src":"8196:43:38","statements":[{"expression":{"arguments":[{"id":11474,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11468,"src":"8216:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11475,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11470,"src":"8220:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":11476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8229:2:38","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":11473,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[11480,11509],"referencedDeclaration":11509,"src":"8206:9:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":11477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8206:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11478,"nodeType":"ExpressionStatement","src":"8206:26:38"}]},"documentation":{"id":11466,"nodeType":"StructuredDocumentation","src":"7807:319:38","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":11480,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8140:9:38","nodeType":"FunctionDefinition","parameters":{"id":11471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11468,"mutability":"mutable","name":"to","nameLocation":"8158:2:38","nodeType":"VariableDeclaration","scope":11480,"src":"8150:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11467,"name":"address","nodeType":"ElementaryTypeName","src":"8150:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11470,"mutability":"mutable","name":"tokenId","nameLocation":"8170:7:38","nodeType":"VariableDeclaration","scope":11480,"src":"8162:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11469,"name":"uint256","nodeType":"ElementaryTypeName","src":"8162:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8149:29:38"},"returnParameters":{"id":11472,"nodeType":"ParameterList","parameters":[],"src":"8196:0:38"},"scope":11930,"src":"8131:108:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11508,"nodeType":"Block","src":"8574:195:38","statements":[{"expression":{"arguments":[{"id":11491,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11483,"src":"8590:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11492,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"8594:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11490,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11586,"src":"8584:5:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":11493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8584:18:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11494,"nodeType":"ExpressionStatement","src":"8584:18:38"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":11499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8664:1:38","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":11498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8656:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11497,"name":"address","nodeType":"ElementaryTypeName","src":"8656:7:38","typeDescriptions":{}}},"id":11500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8656:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11501,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11483,"src":"8668:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11502,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"8672:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11503,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11487,"src":"8681:4:38","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":11496,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11870,"src":"8633:22:38","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":11504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":11505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8700:52:38","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":11495,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8612:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8612:150:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11507,"nodeType":"ExpressionStatement","src":"8612:150:38"}]},"documentation":{"id":11481,"nodeType":"StructuredDocumentation","src":"8245:210:38","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":11509,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8469:9:38","nodeType":"FunctionDefinition","parameters":{"id":11488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11483,"mutability":"mutable","name":"to","nameLocation":"8496:2:38","nodeType":"VariableDeclaration","scope":11509,"src":"8488:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11482,"name":"address","nodeType":"ElementaryTypeName","src":"8488:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11485,"mutability":"mutable","name":"tokenId","nameLocation":"8516:7:38","nodeType":"VariableDeclaration","scope":11509,"src":"8508:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11484,"name":"uint256","nodeType":"ElementaryTypeName","src":"8508:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11487,"mutability":"mutable","name":"data","nameLocation":"8546:4:38","nodeType":"VariableDeclaration","scope":11509,"src":"8533:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11486,"name":"bytes","nodeType":"ElementaryTypeName","src":"8533:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8478:78:38"},"returnParameters":{"id":11489,"nodeType":"ParameterList","parameters":[],"src":"8574:0:38"},"scope":11930,"src":"8460:309:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11585,"nodeType":"Block","src":"9152:859:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11518,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9170:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9184:1:38","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":11520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11519,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:38","typeDescriptions":{}}},"id":11522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9176:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9170:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":11524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9188:34:38","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":11517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9162:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:61:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11526,"nodeType":"ExpressionStatement","src":"9162:61:38"},{"expression":{"arguments":[{"id":11531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9241:17:38","subExpression":{"arguments":[{"id":11529,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9250:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11528,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11431,"src":"9242:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":11530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9242:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":11532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9260:30:38","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":11527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9233:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9233:58:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11534,"nodeType":"ExpressionStatement","src":"9233:58:38"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":11538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9331:1:38","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":11537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9323:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11536,"name":"address","nodeType":"ElementaryTypeName","src":"9323:7:38","typeDescriptions":{}}},"id":11539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9323:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11540,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9335:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11541,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9339:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9348:1:38","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":11535,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11916,"src":"9302:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9302:48:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11544,"nodeType":"ExpressionStatement","src":"9302:48:38"},{"expression":{"arguments":[{"id":11549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9445:17:38","subExpression":{"arguments":[{"id":11547,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9454:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11546,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11431,"src":"9446:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":11548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9446:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":11550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9464:30:38","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":11545,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9437:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9437:58:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11552,"nodeType":"ExpressionStatement","src":"9437:58:38"},{"id":11559,"nodeType":"UncheckedBlock","src":"9506:360:38","statements":[{"expression":{"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11553,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"9837:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11555,"indexExpression":{"id":11554,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9847:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9837:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":11556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9854:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9837:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11558,"nodeType":"ExpressionStatement","src":"9837:18:38"}]},{"expression":{"id":11564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11560,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"9876:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11562,"indexExpression":{"id":11561,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9884:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9876:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11563,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9895:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9876:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11565,"nodeType":"ExpressionStatement","src":"9876:21:38"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":11569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9930:1:38","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":11568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9922:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11567,"name":"address","nodeType":"ElementaryTypeName","src":"9922:7:38","typeDescriptions":{}}},"id":11570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9922:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11571,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9934:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11572,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9938:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11566,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"9913:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11574,"nodeType":"EmitStatement","src":"9908:38:38"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":11578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9985:1:38","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":11577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9977:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11576,"name":"address","nodeType":"ElementaryTypeName","src":"9977:7:38","typeDescriptions":{}}},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9977:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11580,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11512,"src":"9989:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"9993:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10002:1:38","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":11575,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11929,"src":"9957:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9957:47:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11584,"nodeType":"ExpressionStatement","src":"9957:47:38"}]},"documentation":{"id":11510,"nodeType":"StructuredDocumentation","src":"8775:311:38","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":11586,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"9100:5:38","nodeType":"FunctionDefinition","parameters":{"id":11515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11512,"mutability":"mutable","name":"to","nameLocation":"9114:2:38","nodeType":"VariableDeclaration","scope":11586,"src":"9106:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11511,"name":"address","nodeType":"ElementaryTypeName","src":"9106:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11514,"mutability":"mutable","name":"tokenId","nameLocation":"9126:7:38","nodeType":"VariableDeclaration","scope":11586,"src":"9118:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11513,"name":"uint256","nodeType":"ElementaryTypeName","src":"9118:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9105:29:38"},"returnParameters":{"id":11516,"nodeType":"ParameterList","parameters":[],"src":"9152:0:38"},"scope":11930,"src":"9091:920:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11652,"nodeType":"Block","src":"10386:713:38","statements":[{"assignments":[11593],"declarations":[{"constant":false,"id":11593,"mutability":"mutable","name":"owner","nameLocation":"10404:5:38","nodeType":"VariableDeclaration","scope":11652,"src":"10396:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11592,"name":"address","nodeType":"ElementaryTypeName","src":"10396:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11598,"initialValue":{"arguments":[{"id":11596,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"10427:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11594,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"10412:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"10412:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10412:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10396:39:38"},{"expression":{"arguments":[{"id":11600,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11593,"src":"10467:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":11603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10482:1:38","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":11602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10474:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11601,"name":"address","nodeType":"ElementaryTypeName","src":"10474:7:38","typeDescriptions":{}}},"id":11604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10474:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11605,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"10486:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10495:1:38","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":11599,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11916,"src":"10446:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10446:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11608,"nodeType":"ExpressionStatement","src":"10446:51:38"},{"expression":{"id":11614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11609,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11593,"src":"10599:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11612,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"10622:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11610,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"10607:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10614:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"10607:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10607:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10599:31:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11615,"nodeType":"ExpressionStatement","src":"10599:31:38"},{"expression":{"id":11619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10668:31:38","subExpression":{"baseExpression":{"id":11616,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"10675:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11618,"indexExpression":{"id":11617,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"10691:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10675:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11620,"nodeType":"ExpressionStatement","src":"10668:31:38"},{"id":11627,"nodeType":"UncheckedBlock","src":"10710:237:38","statements":[{"expression":{"id":11625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11621,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"10915:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11623,"indexExpression":{"id":11622,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11593,"src":"10925:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10915:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":11624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10935:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10915:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11626,"nodeType":"ExpressionStatement","src":"10915:21:38"}]},{"expression":{"id":11631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10956:23:38","subExpression":{"baseExpression":{"id":11628,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"10963:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11630,"indexExpression":{"id":11629,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"10971:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10963:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11632,"nodeType":"ExpressionStatement","src":"10956:23:38"},{"eventCall":{"arguments":[{"id":11634,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11593,"src":"11004:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":11637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11019:1:38","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":11636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11011:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11635,"name":"address","nodeType":"ElementaryTypeName","src":"11011:7:38","typeDescriptions":{}}},"id":11638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11011:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11639,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"11023:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11633,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"10995:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10995:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11641,"nodeType":"EmitStatement","src":"10990:41:38"},{"expression":{"arguments":[{"id":11643,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11593,"src":"11062:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":11646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11077:1:38","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":11645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11069:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11644,"name":"address","nodeType":"ElementaryTypeName","src":"11069:7:38","typeDescriptions":{}}},"id":11647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11069:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11648,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11589,"src":"11081:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11090:1:38","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":11642,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11929,"src":"11042:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11042:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11651,"nodeType":"ExpressionStatement","src":"11042:50:38"}]},"documentation":{"id":11587,"nodeType":"StructuredDocumentation","src":"10017:315:38","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":11653,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10346:5:38","nodeType":"FunctionDefinition","parameters":{"id":11590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11589,"mutability":"mutable","name":"tokenId","nameLocation":"10360:7:38","nodeType":"VariableDeclaration","scope":11653,"src":"10352:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11588,"name":"uint256","nodeType":"ElementaryTypeName","src":"10352:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10351:17:38"},"returnParameters":{"id":11591,"nodeType":"ParameterList","parameters":[],"src":"10386:0:38"},"scope":11930,"src":"10337:762:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11737,"nodeType":"Block","src":"11532:1124:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11666,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"11565:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11664,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"11550:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11557:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"11550:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11550:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11668,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"11577:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11550:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":11670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11583:39:38","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":11663,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11542:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11542:81:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11672,"nodeType":"ExpressionStatement","src":"11542:81:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11674,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"11641:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11655:1:38","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":11676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11647:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11675,"name":"address","nodeType":"ElementaryTypeName","src":"11647:7:38","typeDescriptions":{}}},"id":11678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11647:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11641:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":11680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11659:38:38","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":11673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11633:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11633:65:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11682,"nodeType":"ExpressionStatement","src":"11633:65:38"},{"expression":{"arguments":[{"id":11684,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"11730:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11685,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"11736:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11686,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"11740:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11749:1:38","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":11683,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11916,"src":"11709:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11709:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11689,"nodeType":"ExpressionStatement","src":"11709:42:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11693,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"11866:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11691,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"11851:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11858:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"11851:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11851:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11695,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"11878:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11851:31:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":11697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11884:39:38","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":11690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11843:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11843:81:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11699,"nodeType":"ExpressionStatement","src":"11843:81:38"},{"expression":{"id":11703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11986:31:38","subExpression":{"baseExpression":{"id":11700,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"11993:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11702,"indexExpression":{"id":11701,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"12009:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11993:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11704,"nodeType":"ExpressionStatement","src":"11986:31:38"},{"id":11717,"nodeType":"UncheckedBlock","src":"12028:496:38","statements":[{"expression":{"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11705,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"12461:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11707,"indexExpression":{"id":11706,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"12471:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":11708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12480:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12461:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11710,"nodeType":"ExpressionStatement","src":"12461:20:38"},{"expression":{"id":11715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11711,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"12495:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11713,"indexExpression":{"id":11712,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"12505:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12495:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":11714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12512:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12495:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11716,"nodeType":"ExpressionStatement","src":"12495:18:38"}]},{"expression":{"id":11722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11718,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"12533:7:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11720,"indexExpression":{"id":11719,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"12541:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12533:16:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11721,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"12552:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12533:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11723,"nodeType":"ExpressionStatement","src":"12533:21:38"},{"eventCall":{"arguments":[{"id":11725,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"12579:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11726,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"12585:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11727,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"12589:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11724,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"12570:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12570:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11729,"nodeType":"EmitStatement","src":"12565:32:38"},{"expression":{"arguments":[{"id":11731,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11656,"src":"12628:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11732,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11658,"src":"12634:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11733,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11660,"src":"12638:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12647:1:38","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":11730,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11929,"src":"12608:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":11735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12608:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11736,"nodeType":"ExpressionStatement","src":"12608:41:38"}]},"documentation":{"id":11654,"nodeType":"StructuredDocumentation","src":"11105:313:38","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":11738,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"11432:9:38","nodeType":"FunctionDefinition","parameters":{"id":11661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11656,"mutability":"mutable","name":"from","nameLocation":"11459:4:38","nodeType":"VariableDeclaration","scope":11738,"src":"11451:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11655,"name":"address","nodeType":"ElementaryTypeName","src":"11451:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11658,"mutability":"mutable","name":"to","nameLocation":"11481:2:38","nodeType":"VariableDeclaration","scope":11738,"src":"11473:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11657,"name":"address","nodeType":"ElementaryTypeName","src":"11473:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11660,"mutability":"mutable","name":"tokenId","nameLocation":"11501:7:38","nodeType":"VariableDeclaration","scope":11738,"src":"11493:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11659,"name":"uint256","nodeType":"ElementaryTypeName","src":"11493:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11441:73:38"},"returnParameters":{"id":11662,"nodeType":"ParameterList","parameters":[],"src":"11532:0:38"},"scope":11930,"src":"11423:1233:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11761,"nodeType":"Block","src":"12832:107:38","statements":[{"expression":{"id":11750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11746,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"12842:15:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":11748,"indexExpression":{"id":11747,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11743,"src":"12858:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12842:24:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11749,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11741,"src":"12869:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12842:29:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11751,"nodeType":"ExpressionStatement","src":"12842:29:38"},{"eventCall":{"arguments":[{"arguments":[{"id":11755,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11743,"src":"12910:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11753,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"12895:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":11754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12902:7:38","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":11131,"src":"12895:14:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":11756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12895:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11757,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11741,"src":"12920:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11758,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11743,"src":"12924:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11752,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11954,"src":"12886:8:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":11759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12886:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11760,"nodeType":"EmitStatement","src":"12881:51:38"}]},"documentation":{"id":11739,"nodeType":"StructuredDocumentation","src":"12662:101:38","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":11762,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"12777:8:38","nodeType":"FunctionDefinition","parameters":{"id":11744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11741,"mutability":"mutable","name":"to","nameLocation":"12794:2:38","nodeType":"VariableDeclaration","scope":11762,"src":"12786:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11740,"name":"address","nodeType":"ElementaryTypeName","src":"12786:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11743,"mutability":"mutable","name":"tokenId","nameLocation":"12806:7:38","nodeType":"VariableDeclaration","scope":11762,"src":"12798:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11742,"name":"uint256","nodeType":"ElementaryTypeName","src":"12798:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12785:29:38"},"returnParameters":{"id":11745,"nodeType":"ParameterList","parameters":[],"src":"12832:0:38"},"scope":11930,"src":"12768:171:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11793,"nodeType":"Block","src":"13198:184:38","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11773,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"13216:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":11774,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11767,"src":"13225:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13216:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":11776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13235:27:38","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":11772,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13208:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:55:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11778,"nodeType":"ExpressionStatement","src":"13208:55:38"},{"expression":{"id":11785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":11779,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11031,"src":"13273:18:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":11782,"indexExpression":{"id":11780,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"13292:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13273:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":11783,"indexExpression":{"id":11781,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11767,"src":"13299:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13273:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11784,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"13311:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13273:46:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11786,"nodeType":"ExpressionStatement","src":"13273:46:38"},{"eventCall":{"arguments":[{"id":11788,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11765,"src":"13349:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11789,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11767,"src":"13356:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11790,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"13366:8:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11787,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11963,"src":"13334:14:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":11791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13334:41:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11792,"nodeType":"EmitStatement","src":"13329:46:38"}]},"documentation":{"id":11763,"nodeType":"StructuredDocumentation","src":"12945:125:38","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":11794,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13084:18:38","nodeType":"FunctionDefinition","parameters":{"id":11770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11765,"mutability":"mutable","name":"owner","nameLocation":"13120:5:38","nodeType":"VariableDeclaration","scope":11794,"src":"13112:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11764,"name":"address","nodeType":"ElementaryTypeName","src":"13112:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11767,"mutability":"mutable","name":"operator","nameLocation":"13143:8:38","nodeType":"VariableDeclaration","scope":11794,"src":"13135:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11766,"name":"address","nodeType":"ElementaryTypeName","src":"13135:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11769,"mutability":"mutable","name":"approved","nameLocation":"13166:8:38","nodeType":"VariableDeclaration","scope":11794,"src":"13161:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11768,"name":"bool","nodeType":"ElementaryTypeName","src":"13161:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13102:78:38"},"returnParameters":{"id":11771,"nodeType":"ParameterList","parameters":[],"src":"13198:0:38"},"scope":11930,"src":"13075:307:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11807,"nodeType":"Block","src":"13529:70:38","statements":[{"expression":{"arguments":[{"arguments":[{"id":11802,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"13555:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11801,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11431,"src":"13547:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13547:16:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":11804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13565:26:38","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":11800,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13539:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13539:53:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11806,"nodeType":"ExpressionStatement","src":"13539:53:38"}]},"documentation":{"id":11795,"nodeType":"StructuredDocumentation","src":"13388:73:38","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":11808,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"13475:14:38","nodeType":"FunctionDefinition","parameters":{"id":11798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11797,"mutability":"mutable","name":"tokenId","nameLocation":"13498:7:38","nodeType":"VariableDeclaration","scope":11808,"src":"13490:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11796,"name":"uint256","nodeType":"ElementaryTypeName","src":"13490:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13489:17:38"},"returnParameters":{"id":11799,"nodeType":"ParameterList","parameters":[],"src":"13529:0:38"},"scope":11930,"src":"13466:133:38","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":11869,"nodeType":"Block","src":"14306:676:38","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11822,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11813,"src":"14320:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14323:10:38","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":12619,"src":"14320:13:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":11824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14320:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11867,"nodeType":"Block","src":"14940:36:38","statements":[{"expression":{"hexValue":"74727565","id":11865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14961:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11821,"id":11866,"nodeType":"Return","src":"14954:11:38"}]},"id":11868,"nodeType":"IfStatement","src":"14316:660:38","trueBody":{"id":11864,"nodeType":"Block","src":"14337:597:38","statements":[{"clauses":[{"block":{"id":11844,"nodeType":"Block","src":"14451:91:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":11842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11838,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"14476:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":11839,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"14486:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$12064_$","typeString":"type(contract IERC721Receiver)"}},"id":11840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14502:16:38","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"14486:32:38","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":11841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14519:8:38","memberName":"selector","nodeType":"MemberAccess","src":"14486:41:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14476:51:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11821,"id":11843,"nodeType":"Return","src":"14469:58:38"}]},"errorName":"","id":11845,"nodeType":"TryCatchClause","parameters":{"id":11837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11836,"mutability":"mutable","name":"retval","nameLocation":"14443:6:38","nodeType":"VariableDeclaration","scope":11845,"src":"14436:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":11835,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14436:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14435:15:38"},"src":"14427:115:38"},{"block":{"id":11861,"nodeType":"Block","src":"14571:353:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11849,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11847,"src":"14593:6:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14600:6:38","memberName":"length","nodeType":"MemberAccess","src":"14593:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14610:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14593:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":11859,"nodeType":"Block","src":"14720:190:38","statements":[{"AST":{"nodeType":"YulBlock","src":"14806:86:38","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14843:2:38","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"14847:6:38"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14839:3:38"},"nodeType":"YulFunctionCall","src":"14839:15:38"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"14862:6:38"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14856:5:38"},"nodeType":"YulFunctionCall","src":"14856:13:38"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14832:6:38"},"nodeType":"YulFunctionCall","src":"14832:38:38"},"nodeType":"YulExpressionStatement","src":"14832:38:38"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":11847,"isOffset":false,"isSlot":false,"src":"14847:6:38","valueSize":1},{"declaration":11847,"isOffset":false,"isSlot":false,"src":"14862:6:38","valueSize":1}],"id":11858,"nodeType":"InlineAssembly","src":"14797:95:38"}]},"id":11860,"nodeType":"IfStatement","src":"14589:321:38","trueBody":{"id":11857,"nodeType":"Block","src":"14613:101:38","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":11854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14642:52:38","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":11853,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14635:6:38","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14635:60:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11856,"nodeType":"ExpressionStatement","src":"14635:60:38"}]}}]},"errorName":"","id":11862,"nodeType":"TryCatchClause","parameters":{"id":11848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11847,"mutability":"mutable","name":"reason","nameLocation":"14563:6:38","nodeType":"VariableDeclaration","scope":11862,"src":"14550:19:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11846,"name":"bytes","nodeType":"ElementaryTypeName","src":"14550:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14549:21:38"},"src":"14543:381:38"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":11829,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14314,"src":"14392:10:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14392:12:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11831,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11811,"src":"14406:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11832,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11815,"src":"14412:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11833,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11817,"src":"14421:4:38","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":11826,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11813,"src":"14371:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11825,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12064,"src":"14355:15:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$12064_$","typeString":"type(contract IERC721Receiver)"}},"id":11827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14355:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$12064","typeString":"contract IERC721Receiver"}},"id":11828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14375:16:38","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":12063,"src":"14355:36:38","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":11834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14355:71:38","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":11863,"nodeType":"TryStatement","src":"14351:573:38"}]}}]},"documentation":{"id":11809,"nodeType":"StructuredDocumentation","src":"13605:541:38","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":11870,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"14160:22:38","nodeType":"FunctionDefinition","parameters":{"id":11818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11811,"mutability":"mutable","name":"from","nameLocation":"14200:4:38","nodeType":"VariableDeclaration","scope":11870,"src":"14192:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11810,"name":"address","nodeType":"ElementaryTypeName","src":"14192:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11813,"mutability":"mutable","name":"to","nameLocation":"14222:2:38","nodeType":"VariableDeclaration","scope":11870,"src":"14214:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11812,"name":"address","nodeType":"ElementaryTypeName","src":"14214:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11815,"mutability":"mutable","name":"tokenId","nameLocation":"14242:7:38","nodeType":"VariableDeclaration","scope":11870,"src":"14234:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11814,"name":"uint256","nodeType":"ElementaryTypeName","src":"14234:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11817,"mutability":"mutable","name":"data","nameLocation":"14272:4:38","nodeType":"VariableDeclaration","scope":11870,"src":"14259:17:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11816,"name":"bytes","nodeType":"ElementaryTypeName","src":"14259:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14182:100:38"},"returnParameters":{"id":11821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11870,"src":"14300:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11819,"name":"bool","nodeType":"ElementaryTypeName","src":"14300:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14299:6:38"},"scope":11930,"src":"14151:831:38","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":11915,"nodeType":"Block","src":"15856:238:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11882,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11879,"src":"15870:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":11883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15882:1:38","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15870:13:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11914,"nodeType":"IfStatement","src":"15866:222:38","trueBody":{"id":11913,"nodeType":"Block","src":"15885:203:38","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11885,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11873,"src":"15903:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15919:1:38","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":11887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15911:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11886,"name":"address","nodeType":"ElementaryTypeName","src":"15911:7:38","typeDescriptions":{}}},"id":11889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15911:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15903:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11898,"nodeType":"IfStatement","src":"15899:85:38","trueBody":{"id":11897,"nodeType":"Block","src":"15923:61:38","statements":[{"expression":{"id":11895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11891,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"15941:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11893,"indexExpression":{"id":11892,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11873,"src":"15951:4:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15941:15:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":11894,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11879,"src":"15960:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15941:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11896,"nodeType":"ExpressionStatement","src":"15941:28:38"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11899,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"16001:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16015:1:38","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":11901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16007:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11900,"name":"address","nodeType":"ElementaryTypeName","src":"16007:7:38","typeDescriptions":{}}},"id":11903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16007:10:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16001:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11912,"nodeType":"IfStatement","src":"15997:81:38","trueBody":{"id":11911,"nodeType":"Block","src":"16019:59:38","statements":[{"expression":{"id":11909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11905,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"16037:9:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":11907,"indexExpression":{"id":11906,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11875,"src":"16047:2:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16037:13:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":11908,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11879,"src":"16054:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16037:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11910,"nodeType":"ExpressionStatement","src":"16037:26:38"}]}}]}}]},"documentation":{"id":11871,"nodeType":"StructuredDocumentation","src":"14988:705:38","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":11916,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"15707:20:38","nodeType":"FunctionDefinition","parameters":{"id":11880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11873,"mutability":"mutable","name":"from","nameLocation":"15745:4:38","nodeType":"VariableDeclaration","scope":11916,"src":"15737:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11872,"name":"address","nodeType":"ElementaryTypeName","src":"15737:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11875,"mutability":"mutable","name":"to","nameLocation":"15767:2:38","nodeType":"VariableDeclaration","scope":11916,"src":"15759:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11874,"name":"address","nodeType":"ElementaryTypeName","src":"15759:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11916,"src":"15779:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11876,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11879,"mutability":"mutable","name":"batchSize","nameLocation":"15823:9:38","nodeType":"VariableDeclaration","scope":11916,"src":"15815:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11878,"name":"uint256","nodeType":"ElementaryTypeName","src":"15815:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15727:111:38"},"returnParameters":{"id":11881,"nodeType":"ParameterList","parameters":[],"src":"15856:0:38"},"scope":11930,"src":"15698:396:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":11928,"nodeType":"Block","src":"16951:2:38","statements":[]},"documentation":{"id":11917,"nodeType":"StructuredDocumentation","src":"16100:695:38","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":11929,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"16809:19:38","nodeType":"FunctionDefinition","parameters":{"id":11926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11919,"mutability":"mutable","name":"from","nameLocation":"16846:4:38","nodeType":"VariableDeclaration","scope":11929,"src":"16838:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11918,"name":"address","nodeType":"ElementaryTypeName","src":"16838:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11921,"mutability":"mutable","name":"to","nameLocation":"16868:2:38","nodeType":"VariableDeclaration","scope":11929,"src":"16860:10:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11920,"name":"address","nodeType":"ElementaryTypeName","src":"16860:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11923,"mutability":"mutable","name":"firstTokenId","nameLocation":"16888:12:38","nodeType":"VariableDeclaration","scope":11929,"src":"16880:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11922,"name":"uint256","nodeType":"ElementaryTypeName","src":"16880:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11925,"mutability":"mutable","name":"batchSize","nameLocation":"16918:9:38","nodeType":"VariableDeclaration","scope":11929,"src":"16910:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11924,"name":"uint256","nodeType":"ElementaryTypeName","src":"16910:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16828:105:38"},"returnParameters":{"id":11927,"nodeType":"ParameterList","parameters":[],"src":"16951:0:38"},"scope":11930,"src":"16800:153:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":11931,"src":"628:16327:38","usedErrors":[]}],"src":"107:16849:38"},"id":38},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[15338],"IERC721":[12046]},"id":12047,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11932,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:39"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":11933,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12047,"sourceUnit":15339,"src":"133:47:39","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11935,"name":"IERC165","nameLocations":["271:7:39"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"271:7:39"},"id":11936,"nodeType":"InheritanceSpecifier","src":"271:7:39"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":11934,"nodeType":"StructuredDocumentation","src":"182:67:39","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":12046,"linearizedBaseContracts":[12046,15338],"name":"IERC721","nameLocation":"260:7:39","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":11937,"nodeType":"StructuredDocumentation","src":"285:88:39","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":11945,"name":"Transfer","nameLocation":"384:8:39","nodeType":"EventDefinition","parameters":{"id":11944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11939,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:39","nodeType":"VariableDeclaration","scope":11945,"src":"393:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11938,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11941,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:39","nodeType":"VariableDeclaration","scope":11945,"src":"415:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11940,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11943,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:39","nodeType":"VariableDeclaration","scope":11945,"src":"435:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11942,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:39"},"src":"378:82:39"},{"anonymous":false,"documentation":{"id":11946,"nodeType":"StructuredDocumentation","src":"466:94:39","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":11954,"name":"Approval","nameLocation":"571:8:39","nodeType":"EventDefinition","parameters":{"id":11953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11948,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:39","nodeType":"VariableDeclaration","scope":11954,"src":"580:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11947,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11950,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:39","nodeType":"VariableDeclaration","scope":11954,"src":"603:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11949,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11952,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:39","nodeType":"VariableDeclaration","scope":11954,"src":"629:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11951,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:39"},"src":"565:89:39"},{"anonymous":false,"documentation":{"id":11955,"nodeType":"StructuredDocumentation","src":"660:117:39","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":11963,"name":"ApprovalForAll","nameLocation":"788:14:39","nodeType":"EventDefinition","parameters":{"id":11962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11957,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:39","nodeType":"VariableDeclaration","scope":11963,"src":"803:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11956,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11959,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:39","nodeType":"VariableDeclaration","scope":11963,"src":"826:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11958,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11961,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:39","nodeType":"VariableDeclaration","scope":11963,"src":"852:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11960,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:39"},"src":"782:85:39"},{"documentation":{"id":11964,"nodeType":"StructuredDocumentation","src":"873:76:39","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":11971,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:39","nodeType":"FunctionDefinition","parameters":{"id":11967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11966,"mutability":"mutable","name":"owner","nameLocation":"981:5:39","nodeType":"VariableDeclaration","scope":11971,"src":"973:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11965,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:39"},"returnParameters":{"id":11970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11969,"mutability":"mutable","name":"balance","nameLocation":"1019:7:39","nodeType":"VariableDeclaration","scope":11971,"src":"1011:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:39"},"scope":12046,"src":"954:74:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":11972,"nodeType":"StructuredDocumentation","src":"1034:131:39","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":11979,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:39","nodeType":"FunctionDefinition","parameters":{"id":11975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11974,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:39","nodeType":"VariableDeclaration","scope":11979,"src":"1187:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:39"},"returnParameters":{"id":11978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11977,"mutability":"mutable","name":"owner","nameLocation":"1235:5:39","nodeType":"VariableDeclaration","scope":11979,"src":"1227:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11976,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:39"},"scope":12046,"src":"1170:72:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":11980,"nodeType":"StructuredDocumentation","src":"1248:556:39","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":11991,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:39","nodeType":"FunctionDefinition","parameters":{"id":11989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11982,"mutability":"mutable","name":"from","nameLocation":"1852:4:39","nodeType":"VariableDeclaration","scope":11991,"src":"1844:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11981,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11984,"mutability":"mutable","name":"to","nameLocation":"1874:2:39","nodeType":"VariableDeclaration","scope":11991,"src":"1866:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11983,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11986,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:39","nodeType":"VariableDeclaration","scope":11991,"src":"1886:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11985,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11988,"mutability":"mutable","name":"data","nameLocation":"1926:4:39","nodeType":"VariableDeclaration","scope":11991,"src":"1911:19:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11987,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:39"},"returnParameters":{"id":11990,"nodeType":"ParameterList","parameters":[],"src":"1945:0:39"},"scope":12046,"src":"1809:137:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":11992,"nodeType":"StructuredDocumentation","src":"1952:687:39","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":12001,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:39","nodeType":"FunctionDefinition","parameters":{"id":11999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11994,"mutability":"mutable","name":"from","nameLocation":"2687:4:39","nodeType":"VariableDeclaration","scope":12001,"src":"2679:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11993,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11996,"mutability":"mutable","name":"to","nameLocation":"2709:2:39","nodeType":"VariableDeclaration","scope":12001,"src":"2701:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11995,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11998,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:39","nodeType":"VariableDeclaration","scope":12001,"src":"2721:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11997,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:39"},"returnParameters":{"id":12000,"nodeType":"ParameterList","parameters":[],"src":"2751:0:39"},"scope":12046,"src":"2644:108:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":12002,"nodeType":"StructuredDocumentation","src":"2758:732:39","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":12011,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3504:12:39","nodeType":"FunctionDefinition","parameters":{"id":12009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12004,"mutability":"mutable","name":"from","nameLocation":"3534:4:39","nodeType":"VariableDeclaration","scope":12011,"src":"3526:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12003,"name":"address","nodeType":"ElementaryTypeName","src":"3526:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12006,"mutability":"mutable","name":"to","nameLocation":"3556:2:39","nodeType":"VariableDeclaration","scope":12011,"src":"3548:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12005,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12008,"mutability":"mutable","name":"tokenId","nameLocation":"3576:7:39","nodeType":"VariableDeclaration","scope":12011,"src":"3568:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12007,"name":"uint256","nodeType":"ElementaryTypeName","src":"3568:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3516:73:39"},"returnParameters":{"id":12010,"nodeType":"ParameterList","parameters":[],"src":"3598:0:39"},"scope":12046,"src":"3495:104:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":12012,"nodeType":"StructuredDocumentation","src":"3605:452:39","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":12019,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4071:7:39","nodeType":"FunctionDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12014,"mutability":"mutable","name":"to","nameLocation":"4087:2:39","nodeType":"VariableDeclaration","scope":12019,"src":"4079:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12013,"name":"address","nodeType":"ElementaryTypeName","src":"4079:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12016,"mutability":"mutable","name":"tokenId","nameLocation":"4099:7:39","nodeType":"VariableDeclaration","scope":12019,"src":"4091:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12015,"name":"uint256","nodeType":"ElementaryTypeName","src":"4091:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4078:29:39"},"returnParameters":{"id":12018,"nodeType":"ParameterList","parameters":[],"src":"4116:0:39"},"scope":12046,"src":"4062:55:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":12020,"nodeType":"StructuredDocumentation","src":"4123:309:39","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":12027,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4446:17:39","nodeType":"FunctionDefinition","parameters":{"id":12025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12022,"mutability":"mutable","name":"operator","nameLocation":"4472:8:39","nodeType":"VariableDeclaration","scope":12027,"src":"4464:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12024,"mutability":"mutable","name":"_approved","nameLocation":"4487:9:39","nodeType":"VariableDeclaration","scope":12027,"src":"4482:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12023,"name":"bool","nodeType":"ElementaryTypeName","src":"4482:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4463:34:39"},"returnParameters":{"id":12026,"nodeType":"ParameterList","parameters":[],"src":"4506:0:39"},"scope":12046,"src":"4437:70:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":12028,"nodeType":"StructuredDocumentation","src":"4513:139:39","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":12035,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4666:11:39","nodeType":"FunctionDefinition","parameters":{"id":12031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12030,"mutability":"mutable","name":"tokenId","nameLocation":"4686:7:39","nodeType":"VariableDeclaration","scope":12035,"src":"4678:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12029,"name":"uint256","nodeType":"ElementaryTypeName","src":"4678:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4677:17:39"},"returnParameters":{"id":12034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12033,"mutability":"mutable","name":"operator","nameLocation":"4726:8:39","nodeType":"VariableDeclaration","scope":12035,"src":"4718:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12032,"name":"address","nodeType":"ElementaryTypeName","src":"4718:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4717:18:39"},"scope":12046,"src":"4657:79:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":12036,"nodeType":"StructuredDocumentation","src":"4742:138:39","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":12045,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4894:16:39","nodeType":"FunctionDefinition","parameters":{"id":12041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12038,"mutability":"mutable","name":"owner","nameLocation":"4919:5:39","nodeType":"VariableDeclaration","scope":12045,"src":"4911:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12037,"name":"address","nodeType":"ElementaryTypeName","src":"4911:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12040,"mutability":"mutable","name":"operator","nameLocation":"4934:8:39","nodeType":"VariableDeclaration","scope":12045,"src":"4926:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12039,"name":"address","nodeType":"ElementaryTypeName","src":"4926:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4910:33:39"},"returnParameters":{"id":12044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12045,"src":"4967:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12042,"name":"bool","nodeType":"ElementaryTypeName","src":"4967:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4966:6:39"},"scope":12046,"src":"4885:88:39","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":12047,"src":"250:4725:39","usedErrors":[]}],"src":"108:4868:39"},"id":39},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[12064]},"id":12065,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12048,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:40"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":12049,"nodeType":"StructuredDocumentation","src":"141:152:40","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":12064,"linearizedBaseContracts":[12064],"name":"IERC721Receiver","nameLocation":"304:15:40","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12050,"nodeType":"StructuredDocumentation","src":"326:493:40","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":12063,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:40","nodeType":"FunctionDefinition","parameters":{"id":12059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12052,"mutability":"mutable","name":"operator","nameLocation":"867:8:40","nodeType":"VariableDeclaration","scope":12063,"src":"859:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12051,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12054,"mutability":"mutable","name":"from","nameLocation":"893:4:40","nodeType":"VariableDeclaration","scope":12063,"src":"885:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12053,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12056,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:40","nodeType":"VariableDeclaration","scope":12063,"src":"907:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12055,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12058,"mutability":"mutable","name":"data","nameLocation":"947:4:40","nodeType":"VariableDeclaration","scope":12063,"src":"932:19:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12057,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:40"},"returnParameters":{"id":12062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12063,"src":"976:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12060,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:40"},"scope":12064,"src":"824:160:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":12065,"src":"294:692:40","usedErrors":[]}],"src":"116:871:40"},"id":40},"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"ERC165":[15326],"ERC721":[11930],"ERC721Enumerable":[12418],"IERC165":[15338],"IERC721":[12046],"IERC721Enumerable":[12574],"IERC721Metadata":[12601],"IERC721Receiver":[12064],"Math":[16203],"Strings":[14573]},"id":12419,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12066,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:41"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":12067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12419,"sourceUnit":11931,"src":"153:23:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","file":"./IERC721Enumerable.sol","id":12068,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12419,"sourceUnit":12575,"src":"177:33:41","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12070,"name":"ERC721","nameLocations":["450:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"450:6:41"},"id":12071,"nodeType":"InheritanceSpecifier","src":"450:6:41"},{"baseName":{"id":12072,"name":"IERC721Enumerable","nameLocations":["458:17:41"],"nodeType":"IdentifierPath","referencedDeclaration":12574,"src":"458:17:41"},"id":12073,"nodeType":"InheritanceSpecifier","src":"458:17:41"}],"canonicalName":"ERC721Enumerable","contractDependencies":[],"contractKind":"contract","documentation":{"id":12069,"nodeType":"StructuredDocumentation","src":"212:199:41","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":12418,"linearizedBaseContracts":[12418,12574,11930,12601,12046,15326,15338,14324],"name":"ERC721Enumerable","nameLocation":"430:16:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":12079,"mutability":"mutable","name":"_ownedTokens","nameLocation":"591:12:41","nodeType":"VariableDeclaration","scope":12418,"src":"535:68:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":12078,"keyType":{"id":12074,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"535:47:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":12077,"keyType":{"id":12075,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"554:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":12076,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":12083,"mutability":"mutable","name":"_ownedTokensIndex","nameLocation":"709:17:41","nodeType":"VariableDeclaration","scope":12418,"src":"673:53:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":12082,"keyType":{"id":12080,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"673:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":12081,"name":"uint256","nodeType":"ElementaryTypeName","src":"692:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":12086,"mutability":"mutable","name":"_allTokens","nameLocation":"805:10:41","nodeType":"VariableDeclaration","scope":12418,"src":"787:28:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":12084,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12085,"nodeType":"ArrayTypeName","src":"787:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":12090,"mutability":"mutable","name":"_allTokensIndex","nameLocation":"922:15:41","nodeType":"VariableDeclaration","scope":12418,"src":"886:51:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":12089,"keyType":{"id":12087,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"886:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":12088,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"baseFunctions":[11079,15337],"body":{"id":12113,"nodeType":"Block","src":"1113:114:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12101,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"1130:11:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12103,"name":"IERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12574,"src":"1150:17:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$12574_$","typeString":"type(contract IERC721Enumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Enumerable_$12574_$","typeString":"type(contract IERC721Enumerable)"}],"id":12102,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1145:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1145:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Enumerable_$12574","typeString":"type(contract IERC721Enumerable)"}},"id":12105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1169:11:41","memberName":"interfaceId","nodeType":"MemberAccess","src":"1145:35:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1130:50:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12109,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"1208:11:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":12107,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1184:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$12418_$","typeString":"type(contract super ERC721Enumerable)"}},"id":12108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1190:17:41","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":11079,"src":"1184:23:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":12110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1130:90:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12100,"id":12112,"nodeType":"Return","src":"1123:97:41"}]},"documentation":{"id":12091,"nodeType":"StructuredDocumentation","src":"944:56:41","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":12114,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1014:17:41","nodeType":"FunctionDefinition","overrides":{"id":12097,"nodeType":"OverrideSpecifier","overrides":[{"id":12095,"name":"IERC165","nameLocations":["1081:7:41"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"1081:7:41"},{"id":12096,"name":"ERC721","nameLocations":["1090:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"1090:6:41"}],"src":"1072:25:41"},"parameters":{"id":12094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12093,"mutability":"mutable","name":"interfaceId","nameLocation":"1039:11:41","nodeType":"VariableDeclaration","scope":12114,"src":"1032:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12092,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1032:6:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1031:20:41"},"returnParameters":{"id":12100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12114,"src":"1107:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12098,"name":"bool","nodeType":"ElementaryTypeName","src":"1107:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1106:6:41"},"scope":12418,"src":"1005:222:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12565],"body":{"id":12141,"nodeType":"Block","src":"1412:147:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12126,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12119,"src":"1430:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":12129,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12117,"src":"1455:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12127,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"1438:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":12128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1445:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11103,"src":"1438:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":12130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1430:31:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473","id":12132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1463:45:41","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":12125,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1422:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:87:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12134,"nodeType":"ExpressionStatement","src":"1422:87:41"},{"expression":{"baseExpression":{"baseExpression":{"id":12135,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"1526:12:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":12137,"indexExpression":{"id":12136,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12117,"src":"1539:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1526:19:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12139,"indexExpression":{"id":12138,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12119,"src":"1546:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1526:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12124,"id":12140,"nodeType":"Return","src":"1519:33:41"}]},"documentation":{"id":12115,"nodeType":"StructuredDocumentation","src":"1233:68:41","text":" @dev See {IERC721Enumerable-tokenOfOwnerByIndex}."},"functionSelector":"2f745c59","id":12142,"implemented":true,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"1315:19:41","nodeType":"FunctionDefinition","overrides":{"id":12121,"nodeType":"OverrideSpecifier","overrides":[],"src":"1385:8:41"},"parameters":{"id":12120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12117,"mutability":"mutable","name":"owner","nameLocation":"1343:5:41","nodeType":"VariableDeclaration","scope":12142,"src":"1335:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12116,"name":"address","nodeType":"ElementaryTypeName","src":"1335:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12119,"mutability":"mutable","name":"index","nameLocation":"1358:5:41","nodeType":"VariableDeclaration","scope":12142,"src":"1350:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12118,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1334:30:41"},"returnParameters":{"id":12124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12142,"src":"1403:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1403:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:9:41"},"scope":12418,"src":"1306:253:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12555],"body":{"id":12152,"nodeType":"Block","src":"1700:41:41","statements":[{"expression":{"expression":{"id":12149,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"1717:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:6:41","memberName":"length","nodeType":"MemberAccess","src":"1717:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12148,"id":12151,"nodeType":"Return","src":"1710:24:41"}]},"documentation":{"id":12143,"nodeType":"StructuredDocumentation","src":"1565:60:41","text":" @dev See {IERC721Enumerable-totalSupply}."},"functionSelector":"18160ddd","id":12153,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1639:11:41","nodeType":"FunctionDefinition","overrides":{"id":12145,"nodeType":"OverrideSpecifier","overrides":[],"src":"1673:8:41"},"parameters":{"id":12144,"nodeType":"ParameterList","parameters":[],"src":"1650:2:41"},"returnParameters":{"id":12148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12153,"src":"1691:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1691:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1690:9:41"},"scope":12418,"src":"1630:111:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[12573],"body":{"id":12175,"nodeType":"Block","src":"1897:146:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12163,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"1915:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12164,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12418,"src":"1923:16:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721Enumerable_$12418_$","typeString":"type(contract ERC721Enumerable)"}},"id":12165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1940:11:41","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":12153,"src":"1923:28:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":12166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1923:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1915:38:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473","id":12168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1955:46:41","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":12162,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1907:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:95:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12170,"nodeType":"ExpressionStatement","src":"1907:95:41"},{"expression":{"baseExpression":{"id":12171,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"2019:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12173,"indexExpression":{"id":12172,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12156,"src":"2030:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2019:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":12161,"id":12174,"nodeType":"Return","src":"2012:24:41"}]},"documentation":{"id":12154,"nodeType":"StructuredDocumentation","src":"1747:61:41","text":" @dev See {IERC721Enumerable-tokenByIndex}."},"functionSelector":"4f6ccce7","id":12176,"implemented":true,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"1822:12:41","nodeType":"FunctionDefinition","overrides":{"id":12158,"nodeType":"OverrideSpecifier","overrides":[],"src":"1870:8:41"},"parameters":{"id":12157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12156,"mutability":"mutable","name":"index","nameLocation":"1843:5:41","nodeType":"VariableDeclaration","scope":12176,"src":"1835:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1835:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1834:15:41"},"returnParameters":{"id":12161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12176,"src":"1888:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1888:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1887:9:41"},"scope":12418,"src":"1813:230:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[11916],"body":{"id":12255,"nodeType":"Block","src":"2273:729:41","statements":[{"expression":{"arguments":[{"id":12192,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"2310:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12193,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12181,"src":"2316:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12194,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12183,"src":"2320:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12195,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"2334:9:41","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":12189,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2283:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Enumerable_$12418_$","typeString":"type(contract super ERC721Enumerable)"}},"id":12191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2289:20:41","memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"2283:26:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":12196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2283:61:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12197,"nodeType":"ExpressionStatement","src":"2283:61:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12198,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12185,"src":"2359:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":12199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2371:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2359:13:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12206,"nodeType":"IfStatement","src":"2355:219:41","trueBody":{"id":12205,"nodeType":"Block","src":"2374:200:41","statements":[{"expression":{"arguments":[{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472616e7366657273206e6f7420737570706f72746564","id":12202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2507:55:41","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":12201,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"2500:6:41","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12204,"nodeType":"ExpressionStatement","src":"2500:63:41"}]}},{"assignments":[12208],"declarations":[{"constant":false,"id":12208,"mutability":"mutable","name":"tokenId","nameLocation":"2592:7:41","nodeType":"VariableDeclaration","scope":12255,"src":"2584:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12207,"name":"uint256","nodeType":"ElementaryTypeName","src":"2584:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12210,"initialValue":{"id":12209,"name":"firstTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12183,"src":"2602:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2584:30:41"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12211,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"2629:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2645: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":12213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2637:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12212,"name":"address","nodeType":"ElementaryTypeName","src":"2637:7:41","typeDescriptions":{}}},"id":12215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2637:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2629:18:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12222,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"2724:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12223,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12181,"src":"2732:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2724:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12231,"nodeType":"IfStatement","src":"2720:88:41","trueBody":{"id":12230,"nodeType":"Block","src":"2736:72:41","statements":[{"expression":{"arguments":[{"id":12226,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"2783:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12227,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12208,"src":"2789:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12225,"name":"_removeTokenFromOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12369,"src":"2750:32:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:47:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12229,"nodeType":"ExpressionStatement","src":"2750:47:41"}]}},"id":12232,"nodeType":"IfStatement","src":"2625:183:41","trueBody":{"id":12221,"nodeType":"Block","src":"2649:65:41","statements":[{"expression":{"arguments":[{"id":12218,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12208,"src":"2695:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12217,"name":"_addTokenToAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12306,"src":"2663:31:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2663:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12220,"nodeType":"ExpressionStatement","src":"2663:40:41"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12233,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12181,"src":"2821:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2835: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":12235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2827:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12234,"name":"address","nodeType":"ElementaryTypeName","src":"2827:7:41","typeDescriptions":{}}},"id":12237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2827:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2821:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12244,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12181,"src":"2919:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12245,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12179,"src":"2925:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2919:10:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12253,"nodeType":"IfStatement","src":"2915:81:41","trueBody":{"id":12252,"nodeType":"Block","src":"2931:65:41","statements":[{"expression":{"arguments":[{"id":12248,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12181,"src":"2973:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12249,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12208,"src":"2977:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12247,"name":"_addTokenToOwnerEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12286,"src":"2945:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2945:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12251,"nodeType":"ExpressionStatement","src":"2945:40:41"}]}},"id":12254,"nodeType":"IfStatement","src":"2817:179:41","trueBody":{"id":12243,"nodeType":"Block","src":"2839:70:41","statements":[{"expression":{"arguments":[{"id":12240,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12208,"src":"2890:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12239,"name":"_removeTokenFromAllTokensEnumeration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12417,"src":"2853:36:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2853:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12242,"nodeType":"ExpressionStatement","src":"2853:45:41"}]}}]},"documentation":{"id":12177,"nodeType":"StructuredDocumentation","src":"2049:58:41","text":" @dev See {ERC721-_beforeTokenTransfer}."},"id":12256,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"2121:20:41","nodeType":"FunctionDefinition","overrides":{"id":12187,"nodeType":"OverrideSpecifier","overrides":[],"src":"2264:8:41"},"parameters":{"id":12186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12179,"mutability":"mutable","name":"from","nameLocation":"2159:4:41","nodeType":"VariableDeclaration","scope":12256,"src":"2151:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12178,"name":"address","nodeType":"ElementaryTypeName","src":"2151:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12181,"mutability":"mutable","name":"to","nameLocation":"2181:2:41","nodeType":"VariableDeclaration","scope":12256,"src":"2173:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12180,"name":"address","nodeType":"ElementaryTypeName","src":"2173:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12183,"mutability":"mutable","name":"firstTokenId","nameLocation":"2201:12:41","nodeType":"VariableDeclaration","scope":12256,"src":"2193:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2193:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12185,"mutability":"mutable","name":"batchSize","nameLocation":"2231:9:41","nodeType":"VariableDeclaration","scope":12256,"src":"2223:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12184,"name":"uint256","nodeType":"ElementaryTypeName","src":"2223:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2141:105:41"},"returnParameters":{"id":12188,"nodeType":"ParameterList","parameters":[],"src":"2273:0:41"},"scope":12418,"src":"2112:890:41","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":12285,"nodeType":"Block","src":"3370:143:41","statements":[{"assignments":[12265],"declarations":[{"constant":false,"id":12265,"mutability":"mutable","name":"length","nameLocation":"3388:6:41","nodeType":"VariableDeclaration","scope":12285,"src":"3380:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12264,"name":"uint256","nodeType":"ElementaryTypeName","src":"3380:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12270,"initialValue":{"arguments":[{"id":12268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"3414:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12266,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"3397:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":12267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3404:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11103,"src":"3397:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":12269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3397:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3380:37:41"},{"expression":{"id":12277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":12271,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"3427:12:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":12274,"indexExpression":{"id":12272,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12259,"src":"3440:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3427:16:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12275,"indexExpression":{"id":12273,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"3444:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3427:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12276,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12261,"src":"3454:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3427:34:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12278,"nodeType":"ExpressionStatement","src":"3427:34:41"},{"expression":{"id":12283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12279,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"3471:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12281,"indexExpression":{"id":12280,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12261,"src":"3489:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3471:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12282,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"3500:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3471:35:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12284,"nodeType":"ExpressionStatement","src":"3471:35:41"}]},"documentation":{"id":12257,"nodeType":"StructuredDocumentation","src":"3008:283:41","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":12286,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToOwnerEnumeration","nameLocation":"3305:27:41","nodeType":"FunctionDefinition","parameters":{"id":12262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12259,"mutability":"mutable","name":"to","nameLocation":"3341:2:41","nodeType":"VariableDeclaration","scope":12286,"src":"3333:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12258,"name":"address","nodeType":"ElementaryTypeName","src":"3333:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12261,"mutability":"mutable","name":"tokenId","nameLocation":"3353:7:41","nodeType":"VariableDeclaration","scope":12286,"src":"3345:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12260,"name":"uint256","nodeType":"ElementaryTypeName","src":"3345:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3332:29:41"},"returnParameters":{"id":12263,"nodeType":"ParameterList","parameters":[],"src":"3370:0:41"},"scope":12418,"src":"3296:217:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12305,"nodeType":"Block","src":"3774:95:41","statements":[{"expression":{"id":12297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12292,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12090,"src":"3784:15:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12294,"indexExpression":{"id":12293,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12289,"src":"3800:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3784:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12295,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"3811:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3822:6:41","memberName":"length","nodeType":"MemberAccess","src":"3811:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3784:44:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12298,"nodeType":"ExpressionStatement","src":"3784:44:41"},{"expression":{"arguments":[{"id":12302,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12289,"src":"3854:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12299,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"3838:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3849:4:41","memberName":"push","nodeType":"MemberAccess","src":"3838:15:41","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":12303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12304,"nodeType":"ExpressionStatement","src":"3838:24:41"}]},"documentation":{"id":12287,"nodeType":"StructuredDocumentation","src":"3519:184:41","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":12306,"implemented":true,"kind":"function","modifiers":[],"name":"_addTokenToAllTokensEnumeration","nameLocation":"3717:31:41","nodeType":"FunctionDefinition","parameters":{"id":12290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12289,"mutability":"mutable","name":"tokenId","nameLocation":"3757:7:41","nodeType":"VariableDeclaration","scope":12306,"src":"3749:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12288,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3748:17:41"},"returnParameters":{"id":12291,"nodeType":"ParameterList","parameters":[],"src":"3774:0:41"},"scope":12418,"src":"3708:161:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12368,"nodeType":"Block","src":"4567:889:41","statements":[{"assignments":[12315],"declarations":[{"constant":false,"id":12315,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"4756:14:41","nodeType":"VariableDeclaration","scope":12368,"src":"4748:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12314,"name":"uint256","nodeType":"ElementaryTypeName","src":"4748:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12322,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12318,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"4790:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12316,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"4773:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$11930_$","typeString":"type(contract ERC721)"}},"id":12317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4780:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11103,"src":"4773:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4773:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4798:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4773:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4748:51:41"},{"assignments":[12324],"declarations":[{"constant":false,"id":12324,"mutability":"mutable","name":"tokenIndex","nameLocation":"4817:10:41","nodeType":"VariableDeclaration","scope":12368,"src":"4809:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12323,"name":"uint256","nodeType":"ElementaryTypeName","src":"4809:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12328,"initialValue":{"baseExpression":{"id":12325,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"4830:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12327,"indexExpression":{"id":12326,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"4848:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4830:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4809:47:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12329,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12324,"src":"4960:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":12330,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"4974:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4960:28:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12355,"nodeType":"IfStatement","src":"4956:323:41","trueBody":{"id":12354,"nodeType":"Block","src":"4990:289:41","statements":[{"assignments":[12333],"declarations":[{"constant":false,"id":12333,"mutability":"mutable","name":"lastTokenId","nameLocation":"5012:11:41","nodeType":"VariableDeclaration","scope":12354,"src":"5004:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12332,"name":"uint256","nodeType":"ElementaryTypeName","src":"5004:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12339,"initialValue":{"baseExpression":{"baseExpression":{"id":12334,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"5026:12:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":12336,"indexExpression":{"id":12335,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"5039:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5026:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12338,"indexExpression":{"id":12337,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"5045:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5026:34:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5004:56:41"},{"expression":{"id":12346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":12340,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"5075:12:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":12343,"indexExpression":{"id":12341,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"5088:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5075:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12344,"indexExpression":{"id":12342,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12324,"src":"5094:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5075:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12345,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"5108:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5075:44:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12347,"nodeType":"ExpressionStatement","src":"5075:44:41"},{"expression":{"id":12352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12348,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"5191:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12350,"indexExpression":{"id":12349,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"5209:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5191:30:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12351,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12324,"src":"5224:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:43:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12353,"nodeType":"ExpressionStatement","src":"5191:43:41"}]}},{"expression":{"id":12359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5365:33:41","subExpression":{"baseExpression":{"id":12356,"name":"_ownedTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"5372:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12358,"indexExpression":{"id":12357,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"5390:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5372:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12360,"nodeType":"ExpressionStatement","src":"5365:33:41"},{"expression":{"id":12366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5408:41:41","subExpression":{"baseExpression":{"baseExpression":{"id":12361,"name":"_ownedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"5415:12:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":12363,"indexExpression":{"id":12362,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"5428:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5415:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12365,"indexExpression":{"id":12364,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"5434:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5415:34:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12367,"nodeType":"ExpressionStatement","src":"5408:41:41"}]},"documentation":{"id":12307,"nodeType":"StructuredDocumentation","src":"3875:606:41","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":12369,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromOwnerEnumeration","nameLocation":"4495:32:41","nodeType":"FunctionDefinition","parameters":{"id":12312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12309,"mutability":"mutable","name":"from","nameLocation":"4536:4:41","nodeType":"VariableDeclaration","scope":12369,"src":"4528:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12308,"name":"address","nodeType":"ElementaryTypeName","src":"4528:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12311,"mutability":"mutable","name":"tokenId","nameLocation":"4550:7:41","nodeType":"VariableDeclaration","scope":12369,"src":"4542:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12310,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4527:31:41"},"returnParameters":{"id":12313,"nodeType":"ParameterList","parameters":[],"src":"4567:0:41"},"scope":12418,"src":"4486:970:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":12416,"nodeType":"Block","src":"5815:990:41","statements":[{"assignments":[12376],"declarations":[{"constant":false,"id":12376,"mutability":"mutable","name":"lastTokenIndex","nameLocation":"6001:14:41","nodeType":"VariableDeclaration","scope":12416,"src":"5993:22:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12375,"name":"uint256","nodeType":"ElementaryTypeName","src":"5993:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12381,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12377,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"6018:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6029:6:41","memberName":"length","nodeType":"MemberAccess","src":"6018:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:1:41","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6018:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5993:46:41"},{"assignments":[12383],"declarations":[{"constant":false,"id":12383,"mutability":"mutable","name":"tokenIndex","nameLocation":"6057:10:41","nodeType":"VariableDeclaration","scope":12416,"src":"6049:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12382,"name":"uint256","nodeType":"ElementaryTypeName","src":"6049:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12387,"initialValue":{"baseExpression":{"id":12384,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12090,"src":"6070:15:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12386,"indexExpression":{"id":12385,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"6086:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6070:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6049:45:41"},{"assignments":[12389],"declarations":[{"constant":false,"id":12389,"mutability":"mutable","name":"lastTokenId","nameLocation":"6424:11:41","nodeType":"VariableDeclaration","scope":12416,"src":"6416:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12388,"name":"uint256","nodeType":"ElementaryTypeName","src":"6416:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12393,"initialValue":{"baseExpression":{"id":12390,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"6438:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12392,"indexExpression":{"id":12391,"name":"lastTokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"6449:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6438:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6416:48:41"},{"expression":{"id":12398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12394,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"6475:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12396,"indexExpression":{"id":12395,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"6486:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6475:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12397,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"6500:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6475:36:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12399,"nodeType":"ExpressionStatement","src":"6475:36:41"},{"expression":{"id":12404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12400,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12090,"src":"6579:15:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12402,"indexExpression":{"id":12401,"name":"lastTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12389,"src":"6595:11:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6579:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12403,"name":"tokenIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12383,"src":"6610:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6579:41:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12405,"nodeType":"ExpressionStatement","src":"6579:41:41"},{"expression":{"id":12409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6741:31:41","subExpression":{"baseExpression":{"id":12406,"name":"_allTokensIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12090,"src":"6748:15:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":12408,"indexExpression":{"id":12407,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"6764:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6748:24:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12410,"nodeType":"ExpressionStatement","src":"6741:31:41"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12411,"name":"_allTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12086,"src":"6782:10:41","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":12413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6793:3:41","memberName":"pop","nodeType":"MemberAccess","src":"6782:14:41","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":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:16:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12415,"nodeType":"ExpressionStatement","src":"6782:16:41"}]},"documentation":{"id":12370,"nodeType":"StructuredDocumentation","src":"5462:277:41","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":12417,"implemented":true,"kind":"function","modifiers":[],"name":"_removeTokenFromAllTokensEnumeration","nameLocation":"5753:36:41","nodeType":"FunctionDefinition","parameters":{"id":12373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12372,"mutability":"mutable","name":"tokenId","nameLocation":"5798:7:41","nodeType":"VariableDeclaration","scope":12417,"src":"5790:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5790:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5789:17:41"},"returnParameters":{"id":12374,"nodeType":"ParameterList","parameters":[],"src":"5815:0:41"},"scope":12418,"src":"5744:1061:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":12419,"src":"412:6395:41","usedErrors":[]}],"src":"128:6680:41"},"id":41},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","exportedSymbols":{"Address":[12931],"Context":[14324],"ERC165":[15326],"ERC721":[11930],"ERC721URIStorage":[12543],"IERC165":[15338],"IERC721":[12046],"IERC721Metadata":[12601],"IERC721Receiver":[12064],"Math":[16203],"Strings":[14573]},"id":12544,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12420,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"128:23:42"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"../ERC721.sol","id":12421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12544,"sourceUnit":11931,"src":"153:23:42","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12423,"name":"ERC721","nameLocations":["286:6:42"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"286:6:42"},"id":12424,"nodeType":"InheritanceSpecifier","src":"286:6:42"}],"canonicalName":"ERC721URIStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":12422,"nodeType":"StructuredDocumentation","src":"178:69:42","text":" @dev ERC721 token with storage based token URI management."},"fullyImplemented":false,"id":12543,"linearizedBaseContracts":[12543,11930,12601,12046,15326,15338,14324],"name":"ERC721URIStorage","nameLocation":"266:16:42","nodeType":"ContractDefinition","nodes":[{"global":false,"id":12427,"libraryName":{"id":12425,"name":"Strings","nameLocations":["305:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":14573,"src":"305:7:42"},"nodeType":"UsingForDirective","src":"299:26:42","typeName":{"id":12426,"name":"uint256","nodeType":"ElementaryTypeName","src":"317:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":12431,"mutability":"mutable","name":"_tokenURIs","nameLocation":"405:10:42","nodeType":"VariableDeclaration","scope":12543,"src":"370:45:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":12430,"keyType":{"id":12428,"name":"uint256","nodeType":"ElementaryTypeName","src":"378:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"370:26:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueType":{"id":12429,"name":"string","nodeType":"ElementaryTypeName","src":"389:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[11190],"body":{"id":12489,"nodeType":"Block","src":"570:520:42","statements":[{"expression":{"arguments":[{"id":12441,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"595:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12440,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11808,"src":"580:14:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:23:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12443,"nodeType":"ExpressionStatement","src":"580:23:42"},{"assignments":[12445],"declarations":[{"constant":false,"id":12445,"mutability":"mutable","name":"_tokenURI","nameLocation":"628:9:42","nodeType":"VariableDeclaration","scope":12489,"src":"614:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12444,"name":"string","nodeType":"ElementaryTypeName","src":"614:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":12449,"initialValue":{"baseExpression":{"id":12446,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12431,"src":"640:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":12448,"indexExpression":{"id":12447,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"651:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"640:19:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"614:45:42"},{"assignments":[12451],"declarations":[{"constant":false,"id":12451,"mutability":"mutable","name":"base","nameLocation":"683:4:42","nodeType":"VariableDeclaration","scope":12489,"src":"669:18:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12450,"name":"string","nodeType":"ElementaryTypeName","src":"669:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":12454,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":12452,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11199,"src":"690:8:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"690:10:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"669:31:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12457,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"779:4:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"773:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12455,"name":"bytes","nodeType":"ElementaryTypeName","src":"773:5:42","typeDescriptions":{}}},"id":12458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"773:11:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"785:6:42","memberName":"length","nodeType":"MemberAccess","src":"773:18:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"795:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"773:23:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12465,"nodeType":"IfStatement","src":"769:70:42","trueBody":{"id":12464,"nodeType":"Block","src":"798:41:42","statements":[{"expression":{"id":12462,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"819:9:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":12439,"id":12463,"nodeType":"Return","src":"812:16:42"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12468,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"947:9:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"941:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12466,"name":"bytes","nodeType":"ElementaryTypeName","src":"941:5:42","typeDescriptions":{}}},"id":12469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"958:6:42","memberName":"length","nodeType":"MemberAccess","src":"941:23:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"967:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"941:27:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12483,"nodeType":"IfStatement","src":"937:106:42","trueBody":{"id":12482,"nodeType":"Block","src":"970:73:42","statements":[{"expression":{"arguments":[{"arguments":[{"id":12477,"name":"base","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"1015:4:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12478,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12445,"src":"1021:9:42","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":12475,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"998:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1002:12:42","memberName":"encodePacked","nodeType":"MemberAccess","src":"998:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:33:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"991:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":12473,"name":"string","nodeType":"ElementaryTypeName","src":"991:6:42","typeDescriptions":{}}},"id":12480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:41:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":12439,"id":12481,"nodeType":"Return","src":"984:48:42"}]}},{"expression":{"arguments":[{"id":12486,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12434,"src":"1075:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12484,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1060:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$12543_$","typeString":"type(contract super ERC721URIStorage)"}},"id":12485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1066:8:42","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":11190,"src":"1060:14:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1060:23:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":12439,"id":12488,"nodeType":"Return","src":"1053:30:42"}]},"documentation":{"id":12432,"nodeType":"StructuredDocumentation","src":"422:55:42","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":12490,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"491:8:42","nodeType":"FunctionDefinition","overrides":{"id":12436,"nodeType":"OverrideSpecifier","overrides":[],"src":"537:8:42"},"parameters":{"id":12435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12434,"mutability":"mutable","name":"tokenId","nameLocation":"508:7:42","nodeType":"VariableDeclaration","scope":12490,"src":"500:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12433,"name":"uint256","nodeType":"ElementaryTypeName","src":"500:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"499:17:42"},"returnParameters":{"id":12439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12490,"src":"555:13:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12437,"name":"string","nodeType":"ElementaryTypeName","src":"555:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"554:15:42"},"scope":12543,"src":"482:608:42","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12511,"nodeType":"Block","src":"1318:133:42","statements":[{"expression":{"arguments":[{"arguments":[{"id":12500,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12493,"src":"1344:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12499,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11431,"src":"1336:7:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":12501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:16:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e","id":12502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1354:48:42","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""},"value":"ERC721URIStorage: URI set of nonexistent token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4","typeString":"literal_string \"ERC721URIStorage: URI set of nonexistent token\""}],"id":12498,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1328:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1328:75:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12504,"nodeType":"ExpressionStatement","src":"1328:75:42"},{"expression":{"id":12509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12505,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12431,"src":"1413:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":12507,"indexExpression":{"id":12506,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12493,"src":"1424:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1413:19:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12508,"name":"_tokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"1435:9:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1413:31:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":12510,"nodeType":"ExpressionStatement","src":"1413:31:42"}]},"documentation":{"id":12491,"nodeType":"StructuredDocumentation","src":"1096:136:42","text":" @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":12512,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenURI","nameLocation":"1246:12:42","nodeType":"FunctionDefinition","parameters":{"id":12496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12493,"mutability":"mutable","name":"tokenId","nameLocation":"1267:7:42","nodeType":"VariableDeclaration","scope":12512,"src":"1259:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1259:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12495,"mutability":"mutable","name":"_tokenURI","nameLocation":"1290:9:42","nodeType":"VariableDeclaration","scope":12512,"src":"1276:23:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12494,"name":"string","nodeType":"ElementaryTypeName","src":"1276:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:42:42"},"returnParameters":{"id":12497,"nodeType":"ParameterList","parameters":[],"src":"1318:0:42"},"scope":12543,"src":"1237:214:42","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[11653],"body":{"id":12541,"nodeType":"Block","src":"1727:142:42","statements":[{"expression":{"arguments":[{"id":12522,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12515,"src":"1749:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12519,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1737:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721URIStorage_$12543_$","typeString":"type(contract super ERC721URIStorage)"}},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1743:5:42","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":11653,"src":"1737:11:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1737:20:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12524,"nodeType":"ExpressionStatement","src":"1737:20:42"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"baseExpression":{"id":12527,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12431,"src":"1778:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":12529,"indexExpression":{"id":12528,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12515,"src":"1789:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1778:19:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":12526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1772:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12525,"name":"bytes","nodeType":"ElementaryTypeName","src":"1772:5:42","typeDescriptions":{}}},"id":12530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:26:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":12531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1799:6:42","memberName":"length","nodeType":"MemberAccess","src":"1772:33:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1809:1:42","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1772:38:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12540,"nodeType":"IfStatement","src":"1768:95:42","trueBody":{"id":12539,"nodeType":"Block","src":"1812:51:42","statements":[{"expression":{"id":12537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1826:26:42","subExpression":{"baseExpression":{"id":12534,"name":"_tokenURIs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12431,"src":"1833:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":12536,"indexExpression":{"id":12535,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12515,"src":"1844:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1833:19:42","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12538,"nodeType":"ExpressionStatement","src":"1826:26:42"}]}}]},"documentation":{"id":12513,"nodeType":"StructuredDocumentation","src":"1457:207:42","text":" @dev See {ERC721-_burn}. This override additionally checks to see if a\n token-specific URI was set for the token, and if so, it deletes the token URI from\n the storage mapping."},"id":12542,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1678:5:42","nodeType":"FunctionDefinition","overrides":{"id":12517,"nodeType":"OverrideSpecifier","overrides":[],"src":"1718:8:42"},"parameters":{"id":12516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12515,"mutability":"mutable","name":"tokenId","nameLocation":"1692:7:42","nodeType":"VariableDeclaration","scope":12542,"src":"1684:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12514,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1683:17:42"},"returnParameters":{"id":12518,"nodeType":"ParameterList","parameters":[],"src":"1727:0:42"},"scope":12543,"src":"1669:200:42","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":12544,"src":"248:1623:42","usedErrors":[]}],"src":"128:1744:42"},"id":42},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol","exportedSymbols":{"IERC165":[15338],"IERC721":[12046],"IERC721Enumerable":[12574]},"id":12575,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12545,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"129:23:43"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":12546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12575,"sourceUnit":12047,"src":"154:24:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12548,"name":"IERC721","nameLocations":["348:7:43"],"nodeType":"IdentifierPath","referencedDeclaration":12046,"src":"348:7:43"},"id":12549,"nodeType":"InheritanceSpecifier","src":"348:7:43"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":12547,"nodeType":"StructuredDocumentation","src":"180:136:43","text":" @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":12574,"linearizedBaseContracts":[12574,12046,15338],"name":"IERC721Enumerable","nameLocation":"327:17:43","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12550,"nodeType":"StructuredDocumentation","src":"362:82:43","text":" @dev Returns the total amount of tokens stored by the contract."},"functionSelector":"18160ddd","id":12555,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"458:11:43","nodeType":"FunctionDefinition","parameters":{"id":12551,"nodeType":"ParameterList","parameters":[],"src":"469:2:43"},"returnParameters":{"id":12554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12555,"src":"495:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12552,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:9:43"},"scope":12574,"src":"449:55:43","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":12556,"nodeType":"StructuredDocumentation","src":"510:171:43","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":12565,"implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"695:19:43","nodeType":"FunctionDefinition","parameters":{"id":12561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12558,"mutability":"mutable","name":"owner","nameLocation":"723:5:43","nodeType":"VariableDeclaration","scope":12565,"src":"715:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12557,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12560,"mutability":"mutable","name":"index","nameLocation":"738:5:43","nodeType":"VariableDeclaration","scope":12565,"src":"730:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12559,"name":"uint256","nodeType":"ElementaryTypeName","src":"730:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"714:30:43"},"returnParameters":{"id":12564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12565,"src":"768:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12562,"name":"uint256","nodeType":"ElementaryTypeName","src":"768:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"767:9:43"},"scope":12574,"src":"686:91:43","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":12566,"nodeType":"StructuredDocumentation","src":"783:164:43","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":12573,"implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"961:12:43","nodeType":"FunctionDefinition","parameters":{"id":12569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12568,"mutability":"mutable","name":"index","nameLocation":"982:5:43","nodeType":"VariableDeclaration","scope":12573,"src":"974:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12567,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"973:15:43"},"returnParameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12573,"src":"1012:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:9:43"},"scope":12574,"src":"952:69:43","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":12575,"src":"317:706:43","usedErrors":[]}],"src":"129:895:43"},"id":43},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[15338],"IERC721":[12046],"IERC721Metadata":[12601]},"id":12602,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12576,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:44"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":12577,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12602,"sourceUnit":12047,"src":"137:24:44","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12579,"name":"IERC721","nameLocations":["326:7:44"],"nodeType":"IdentifierPath","referencedDeclaration":12046,"src":"326:7:44"},"id":12580,"nodeType":"InheritanceSpecifier","src":"326:7:44"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":12578,"nodeType":"StructuredDocumentation","src":"163:133:44","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":12601,"linearizedBaseContracts":[12601,12046,15338],"name":"IERC721Metadata","nameLocation":"307:15:44","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12581,"nodeType":"StructuredDocumentation","src":"340:58:44","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":12586,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:44","nodeType":"FunctionDefinition","parameters":{"id":12582,"nodeType":"ParameterList","parameters":[],"src":"416:2:44"},"returnParameters":{"id":12585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12586,"src":"442:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12583,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:44"},"scope":12601,"src":"403:54:44","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":12587,"nodeType":"StructuredDocumentation","src":"463:60:44","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":12592,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:44","nodeType":"FunctionDefinition","parameters":{"id":12588,"nodeType":"ParameterList","parameters":[],"src":"543:2:44"},"returnParameters":{"id":12591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12592,"src":"569:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12589,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:44"},"scope":12601,"src":"528:56:44","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":12593,"nodeType":"StructuredDocumentation","src":"590:90:44","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":12600,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:44","nodeType":"FunctionDefinition","parameters":{"id":12596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12595,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:44","nodeType":"VariableDeclaration","scope":12600,"src":"703:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12594,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:44"},"returnParameters":{"id":12599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12600,"src":"743:13:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12597,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:44","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:44"},"scope":12601,"src":"685:73:44","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":12602,"src":"297:463:44","usedErrors":[]}],"src":"112:649:44"},"id":44},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[12931]},"id":12932,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12603,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:45"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":12604,"nodeType":"StructuredDocumentation","src":"126:67:45","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":12931,"linearizedBaseContracts":[12931],"name":"Address","nameLocation":"202:7:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":12618,"nodeType":"Block","src":"1241:254:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":12612,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"1465:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:45","memberName":"code","nodeType":"MemberAccess","src":"1465:12:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:45","memberName":"length","nodeType":"MemberAccess","src":"1465:19:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12611,"id":12617,"nodeType":"Return","src":"1458:30:45"}]},"documentation":{"id":12605,"nodeType":"StructuredDocumentation","src":"216:954:45","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":12619,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:45","nodeType":"FunctionDefinition","parameters":{"id":12608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12607,"mutability":"mutable","name":"account","nameLocation":"1203:7:45","nodeType":"VariableDeclaration","scope":12619,"src":"1195:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12606,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:45"},"returnParameters":{"id":12611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12619,"src":"1235:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12609,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:45"},"scope":12931,"src":"1175:320:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12652,"nodeType":"Block","src":"2483:241:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12630,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12931","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12931","typeString":"library Address"}],"id":12629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12628,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:45","typeDescriptions":{}}},"id":12631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2501:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:7:45","memberName":"balance","nodeType":"MemberAccess","src":"2501:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12633,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"2526:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":12635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:45","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":12627,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:73:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12637,"nodeType":"ExpressionStatement","src":"2493:73:45"},{"assignments":[12639,null],"declarations":[{"constant":false,"id":12639,"mutability":"mutable","name":"success","nameLocation":"2583:7:45","nodeType":"VariableDeclaration","scope":12652,"src":"2578:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12638,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":12646,"initialValue":{"arguments":[{"hexValue":"","id":12644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:45","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":12640,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12622,"src":"2596:9:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":12641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:4:45","memberName":"call","nodeType":"MemberAccess","src":"2596:14:45","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":12643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12642,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12624,"src":"2618:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:45","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":12645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:45"},{"expression":{"arguments":[{"id":12648,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12639,"src":"2647:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":12649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:45","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":12647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:78:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12651,"nodeType":"ExpressionStatement","src":"2639:78:45"}]},"documentation":{"id":12620,"nodeType":"StructuredDocumentation","src":"1501:906:45","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":12653,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:45","nodeType":"FunctionDefinition","parameters":{"id":12625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12622,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:45","nodeType":"VariableDeclaration","scope":12653,"src":"2431:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":12621,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:45","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":12624,"mutability":"mutable","name":"amount","nameLocation":"2466:6:45","nodeType":"VariableDeclaration","scope":12653,"src":"2458:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12623,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:45"},"returnParameters":{"id":12626,"nodeType":"ParameterList","parameters":[],"src":"2483:0:45"},"scope":12931,"src":"2412:312:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12670,"nodeType":"Block","src":"3555:96:45","statements":[{"expression":{"arguments":[{"id":12664,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"3594:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12665,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"3602:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":12666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3608:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":12667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3611:32:45","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":12663,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[12711,12755],"referencedDeclaration":12755,"src":"3572:21:45","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":12668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3572:72:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12662,"id":12669,"nodeType":"Return","src":"3565:79:45"}]},"documentation":{"id":12654,"nodeType":"StructuredDocumentation","src":"2730:731:45","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":12671,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:45","nodeType":"FunctionDefinition","parameters":{"id":12659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12656,"mutability":"mutable","name":"target","nameLocation":"3496:6:45","nodeType":"VariableDeclaration","scope":12671,"src":"3488:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12655,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12658,"mutability":"mutable","name":"data","nameLocation":"3517:4:45","nodeType":"VariableDeclaration","scope":12671,"src":"3504:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12657,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:45"},"returnParameters":{"id":12662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12671,"src":"3541:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12660,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:45"},"scope":12931,"src":"3466:185:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12690,"nodeType":"Block","src":"4020:76:45","statements":[{"expression":{"arguments":[{"id":12684,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12674,"src":"4059:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12685,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12676,"src":"4067:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":12686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4073:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12687,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12678,"src":"4076:12:45","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":12683,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[12711,12755],"referencedDeclaration":12755,"src":"4037:21:45","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":12688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4037:52:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12682,"id":12689,"nodeType":"Return","src":"4030:59:45"}]},"documentation":{"id":12672,"nodeType":"StructuredDocumentation","src":"3657:211:45","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":12691,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3882:12:45","nodeType":"FunctionDefinition","parameters":{"id":12679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12674,"mutability":"mutable","name":"target","nameLocation":"3912:6:45","nodeType":"VariableDeclaration","scope":12691,"src":"3904:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12673,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12676,"mutability":"mutable","name":"data","nameLocation":"3941:4:45","nodeType":"VariableDeclaration","scope":12691,"src":"3928:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12675,"name":"bytes","nodeType":"ElementaryTypeName","src":"3928:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12678,"mutability":"mutable","name":"errorMessage","nameLocation":"3969:12:45","nodeType":"VariableDeclaration","scope":12691,"src":"3955:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12677,"name":"string","nodeType":"ElementaryTypeName","src":"3955:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3894:93:45"},"returnParameters":{"id":12682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12681,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12691,"src":"4006:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12680,"name":"bytes","nodeType":"ElementaryTypeName","src":"4006:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4005:14:45"},"scope":12931,"src":"3873:223:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12710,"nodeType":"Block","src":"4601:111:45","statements":[{"expression":{"arguments":[{"id":12704,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12694,"src":"4640:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12705,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12696,"src":"4648:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12706,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12698,"src":"4654:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":12707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4661:43:45","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":12703,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[12711,12755],"referencedDeclaration":12755,"src":"4618:21:45","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":12708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4618:87:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12702,"id":12709,"nodeType":"Return","src":"4611:94:45"}]},"documentation":{"id":12692,"nodeType":"StructuredDocumentation","src":"4102:351:45","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":12711,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4467:21:45","nodeType":"FunctionDefinition","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12694,"mutability":"mutable","name":"target","nameLocation":"4506:6:45","nodeType":"VariableDeclaration","scope":12711,"src":"4498:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12693,"name":"address","nodeType":"ElementaryTypeName","src":"4498:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12696,"mutability":"mutable","name":"data","nameLocation":"4535:4:45","nodeType":"VariableDeclaration","scope":12711,"src":"4522:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12695,"name":"bytes","nodeType":"ElementaryTypeName","src":"4522:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12698,"mutability":"mutable","name":"value","nameLocation":"4557:5:45","nodeType":"VariableDeclaration","scope":12711,"src":"4549:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12697,"name":"uint256","nodeType":"ElementaryTypeName","src":"4549:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4488:80:45"},"returnParameters":{"id":12702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12701,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12711,"src":"4587:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12700,"name":"bytes","nodeType":"ElementaryTypeName","src":"4587:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4586:14:45"},"scope":12931,"src":"4458:254:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12754,"nodeType":"Block","src":"5139:267:45","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":12728,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5165:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$12931","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$12931","typeString":"library Address"}],"id":12727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5157:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12726,"name":"address","nodeType":"ElementaryTypeName","src":"5157:7:45","typeDescriptions":{}}},"id":12729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5157:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5171:7:45","memberName":"balance","nodeType":"MemberAccess","src":"5157:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":12731,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12718,"src":"5182:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:30:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":12733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5189:40:45","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":12725,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5149:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5149:81:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12735,"nodeType":"ExpressionStatement","src":"5149:81:45"},{"assignments":[12737,12739],"declarations":[{"constant":false,"id":12737,"mutability":"mutable","name":"success","nameLocation":"5246:7:45","nodeType":"VariableDeclaration","scope":12754,"src":"5241:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12736,"name":"bool","nodeType":"ElementaryTypeName","src":"5241:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12739,"mutability":"mutable","name":"returndata","nameLocation":"5268:10:45","nodeType":"VariableDeclaration","scope":12754,"src":"5255:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12738,"name":"bytes","nodeType":"ElementaryTypeName","src":"5255:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12746,"initialValue":{"arguments":[{"id":12744,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12716,"src":"5308:4:45","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":12740,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12714,"src":"5282:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5289:4:45","memberName":"call","nodeType":"MemberAccess","src":"5282:11:45","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":12743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12742,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12718,"src":"5301:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5282:25:45","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":12745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:31:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5240:73:45"},{"expression":{"arguments":[{"id":12748,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12714,"src":"5357:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12749,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12737,"src":"5365:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12750,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12739,"src":"5374:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12751,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12720,"src":"5386:12:45","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":12747,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"5330:26:45","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":12752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5330:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12724,"id":12753,"nodeType":"Return","src":"5323:76:45"}]},"documentation":{"id":12712,"nodeType":"StructuredDocumentation","src":"4718:237:45","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":12755,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4969:21:45","nodeType":"FunctionDefinition","parameters":{"id":12721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12714,"mutability":"mutable","name":"target","nameLocation":"5008:6:45","nodeType":"VariableDeclaration","scope":12755,"src":"5000:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12713,"name":"address","nodeType":"ElementaryTypeName","src":"5000:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12716,"mutability":"mutable","name":"data","nameLocation":"5037:4:45","nodeType":"VariableDeclaration","scope":12755,"src":"5024:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12715,"name":"bytes","nodeType":"ElementaryTypeName","src":"5024:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12718,"mutability":"mutable","name":"value","nameLocation":"5059:5:45","nodeType":"VariableDeclaration","scope":12755,"src":"5051:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12717,"name":"uint256","nodeType":"ElementaryTypeName","src":"5051:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12720,"mutability":"mutable","name":"errorMessage","nameLocation":"5088:12:45","nodeType":"VariableDeclaration","scope":12755,"src":"5074:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12719,"name":"string","nodeType":"ElementaryTypeName","src":"5074:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4990:116:45"},"returnParameters":{"id":12724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12755,"src":"5125:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12722,"name":"bytes","nodeType":"ElementaryTypeName","src":"5125:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5124:14:45"},"scope":12931,"src":"4960:446:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12771,"nodeType":"Block","src":"5683:97:45","statements":[{"expression":{"arguments":[{"id":12766,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12758,"src":"5719:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12767,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12760,"src":"5727:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":12768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5733:39:45","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":12765,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[12772,12801],"referencedDeclaration":12801,"src":"5700:18:45","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":12769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5700:73:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12764,"id":12770,"nodeType":"Return","src":"5693:80:45"}]},"documentation":{"id":12756,"nodeType":"StructuredDocumentation","src":"5412:166:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":12772,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5592:18:45","nodeType":"FunctionDefinition","parameters":{"id":12761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12758,"mutability":"mutable","name":"target","nameLocation":"5619:6:45","nodeType":"VariableDeclaration","scope":12772,"src":"5611:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12757,"name":"address","nodeType":"ElementaryTypeName","src":"5611:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12760,"mutability":"mutable","name":"data","nameLocation":"5640:4:45","nodeType":"VariableDeclaration","scope":12772,"src":"5627:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12759,"name":"bytes","nodeType":"ElementaryTypeName","src":"5627:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5610:35:45"},"returnParameters":{"id":12764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12772,"src":"5669:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12762,"name":"bytes","nodeType":"ElementaryTypeName","src":"5669:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5668:14:45"},"scope":12931,"src":"5583:197:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12800,"nodeType":"Block","src":"6122:168:45","statements":[{"assignments":[12785,12787],"declarations":[{"constant":false,"id":12785,"mutability":"mutable","name":"success","nameLocation":"6138:7:45","nodeType":"VariableDeclaration","scope":12800,"src":"6133:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12784,"name":"bool","nodeType":"ElementaryTypeName","src":"6133:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12787,"mutability":"mutable","name":"returndata","nameLocation":"6160:10:45","nodeType":"VariableDeclaration","scope":12800,"src":"6147:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12786,"name":"bytes","nodeType":"ElementaryTypeName","src":"6147:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12792,"initialValue":{"arguments":[{"id":12790,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12777,"src":"6192:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12788,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12775,"src":"6174:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6181:10:45","memberName":"staticcall","nodeType":"MemberAccess","src":"6174:17:45","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":12791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:23:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6132:65:45"},{"expression":{"arguments":[{"id":12794,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12775,"src":"6241:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12795,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12785,"src":"6249:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12796,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"6258:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12797,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"6270:12:45","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":12793,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"6214:26:45","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":12798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6214:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12783,"id":12799,"nodeType":"Return","src":"6207:76:45"}]},"documentation":{"id":12773,"nodeType":"StructuredDocumentation","src":"5786:173:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":12801,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5973:18:45","nodeType":"FunctionDefinition","parameters":{"id":12780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12775,"mutability":"mutable","name":"target","nameLocation":"6009:6:45","nodeType":"VariableDeclaration","scope":12801,"src":"6001:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12774,"name":"address","nodeType":"ElementaryTypeName","src":"6001:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12777,"mutability":"mutable","name":"data","nameLocation":"6038:4:45","nodeType":"VariableDeclaration","scope":12801,"src":"6025:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12776,"name":"bytes","nodeType":"ElementaryTypeName","src":"6025:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12779,"mutability":"mutable","name":"errorMessage","nameLocation":"6066:12:45","nodeType":"VariableDeclaration","scope":12801,"src":"6052:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12778,"name":"string","nodeType":"ElementaryTypeName","src":"6052:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5991:93:45"},"returnParameters":{"id":12783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12801,"src":"6108:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12781,"name":"bytes","nodeType":"ElementaryTypeName","src":"6108:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6107:14:45"},"scope":12931,"src":"5964:326:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12817,"nodeType":"Block","src":"6566:101:45","statements":[{"expression":{"arguments":[{"id":12812,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12804,"src":"6604:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12813,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12806,"src":"6612:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":12814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6618:41:45","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":12811,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[12818,12847],"referencedDeclaration":12847,"src":"6583:20:45","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":12815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6583:77:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12810,"id":12816,"nodeType":"Return","src":"6576:84:45"}]},"documentation":{"id":12802,"nodeType":"StructuredDocumentation","src":"6296:168:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":12818,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6478:20:45","nodeType":"FunctionDefinition","parameters":{"id":12807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12804,"mutability":"mutable","name":"target","nameLocation":"6507:6:45","nodeType":"VariableDeclaration","scope":12818,"src":"6499:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12803,"name":"address","nodeType":"ElementaryTypeName","src":"6499:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12806,"mutability":"mutable","name":"data","nameLocation":"6528:4:45","nodeType":"VariableDeclaration","scope":12818,"src":"6515:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12805,"name":"bytes","nodeType":"ElementaryTypeName","src":"6515:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6498:35:45"},"returnParameters":{"id":12810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12818,"src":"6552:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12808,"name":"bytes","nodeType":"ElementaryTypeName","src":"6552:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6551:14:45"},"scope":12931,"src":"6469:198:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12846,"nodeType":"Block","src":"7008:170:45","statements":[{"assignments":[12831,12833],"declarations":[{"constant":false,"id":12831,"mutability":"mutable","name":"success","nameLocation":"7024:7:45","nodeType":"VariableDeclaration","scope":12846,"src":"7019:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12830,"name":"bool","nodeType":"ElementaryTypeName","src":"7019:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12833,"mutability":"mutable","name":"returndata","nameLocation":"7046:10:45","nodeType":"VariableDeclaration","scope":12846,"src":"7033:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12832,"name":"bytes","nodeType":"ElementaryTypeName","src":"7033:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12838,"initialValue":{"arguments":[{"id":12836,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12823,"src":"7080:4:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12834,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12821,"src":"7060:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7067:12:45","memberName":"delegatecall","nodeType":"MemberAccess","src":"7060:19:45","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":12837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7060:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7018:67:45"},{"expression":{"arguments":[{"id":12840,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12821,"src":"7129:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12841,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12831,"src":"7137:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12842,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12833,"src":"7146:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12843,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12825,"src":"7158:12:45","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":12839,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12886,"src":"7102:26:45","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":12844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7102:69:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12829,"id":12845,"nodeType":"Return","src":"7095:76:45"}]},"documentation":{"id":12819,"nodeType":"StructuredDocumentation","src":"6673:175:45","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":12847,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6862:20:45","nodeType":"FunctionDefinition","parameters":{"id":12826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12821,"mutability":"mutable","name":"target","nameLocation":"6900:6:45","nodeType":"VariableDeclaration","scope":12847,"src":"6892:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12820,"name":"address","nodeType":"ElementaryTypeName","src":"6892:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12823,"mutability":"mutable","name":"data","nameLocation":"6929:4:45","nodeType":"VariableDeclaration","scope":12847,"src":"6916:17:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12822,"name":"bytes","nodeType":"ElementaryTypeName","src":"6916:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12825,"mutability":"mutable","name":"errorMessage","nameLocation":"6957:12:45","nodeType":"VariableDeclaration","scope":12847,"src":"6943:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12824,"name":"string","nodeType":"ElementaryTypeName","src":"6943:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6882:93:45"},"returnParameters":{"id":12829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12847,"src":"6994:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12827,"name":"bytes","nodeType":"ElementaryTypeName","src":"6994:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6993:14:45"},"scope":12931,"src":"6853:325:45","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12885,"nodeType":"Block","src":"7660:434:45","statements":[{"condition":{"id":12861,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12852,"src":"7674:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12883,"nodeType":"Block","src":"8030:58:45","statements":[{"expression":{"arguments":[{"id":12879,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12854,"src":"8052:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12880,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12856,"src":"8064:12:45","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":12878,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"8044:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":12881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8044:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12882,"nodeType":"ExpressionStatement","src":"8044:33:45"}]},"id":12884,"nodeType":"IfStatement","src":"7670:418:45","trueBody":{"id":12877,"nodeType":"Block","src":"7683:341:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12862,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12854,"src":"7701:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7712:6:45","memberName":"length","nodeType":"MemberAccess","src":"7701:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7722:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7701:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12874,"nodeType":"IfStatement","src":"7697:286:45","trueBody":{"id":12873,"nodeType":"Block","src":"7725:258:45","statements":[{"expression":{"arguments":[{"arguments":[{"id":12868,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12850,"src":"7927:6:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12867,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12619,"src":"7916:10:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":12869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7916:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":12870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7936:31:45","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":12866,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7908:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7908:60:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12872,"nodeType":"ExpressionStatement","src":"7908:60:45"}]}},{"expression":{"id":12875,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12854,"src":"8003:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12860,"id":12876,"nodeType":"Return","src":"7996:17:45"}]}}]},"documentation":{"id":12848,"nodeType":"StructuredDocumentation","src":"7184:277:45","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":12886,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7475:26:45","nodeType":"FunctionDefinition","parameters":{"id":12857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12850,"mutability":"mutable","name":"target","nameLocation":"7519:6:45","nodeType":"VariableDeclaration","scope":12886,"src":"7511:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12849,"name":"address","nodeType":"ElementaryTypeName","src":"7511:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12852,"mutability":"mutable","name":"success","nameLocation":"7540:7:45","nodeType":"VariableDeclaration","scope":12886,"src":"7535:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12851,"name":"bool","nodeType":"ElementaryTypeName","src":"7535:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12854,"mutability":"mutable","name":"returndata","nameLocation":"7570:10:45","nodeType":"VariableDeclaration","scope":12886,"src":"7557:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12853,"name":"bytes","nodeType":"ElementaryTypeName","src":"7557:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12856,"mutability":"mutable","name":"errorMessage","nameLocation":"7604:12:45","nodeType":"VariableDeclaration","scope":12886,"src":"7590:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12855,"name":"string","nodeType":"ElementaryTypeName","src":"7590:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7501:121:45"},"returnParameters":{"id":12860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12886,"src":"7646:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12858,"name":"bytes","nodeType":"ElementaryTypeName","src":"7646:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7645:14:45"},"scope":12931,"src":"7466:628:45","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12909,"nodeType":"Block","src":"8475:135:45","statements":[{"condition":{"id":12898,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12889,"src":"8489:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12907,"nodeType":"Block","src":"8546:58:45","statements":[{"expression":{"arguments":[{"id":12903,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12891,"src":"8568:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12904,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12893,"src":"8580:12:45","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":12902,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"8560:7:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":12905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12906,"nodeType":"ExpressionStatement","src":"8560:33:45"}]},"id":12908,"nodeType":"IfStatement","src":"8485:119:45","trueBody":{"id":12901,"nodeType":"Block","src":"8498:42:45","statements":[{"expression":{"id":12899,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12891,"src":"8519:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12897,"id":12900,"nodeType":"Return","src":"8512:17:45"}]}}]},"documentation":{"id":12887,"nodeType":"StructuredDocumentation","src":"8100:210:45","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":12910,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8324:16:45","nodeType":"FunctionDefinition","parameters":{"id":12894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12889,"mutability":"mutable","name":"success","nameLocation":"8355:7:45","nodeType":"VariableDeclaration","scope":12910,"src":"8350:12:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12888,"name":"bool","nodeType":"ElementaryTypeName","src":"8350:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12891,"mutability":"mutable","name":"returndata","nameLocation":"8385:10:45","nodeType":"VariableDeclaration","scope":12910,"src":"8372:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12890,"name":"bytes","nodeType":"ElementaryTypeName","src":"8372:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12893,"mutability":"mutable","name":"errorMessage","nameLocation":"8419:12:45","nodeType":"VariableDeclaration","scope":12910,"src":"8405:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12892,"name":"string","nodeType":"ElementaryTypeName","src":"8405:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8340:97:45"},"returnParameters":{"id":12897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12910,"src":"8461:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12895,"name":"bytes","nodeType":"ElementaryTypeName","src":"8461:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8460:14:45"},"scope":12931,"src":"8315:295:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12929,"nodeType":"Block","src":"8699:457:45","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12917,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12912,"src":"8775:10:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8786:6:45","memberName":"length","nodeType":"MemberAccess","src":"8775:17:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8795:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8775:21:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12927,"nodeType":"Block","src":"9105:45:45","statements":[{"expression":{"arguments":[{"id":12924,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12914,"src":"9126:12:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12923,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9119:6:45","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":12925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9119:20:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12926,"nodeType":"ExpressionStatement","src":"9119:20:45"}]},"id":12928,"nodeType":"IfStatement","src":"8771:379:45","trueBody":{"id":12922,"nodeType":"Block","src":"8798:301:45","statements":[{"AST":{"nodeType":"YulBlock","src":"8956:133:45","statements":[{"nodeType":"YulVariableDeclaration","src":"8974:40:45","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"9003:10:45"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8997:5:45"},"nodeType":"YulFunctionCall","src":"8997:17:45"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8978:15:45","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9042:2:45","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"9046:10:45"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9038:3:45"},"nodeType":"YulFunctionCall","src":"9038:19:45"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"9059:15:45"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9031:6:45"},"nodeType":"YulFunctionCall","src":"9031:44:45"},"nodeType":"YulExpressionStatement","src":"9031:44:45"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":12912,"isOffset":false,"isSlot":false,"src":"9003:10:45","valueSize":1},{"declaration":12912,"isOffset":false,"isSlot":false,"src":"9046:10:45","valueSize":1}],"id":12921,"nodeType":"InlineAssembly","src":"8947:142:45"}]}}]},"id":12930,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8625:7:45","nodeType":"FunctionDefinition","parameters":{"id":12915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12912,"mutability":"mutable","name":"returndata","nameLocation":"8646:10:45","nodeType":"VariableDeclaration","scope":12930,"src":"8633:23:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12911,"name":"bytes","nodeType":"ElementaryTypeName","src":"8633:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12914,"mutability":"mutable","name":"errorMessage","nameLocation":"8672:12:45","nodeType":"VariableDeclaration","scope":12930,"src":"8658:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12913,"name":"string","nodeType":"ElementaryTypeName","src":"8658:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8632:53:45"},"returnParameters":{"id":12916,"nodeType":"ParameterList","parameters":[],"src":"8699:0:45"},"scope":12931,"src":"8616:540:45","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":12932,"src":"194:8964:45","usedErrors":[]}],"src":"101:9058:45"},"id":45},"@openzeppelin/contracts/utils/Checkpoints.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Checkpoints.sol","exportedSymbols":{"Checkpoints":[14302],"Math":[16203],"SafeCast":[17744]},"id":14303,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":12933,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:46"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":12934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14303,"sourceUnit":16204,"src":"218:25:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./math/SafeCast.sol","id":12935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14303,"sourceUnit":17745,"src":"244:29:46","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Checkpoints","contractDependencies":[],"contractKind":"library","documentation":{"id":12936,"nodeType":"StructuredDocumentation","src":"275:432:46","text":" @dev This library defines the `History` struct, for checkpointing values as they change at different points in\n time, and later looking up past values by block number. See {Votes} as an example.\n To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new\n checkpoint for the current transaction block using the {push} function.\n _Available since v4.5._"},"fullyImplemented":true,"id":14302,"linearizedBaseContracts":[14302],"name":"Checkpoints","nameLocation":"716:11:46","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Checkpoints.History","id":12941,"members":[{"constant":false,"id":12940,"mutability":"mutable","name":"_checkpoints","nameLocation":"772:12:46","nodeType":"VariableDeclaration","scope":12941,"src":"759:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":12938,"nodeType":"UserDefinedTypeName","pathNode":{"id":12937,"name":"Checkpoint","nameLocations":["759:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"759:10:46"},"referencedDeclaration":12946,"src":"759:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":12939,"nodeType":"ArrayTypeName","src":"759:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"}],"name":"History","nameLocation":"741:7:46","nodeType":"StructDefinition","scope":14302,"src":"734:57:46","visibility":"public"},{"canonicalName":"Checkpoints.Checkpoint","id":12946,"members":[{"constant":false,"id":12943,"mutability":"mutable","name":"_blockNumber","nameLocation":"832:12:46","nodeType":"VariableDeclaration","scope":12946,"src":"825:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":12942,"name":"uint32","nodeType":"ElementaryTypeName","src":"825:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":12945,"mutability":"mutable","name":"_value","nameLocation":"862:6:46","nodeType":"VariableDeclaration","scope":12946,"src":"854:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":12944,"name":"uint224","nodeType":"ElementaryTypeName","src":"854:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"Checkpoint","nameLocation":"804:10:46","nodeType":"StructDefinition","scope":14302,"src":"797:78:46","visibility":"public"},{"body":{"id":13002,"nodeType":"Block","src":"1317:344:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12958,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12952,"src":"1335:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12959,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1349:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1355:6:46","memberName":"number","nodeType":"MemberAccess","src":"1349:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1335:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e6564","id":12962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1363:34:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""},"value":"Checkpoints: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""}],"id":12957,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1327:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12964,"nodeType":"ExpressionStatement","src":"1327:71:46"},{"assignments":[12966],"declarations":[{"constant":false,"id":12966,"mutability":"mutable","name":"key","nameLocation":"1415:3:46","nodeType":"VariableDeclaration","scope":13002,"src":"1408:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":12965,"name":"uint32","nodeType":"ElementaryTypeName","src":"1408:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":12971,"initialValue":{"arguments":[{"id":12969,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12952,"src":"1439:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12967,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"1421:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":12968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1430:8:46","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":16906,"src":"1421:17:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1421:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"1408:43:46"},{"assignments":[12973],"declarations":[{"constant":false,"id":12973,"mutability":"mutable","name":"len","nameLocation":"1470:3:46","nodeType":"VariableDeclaration","scope":13002,"src":"1462:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12977,"initialValue":{"expression":{"expression":{"id":12974,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12950,"src":"1476:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":12975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1481:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"1476:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":12976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1494:6:46","memberName":"length","nodeType":"MemberAccess","src":"1476:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1462:38:46"},{"assignments":[12979],"declarations":[{"constant":false,"id":12979,"mutability":"mutable","name":"pos","nameLocation":"1518:3:46","nodeType":"VariableDeclaration","scope":13002,"src":"1510:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12978,"name":"uint256","nodeType":"ElementaryTypeName","src":"1510:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12987,"initialValue":{"arguments":[{"expression":{"id":12981,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12950,"src":"1543:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":12982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1548:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"1543:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"id":12983,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12966,"src":"1562:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":12984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1567:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12985,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12973,"src":"1570:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12980,"name":"_upperBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13400,13817,14234],"referencedDeclaration":13400,"src":"1524:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint32,uint256,uint256) view returns (uint256)"}},"id":12986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:50:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1510:64:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12988,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12979,"src":"1591:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1591:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":12993,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12950,"src":"1620:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":12994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1625:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"1620:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12995,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12979,"src":"1639:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":12996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1639:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12992,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"1606:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":12998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":12999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1648:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"1606:48:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1591:63:46","trueExpression":{"hexValue":"30","id":12991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1602:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":12956,"id":13001,"nodeType":"Return","src":"1584:70:46"}]},"documentation":{"id":12947,"nodeType":"StructuredDocumentation","src":"881:336:46","text":" @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n before it is returned, or zero otherwise. Because the number returned corresponds to that at the end of the\n block, the requested block number must be in the past, excluding the current block."},"id":13003,"implemented":true,"kind":"function","modifiers":[],"name":"getAtBlock","nameLocation":"1231:10:46","nodeType":"FunctionDefinition","parameters":{"id":12953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12950,"mutability":"mutable","name":"self","nameLocation":"1258:4:46","nodeType":"VariableDeclaration","scope":13003,"src":"1242:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":12949,"nodeType":"UserDefinedTypeName","pathNode":{"id":12948,"name":"History","nameLocations":["1242:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"1242:7:46"},"referencedDeclaration":12941,"src":"1242:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":12952,"mutability":"mutable","name":"blockNumber","nameLocation":"1272:11:46","nodeType":"VariableDeclaration","scope":13003,"src":"1264:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1241:43:46"},"returnParameters":{"id":12956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13003,"src":"1308:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12954,"name":"uint256","nodeType":"ElementaryTypeName","src":"1308:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1307:9:46"},"scope":14302,"src":"1222:439:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13102,"nodeType":"Block","src":"2167:655:46","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13015,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"2185:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13016,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2199:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2205:6:46","memberName":"number","nodeType":"MemberAccess","src":"2199:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2185:26:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e6564","id":13019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2213:34:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""},"value":"Checkpoints: block not yet mined"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be","typeString":"literal_string \"Checkpoints: block not yet mined\""}],"id":13014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2177:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:71:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13021,"nodeType":"ExpressionStatement","src":"2177:71:46"},{"assignments":[13023],"declarations":[{"constant":false,"id":13023,"mutability":"mutable","name":"key","nameLocation":"2265:3:46","nodeType":"VariableDeclaration","scope":13102,"src":"2258:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13022,"name":"uint32","nodeType":"ElementaryTypeName","src":"2258:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"id":13028,"initialValue":{"arguments":[{"id":13026,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13009,"src":"2289:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13024,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"2271:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":13025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2280:8:46","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":16906,"src":"2271:17:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":13027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2271:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"VariableDeclarationStatement","src":"2258:43:46"},{"assignments":[13030],"declarations":[{"constant":false,"id":13030,"mutability":"mutable","name":"len","nameLocation":"2320:3:46","nodeType":"VariableDeclaration","scope":13102,"src":"2312:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13029,"name":"uint256","nodeType":"ElementaryTypeName","src":"2312:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13034,"initialValue":{"expression":{"expression":{"id":13031,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"2326:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2331:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"2326:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":13033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2344:6:46","memberName":"length","nodeType":"MemberAccess","src":"2326:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2312:38:46"},{"assignments":[13036],"declarations":[{"constant":false,"id":13036,"mutability":"mutable","name":"low","nameLocation":"2369:3:46","nodeType":"VariableDeclaration","scope":13102,"src":"2361:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13035,"name":"uint256","nodeType":"ElementaryTypeName","src":"2361:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13038,"initialValue":{"hexValue":"30","id":13037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2375:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2361:15:46"},{"assignments":[13040],"declarations":[{"constant":false,"id":13040,"mutability":"mutable","name":"high","nameLocation":"2394:4:46","nodeType":"VariableDeclaration","scope":13102,"src":"2386:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13039,"name":"uint256","nodeType":"ElementaryTypeName","src":"2386:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13042,"initialValue":{"id":13041,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"2401:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2386:18:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13043,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"2419:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":13044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2425:1:46","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2419:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13077,"nodeType":"IfStatement","src":"2415:242:46","trueBody":{"id":13076,"nodeType":"Block","src":"2428:229:46","statements":[{"assignments":[13047],"declarations":[{"constant":false,"id":13047,"mutability":"mutable","name":"mid","nameLocation":"2450:3:46","nodeType":"VariableDeclaration","scope":13076,"src":"2442:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13046,"name":"uint256","nodeType":"ElementaryTypeName","src":"2442:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13054,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13048,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"2456:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":13051,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13030,"src":"2472:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13049,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"2462:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":13050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2467:4:46","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":15707,"src":"2462:9:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":13052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2462:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2456:20:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2442:34:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13055,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13023,"src":"2494:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"expression":{"id":13057,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"2514:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2519:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"2514:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"id":13059,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13047,"src":"2533:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13056,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"2500:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2500:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2538:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"2500:50:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2494:56:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13074,"nodeType":"Block","src":"2601:46:46","statements":[{"expression":{"id":13072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13068,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"2619:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13069,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13047,"src":"2625:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2631:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2625:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2619:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13073,"nodeType":"ExpressionStatement","src":"2619:13:46"}]},"id":13075,"nodeType":"IfStatement","src":"2490:157:46","trueBody":{"id":13067,"nodeType":"Block","src":"2552:43:46","statements":[{"expression":{"id":13065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13063,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13040,"src":"2570:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13064,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13047,"src":"2577:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2570:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13066,"nodeType":"ExpressionStatement","src":"2570:10:46"}]}}]}},{"assignments":[13079],"declarations":[{"constant":false,"id":13079,"mutability":"mutable","name":"pos","nameLocation":"2675:3:46","nodeType":"VariableDeclaration","scope":13102,"src":"2667:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13078,"name":"uint256","nodeType":"ElementaryTypeName","src":"2667:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13087,"initialValue":{"arguments":[{"expression":{"id":13081,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"2700:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2705:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"2700:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"id":13083,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13023,"src":"2719:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13084,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13036,"src":"2724:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13085,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13040,"src":"2729:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13080,"name":"_upperBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13400,13817,14234],"referencedDeclaration":13400,"src":"2681:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint32,uint256,uint256) view returns (uint256)"}},"id":13086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2681:53:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2667:67:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13088,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13079,"src":"2752:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2759:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2752:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13093,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"2781:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2786:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"2781:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13095,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13079,"src":"2800:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2800:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13092,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"2767:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2809:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"2767:48:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2752:63:46","trueExpression":{"hexValue":"30","id":13091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2763:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":13013,"id":13101,"nodeType":"Return","src":"2745:70:46"}]},"documentation":{"id":13004,"nodeType":"StructuredDocumentation","src":"1667:386:46","text":" @dev Returns the value at a given block number. If a checkpoint is not available at that block, the closest one\n before it is returned, or zero otherwise. Similar to {upperLookup} but optimized for the case when the searched\n checkpoint is probably \"recent\", defined as being among the last sqrt(N) checkpoints where N is the number of\n checkpoints."},"id":13103,"implemented":true,"kind":"function","modifiers":[],"name":"getAtProbablyRecentBlock","nameLocation":"2067:24:46","nodeType":"FunctionDefinition","parameters":{"id":13010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13007,"mutability":"mutable","name":"self","nameLocation":"2108:4:46","nodeType":"VariableDeclaration","scope":13103,"src":"2092:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13006,"nodeType":"UserDefinedTypeName","pathNode":{"id":13005,"name":"History","nameLocations":["2092:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"2092:7:46"},"referencedDeclaration":12941,"src":"2092:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":13009,"mutability":"mutable","name":"blockNumber","nameLocation":"2122:11:46","nodeType":"VariableDeclaration","scope":13103,"src":"2114:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13008,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2091:43:46"},"returnParameters":{"id":13013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13103,"src":"2158:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13011,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2157:9:46"},"scope":14302,"src":"2058:764:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13130,"nodeType":"Block","src":"3087:110:46","statements":[{"expression":{"arguments":[{"expression":{"id":13117,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13107,"src":"3112:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3117:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"3112:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"arguments":[{"expression":{"id":13121,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3149:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3155:6:46","memberName":"number","nodeType":"MemberAccess","src":"3149:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13119,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"3131:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":13120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3140:8:46","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":16906,"src":"3131:17:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":13123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3131:31:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[{"id":13126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13109,"src":"3183:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13124,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"3164:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":13125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3173:9:46","memberName":"toUint224","nodeType":"MemberAccess","referencedDeclaration":16306,"src":"3164:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint224_$","typeString":"function (uint256) pure returns (uint224)"}},"id":13127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3164:25:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13116,"name":"_insert","nodeType":"Identifier","overloadedDeclarations":[13348,13765,14182],"referencedDeclaration":13348,"src":"3104:7:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint224_$returns$_t_uint224_$_t_uint224_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint32,uint224) returns (uint224,uint224)"}},"id":13128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3104:86:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint224_$_t_uint224_$","typeString":"tuple(uint224,uint224)"}},"functionReturnParameters":13115,"id":13129,"nodeType":"Return","src":"3097:93:46"}]},"documentation":{"id":13104,"nodeType":"StructuredDocumentation","src":"2828:167:46","text":" @dev Pushes a value onto a History so that it is stored as the checkpoint for the current block.\n Returns previous value and new value."},"id":13131,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"3009:4:46","nodeType":"FunctionDefinition","parameters":{"id":13110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13107,"mutability":"mutable","name":"self","nameLocation":"3030:4:46","nodeType":"VariableDeclaration","scope":13131,"src":"3014:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13106,"nodeType":"UserDefinedTypeName","pathNode":{"id":13105,"name":"History","nameLocations":["3014:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"3014:7:46"},"referencedDeclaration":12941,"src":"3014:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":13109,"mutability":"mutable","name":"value","nameLocation":"3044:5:46","nodeType":"VariableDeclaration","scope":13131,"src":"3036:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13108,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3013:37:46"},"returnParameters":{"id":13115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13131,"src":"3069:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13111,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13131,"src":"3078:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13113,"name":"uint256","nodeType":"ElementaryTypeName","src":"3078:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3068:18:46"},"scope":14302,"src":"3000:197:46","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13164,"nodeType":"Block","src":"3600:59:46","statements":[{"expression":{"arguments":[{"id":13155,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13135,"src":"3622:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},{"arguments":[{"arguments":[{"id":13158,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13135,"src":"3638:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}],"id":13157,"name":"latest","nodeType":"Identifier","overloadedDeclarations":[13195,13612,14029],"referencedDeclaration":13195,"src":"3631:6:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_History_$12941_storage_ptr_$returns$_t_uint224_$","typeString":"function (struct Checkpoints.History storage pointer) view returns (uint224)"}},"id":13159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3631:12:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},{"id":13160,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13147,"src":"3645:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint224","typeString":"uint224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13156,"name":"op","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13145,"src":"3628:2:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":13161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13154,"name":"push","nodeType":"Identifier","overloadedDeclarations":[13131,13165,13500,13917],"referencedDeclaration":13131,"src":"3617:4:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_History_$12941_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct Checkpoints.History storage pointer,uint256) returns (uint256,uint256)"}},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3617:35:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":13153,"id":13163,"nodeType":"Return","src":"3610:42:46"}]},"documentation":{"id":13132,"nodeType":"StructuredDocumentation","src":"3203:221:46","text":" @dev Pushes a value onto a History, by updating the latest value using binary operation `op`. The new value will\n be set to `op(latest, delta)`.\n Returns previous value and new value."},"id":13165,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"3438:4:46","nodeType":"FunctionDefinition","parameters":{"id":13148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13135,"mutability":"mutable","name":"self","nameLocation":"3468:4:46","nodeType":"VariableDeclaration","scope":13165,"src":"3452:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13134,"nodeType":"UserDefinedTypeName","pathNode":{"id":13133,"name":"History","nameLocations":["3452:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"3452:7:46"},"referencedDeclaration":12941,"src":"3452:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"},{"constant":false,"id":13145,"mutability":"mutable","name":"op","nameLocation":"3532:2:46","nodeType":"VariableDeclaration","scope":13165,"src":"3482:52:46","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":13144,"nodeType":"FunctionTypeName","parameterTypes":{"id":13140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13144,"src":"3491:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13136,"name":"uint256","nodeType":"ElementaryTypeName","src":"3491:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13144,"src":"3500:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13138,"name":"uint256","nodeType":"ElementaryTypeName","src":"3500:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3490:18:46"},"returnParameterTypes":{"id":13143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13144,"src":"3523:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13141,"name":"uint256","nodeType":"ElementaryTypeName","src":"3523:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3522:9:46"},"src":"3482:52:46","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":13147,"mutability":"mutable","name":"delta","nameLocation":"3552:5:46","nodeType":"VariableDeclaration","scope":13165,"src":"3544:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13146,"name":"uint256","nodeType":"ElementaryTypeName","src":"3544:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3442:121:46"},"returnParameters":{"id":13153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13165,"src":"3582:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3582:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13165,"src":"3591:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3591:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3581:18:46"},"scope":14302,"src":"3429:230:46","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13194,"nodeType":"Block","src":"3849:135:46","statements":[{"assignments":[13175],"declarations":[{"constant":false,"id":13175,"mutability":"mutable","name":"pos","nameLocation":"3867:3:46","nodeType":"VariableDeclaration","scope":13194,"src":"3859:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13174,"name":"uint256","nodeType":"ElementaryTypeName","src":"3859:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13179,"initialValue":{"expression":{"expression":{"id":13176,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13169,"src":"3873:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3878:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"3873:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":13178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3891:6:46","memberName":"length","nodeType":"MemberAccess","src":"3873:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3859:38:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13180,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13175,"src":"3914:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3921:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3914:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13185,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13169,"src":"3943:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3948:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"3943:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13187,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13175,"src":"3962:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3968:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3962:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13184,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"3929:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3929:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3971:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"3929:48:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3914:63:46","trueExpression":{"hexValue":"30","id":13183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3925:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":13173,"id":13193,"nodeType":"Return","src":"3907:70:46"}]},"documentation":{"id":13166,"nodeType":"StructuredDocumentation","src":"3665:109:46","text":" @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints."},"id":13195,"implemented":true,"kind":"function","modifiers":[],"name":"latest","nameLocation":"3788:6:46","nodeType":"FunctionDefinition","parameters":{"id":13170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13169,"mutability":"mutable","name":"self","nameLocation":"3811:4:46","nodeType":"VariableDeclaration","scope":13195,"src":"3795:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13168,"nodeType":"UserDefinedTypeName","pathNode":{"id":13167,"name":"History","nameLocations":["3795:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"3795:7:46"},"referencedDeclaration":12941,"src":"3795:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"}],"src":"3794:22:46"},"returnParameters":{"id":13173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13195,"src":"3840:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13171,"name":"uint224","nodeType":"ElementaryTypeName","src":"3840:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3839:9:46"},"scope":14302,"src":"3779:205:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13243,"nodeType":"Block","src":"4358:279:46","statements":[{"assignments":[13209],"declarations":[{"constant":false,"id":13209,"mutability":"mutable","name":"pos","nameLocation":"4376:3:46","nodeType":"VariableDeclaration","scope":13243,"src":"4368:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13208,"name":"uint256","nodeType":"ElementaryTypeName","src":"4368:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13213,"initialValue":{"expression":{"expression":{"id":13210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"4382:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4387:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"4382:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":13212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4400:6:46","memberName":"length","nodeType":"MemberAccess","src":"4382:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4368:38:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13214,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"4420:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4427:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4420:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13241,"nodeType":"Block","src":"4481:150:46","statements":[{"assignments":[13225],"declarations":[{"constant":false,"id":13225,"mutability":"mutable","name":"ckpt","nameLocation":"4513:4:46","nodeType":"VariableDeclaration","scope":13241,"src":"4495:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint"},"typeName":{"id":13224,"nodeType":"UserDefinedTypeName","pathNode":{"id":13223,"name":"Checkpoint","nameLocations":["4495:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"4495:10:46"},"referencedDeclaration":12946,"src":"4495:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"visibility":"internal"}],"id":13233,"initialValue":{"arguments":[{"expression":{"id":13227,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"4534:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4539:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"4534:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13229,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13209,"src":"4553:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4559:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4553:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13226,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"4520:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4495:66:46"},{"expression":{"components":[{"hexValue":"74727565","id":13234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4583:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":13235,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13225,"src":"4589:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":13236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4594:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"4589:17:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":13237,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13225,"src":"4608:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":13238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4613:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"4608:11:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4582:38:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint32_$_t_uint224_$","typeString":"tuple(bool,uint32,uint224)"}},"functionReturnParameters":13207,"id":13240,"nodeType":"Return","src":"4575:45:46"}]},"id":13242,"nodeType":"IfStatement","src":"4416:215:46","trueBody":{"id":13222,"nodeType":"Block","src":"4430:45:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":13217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4452:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":13218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4459:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":13219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4462:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":13220,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4451:13:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0,int_const 0)"}},"functionReturnParameters":13207,"id":13221,"nodeType":"Return","src":"4444:20:46"}]}}]},"documentation":{"id":13196,"nodeType":"StructuredDocumentation","src":"3990:168:46","text":" @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n in the most recent checkpoint."},"id":13244,"implemented":true,"kind":"function","modifiers":[],"name":"latestCheckpoint","nameLocation":"4172:16:46","nodeType":"FunctionDefinition","parameters":{"id":13200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13199,"mutability":"mutable","name":"self","nameLocation":"4205:4:46","nodeType":"VariableDeclaration","scope":13244,"src":"4189:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13198,"nodeType":"UserDefinedTypeName","pathNode":{"id":13197,"name":"History","nameLocations":["4189:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"4189:7:46"},"referencedDeclaration":12941,"src":"4189:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"}],"src":"4188:22:46"},"returnParameters":{"id":13207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13202,"mutability":"mutable","name":"exists","nameLocation":"4276:6:46","nodeType":"VariableDeclaration","scope":13244,"src":"4271:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13201,"name":"bool","nodeType":"ElementaryTypeName","src":"4271:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13204,"mutability":"mutable","name":"_blockNumber","nameLocation":"4303:12:46","nodeType":"VariableDeclaration","scope":13244,"src":"4296:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13203,"name":"uint32","nodeType":"ElementaryTypeName","src":"4296:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13206,"mutability":"mutable","name":"_value","nameLocation":"4337:6:46","nodeType":"VariableDeclaration","scope":13244,"src":"4329:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13205,"name":"uint224","nodeType":"ElementaryTypeName","src":"4329:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"4257:96:46"},"scope":14302,"src":"4163:474:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13257,"nodeType":"Block","src":"4775:48:46","statements":[{"expression":{"expression":{"expression":{"id":13253,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13248,"src":"4792:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History storage pointer"}},"id":13254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4797:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":12940,"src":"4792:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint storage ref[] storage ref"}},"id":13255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4810:6:46","memberName":"length","nodeType":"MemberAccess","src":"4792:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13252,"id":13256,"nodeType":"Return","src":"4785:31:46"}]},"documentation":{"id":13245,"nodeType":"StructuredDocumentation","src":"4643:57:46","text":" @dev Returns the number of checkpoint."},"id":13258,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"4714:6:46","nodeType":"FunctionDefinition","parameters":{"id":13249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13248,"mutability":"mutable","name":"self","nameLocation":"4737:4:46","nodeType":"VariableDeclaration","scope":13258,"src":"4721:20:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"},"typeName":{"id":13247,"nodeType":"UserDefinedTypeName","pathNode":{"id":13246,"name":"History","nameLocations":["4721:7:46"],"nodeType":"IdentifierPath","referencedDeclaration":12941,"src":"4721:7:46"},"referencedDeclaration":12941,"src":"4721:7:46","typeDescriptions":{"typeIdentifier":"t_struct$_History_$12941_storage_ptr","typeString":"struct Checkpoints.History"}},"visibility":"internal"}],"src":"4720:22:46"},"returnParameters":{"id":13252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13258,"src":"4766:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13250,"name":"uint256","nodeType":"ElementaryTypeName","src":"4766:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4765:9:46"},"scope":14302,"src":"4705:118:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13347,"nodeType":"Block","src":"5135:743:46","statements":[{"assignments":[13275],"declarations":[{"constant":false,"id":13275,"mutability":"mutable","name":"pos","nameLocation":"5153:3:46","nodeType":"VariableDeclaration","scope":13347,"src":"5145:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13274,"name":"uint256","nodeType":"ElementaryTypeName","src":"5145:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13278,"initialValue":{"expression":{"id":13276,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"5159:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},"id":13277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5164:6:46","memberName":"length","nodeType":"MemberAccess","src":"5159:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5145:25:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13279,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13275,"src":"5185:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5191:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5185:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13345,"nodeType":"Block","src":"5759:113:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":13336,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"5809:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13337,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13267,"src":"5822:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13335,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12946,"src":"5783:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint storage pointer)"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5795:12:46","5814:6:46"],"names":["_blockNumber","_value"],"nodeType":"FunctionCall","src":"5783:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}],"expression":{"id":13332,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"5773:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},"id":13334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5778:4:46","memberName":"push","nodeType":"MemberAccess","src":"5773:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$12946_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,struct Checkpoints.Checkpoint storage ref)"}},"id":13339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5773:57:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13340,"nodeType":"ExpressionStatement","src":"5773:57:46"},{"expression":{"components":[{"hexValue":"30","id":13341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5852:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13267,"src":"5855:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13343,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5851:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint224_$","typeString":"tuple(int_const 0,uint224)"}},"functionReturnParameters":13273,"id":13344,"nodeType":"Return","src":"5844:17:46"}]},"id":13346,"nodeType":"IfStatement","src":"5181:691:46","trueBody":{"id":13331,"nodeType":"Block","src":"5194:559:46","statements":[{"assignments":[13284],"declarations":[{"constant":false,"id":13284,"mutability":"mutable","name":"last","nameLocation":"5278:4:46","nodeType":"VariableDeclaration","scope":13331,"src":"5260:22:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint"},"typeName":{"id":13283,"nodeType":"UserDefinedTypeName","pathNode":{"id":13282,"name":"Checkpoint","nameLocations":["5260:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"5260:10:46"},"referencedDeclaration":12946,"src":"5260:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"visibility":"internal"}],"id":13291,"initialValue":{"arguments":[{"id":13286,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"5299:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13287,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13275,"src":"5305:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5311:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5305:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13285,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"5285:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5285:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5260:53:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13293,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"5388:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":13294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5393:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"5388:17:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13295,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"5409:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"5388:24:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e743a20696e76616c6964206b6579","id":13297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5414:25:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""},"value":"Checkpoint: invalid key"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""}],"id":13292,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5380:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5380:60:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13299,"nodeType":"ExpressionStatement","src":"5380:60:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13300,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"5504:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":13301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5509:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"5504:17:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13302,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"5525:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"5504:24:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13324,"nodeType":"Block","src":"5612:90:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":13319,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13265,"src":"5666:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13320,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13267,"src":"5679:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13318,"name":"Checkpoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12946,"src":"5640:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint storage pointer)"}},"id":13321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5652:12:46","5671:6:46"],"names":["_blockNumber","_value"],"nodeType":"FunctionCall","src":"5640:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}],"expression":{"id":13315,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"5630:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},"id":13317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5635:4:46","memberName":"push","nodeType":"MemberAccess","src":"5630:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint_$12946_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,struct Checkpoints.Checkpoint storage ref)"}},"id":13322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5630:57:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13323,"nodeType":"ExpressionStatement","src":"5630:57:46"}]},"id":13325,"nodeType":"IfStatement","src":"5500:202:46","trueBody":{"id":13314,"nodeType":"Block","src":"5530:76:46","statements":[{"expression":{"id":13312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":13305,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13263,"src":"5562:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13306,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13275,"src":"5568:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5574:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5568:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13304,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"5548:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5548:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5577:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"5548:35:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13311,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13267,"src":"5586:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"5548:43:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13313,"nodeType":"ExpressionStatement","src":"5548:43:46"}]}},{"expression":{"components":[{"expression":{"id":13326,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13284,"src":"5723:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_memory_ptr","typeString":"struct Checkpoints.Checkpoint memory"}},"id":13327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5728:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":12945,"src":"5723:11:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},{"id":13328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13267,"src":"5736:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5722:20:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint224_$_t_uint224_$","typeString":"tuple(uint224,uint224)"}},"functionReturnParameters":13273,"id":13330,"nodeType":"Return","src":"5715:27:46"}]}}]},"documentation":{"id":13259,"nodeType":"StructuredDocumentation","src":"4829:165:46","text":" @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n or by updating the last one."},"id":13348,"implemented":true,"kind":"function","modifiers":[],"name":"_insert","nameLocation":"5008:7:46","nodeType":"FunctionDefinition","parameters":{"id":13268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13263,"mutability":"mutable","name":"self","nameLocation":"5046:4:46","nodeType":"VariableDeclaration","scope":13348,"src":"5025:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":13261,"nodeType":"UserDefinedTypeName","pathNode":{"id":13260,"name":"Checkpoint","nameLocations":["5025:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"5025:10:46"},"referencedDeclaration":12946,"src":"5025:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":13262,"nodeType":"ArrayTypeName","src":"5025:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":13265,"mutability":"mutable","name":"key","nameLocation":"5067:3:46","nodeType":"VariableDeclaration","scope":13348,"src":"5060:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13264,"name":"uint32","nodeType":"ElementaryTypeName","src":"5060:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13267,"mutability":"mutable","name":"value","nameLocation":"5088:5:46","nodeType":"VariableDeclaration","scope":13348,"src":"5080:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13266,"name":"uint224","nodeType":"ElementaryTypeName","src":"5080:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"5015:84:46"},"returnParameters":{"id":13273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13348,"src":"5117:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13269,"name":"uint224","nodeType":"ElementaryTypeName","src":"5117:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"},{"constant":false,"id":13272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13348,"src":"5126:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13271,"name":"uint224","nodeType":"ElementaryTypeName","src":"5126:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"5116:18:46"},"scope":14302,"src":"4999:879:46","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13399,"nodeType":"Block","src":"6372:275:46","statements":[{"body":{"id":13395,"nodeType":"Block","src":"6401:219:46","statements":[{"assignments":[13368],"declarations":[{"constant":false,"id":13368,"mutability":"mutable","name":"mid","nameLocation":"6423:3:46","nodeType":"VariableDeclaration","scope":13395,"src":"6415:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13367,"name":"uint256","nodeType":"ElementaryTypeName","src":"6415:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13374,"initialValue":{"arguments":[{"id":13371,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13357,"src":"6442:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13372,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"6447:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13369,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"6429:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":13370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6434:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"6429:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6429:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6415:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13376,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13353,"src":"6484:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},{"id":13377,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"6490:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13375,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"6470:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6470:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6495:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"6470:37:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13380,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"6510:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"6470:43:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13393,"nodeType":"Block","src":"6564:46:46","statements":[{"expression":{"id":13391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13387,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13357,"src":"6582:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13388,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"6588:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6594:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6588:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6582:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13392,"nodeType":"ExpressionStatement","src":"6582:13:46"}]},"id":13394,"nodeType":"IfStatement","src":"6466:144:46","trueBody":{"id":13386,"nodeType":"Block","src":"6515:43:46","statements":[{"expression":{"id":13384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13382,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"6533:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13383,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"6540:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6533:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13385,"nodeType":"ExpressionStatement","src":"6533:10:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13364,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13357,"src":"6389:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13365,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"6395:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6389:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13396,"nodeType":"WhileStatement","src":"6382:238:46"},{"expression":{"id":13397,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13359,"src":"6636:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13363,"id":13398,"nodeType":"Return","src":"6629:11:46"}]},"documentation":{"id":13349,"nodeType":"StructuredDocumentation","src":"5884:320:46","text":" @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":13400,"implemented":true,"kind":"function","modifiers":[],"name":"_upperBinaryLookup","nameLocation":"6218:18:46","nodeType":"FunctionDefinition","parameters":{"id":13360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13353,"mutability":"mutable","name":"self","nameLocation":"6267:4:46","nodeType":"VariableDeclaration","scope":13400,"src":"6246:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":13351,"nodeType":"UserDefinedTypeName","pathNode":{"id":13350,"name":"Checkpoint","nameLocations":["6246:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"6246:10:46"},"referencedDeclaration":12946,"src":"6246:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":13352,"nodeType":"ArrayTypeName","src":"6246:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":13355,"mutability":"mutable","name":"key","nameLocation":"6288:3:46","nodeType":"VariableDeclaration","scope":13400,"src":"6281:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13354,"name":"uint32","nodeType":"ElementaryTypeName","src":"6281:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13357,"mutability":"mutable","name":"low","nameLocation":"6309:3:46","nodeType":"VariableDeclaration","scope":13400,"src":"6301:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13356,"name":"uint256","nodeType":"ElementaryTypeName","src":"6301:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13359,"mutability":"mutable","name":"high","nameLocation":"6330:4:46","nodeType":"VariableDeclaration","scope":13400,"src":"6322:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13358,"name":"uint256","nodeType":"ElementaryTypeName","src":"6322:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6236:104:46"},"returnParameters":{"id":13363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13400,"src":"6363:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6363:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6362:9:46"},"scope":14302,"src":"6209:438:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13451,"nodeType":"Block","src":"7150:275:46","statements":[{"body":{"id":13447,"nodeType":"Block","src":"7179:219:46","statements":[{"assignments":[13420],"declarations":[{"constant":false,"id":13420,"mutability":"mutable","name":"mid","nameLocation":"7201:3:46","nodeType":"VariableDeclaration","scope":13447,"src":"7193:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13419,"name":"uint256","nodeType":"ElementaryTypeName","src":"7193:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13426,"initialValue":{"arguments":[{"id":13423,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"7220:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13424,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13411,"src":"7225:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13421,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"7207:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":13422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7212:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"7207:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7207:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7193:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13405,"src":"7262:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"}},{"id":13429,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13420,"src":"7268:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13427,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13467,"src":"7248:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint_$12946_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint storage pointer)"}},"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7248:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint storage pointer"}},"id":13431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7273:12:46","memberName":"_blockNumber","nodeType":"MemberAccess","referencedDeclaration":12943,"src":"7248:37:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13432,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13407,"src":"7288:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"7248:43:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13445,"nodeType":"Block","src":"7345:43:46","statements":[{"expression":{"id":13443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13441,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13411,"src":"7363:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13442,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13420,"src":"7370:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7363:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13444,"nodeType":"ExpressionStatement","src":"7363:10:46"}]},"id":13446,"nodeType":"IfStatement","src":"7244:144:46","trueBody":{"id":13440,"nodeType":"Block","src":"7293:46:46","statements":[{"expression":{"id":13438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13434,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"7311:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13435,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13420,"src":"7317:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7323:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7317:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7311:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13439,"nodeType":"ExpressionStatement","src":"7311:13:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13416,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13409,"src":"7167:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13417,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13411,"src":"7173:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7167:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13448,"nodeType":"WhileStatement","src":"7160:238:46"},{"expression":{"id":13449,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13411,"src":"7414:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13415,"id":13450,"nodeType":"Return","src":"7407:11:46"}]},"documentation":{"id":13401,"nodeType":"StructuredDocumentation","src":"6653:329:46","text":" @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":13452,"implemented":true,"kind":"function","modifiers":[],"name":"_lowerBinaryLookup","nameLocation":"6996:18:46","nodeType":"FunctionDefinition","parameters":{"id":13412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13405,"mutability":"mutable","name":"self","nameLocation":"7045:4:46","nodeType":"VariableDeclaration","scope":13452,"src":"7024:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":13403,"nodeType":"UserDefinedTypeName","pathNode":{"id":13402,"name":"Checkpoint","nameLocations":["7024:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"7024:10:46"},"referencedDeclaration":12946,"src":"7024:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":13404,"nodeType":"ArrayTypeName","src":"7024:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":13407,"mutability":"mutable","name":"key","nameLocation":"7066:3:46","nodeType":"VariableDeclaration","scope":13452,"src":"7059:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13406,"name":"uint32","nodeType":"ElementaryTypeName","src":"7059:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13409,"mutability":"mutable","name":"low","nameLocation":"7087:3:46","nodeType":"VariableDeclaration","scope":13452,"src":"7079:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13408,"name":"uint256","nodeType":"ElementaryTypeName","src":"7079:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13411,"mutability":"mutable","name":"high","nameLocation":"7108:4:46","nodeType":"VariableDeclaration","scope":13452,"src":"7100:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13410,"name":"uint256","nodeType":"ElementaryTypeName","src":"7100:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7014:104:46"},"returnParameters":{"id":13415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13452,"src":"7141:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13413,"name":"uint256","nodeType":"ElementaryTypeName","src":"7141:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7140:9:46"},"scope":14302,"src":"6987:438:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13466,"nodeType":"Block","src":"7680:125:46","statements":[{"AST":{"nodeType":"YulBlock","src":"7699:100:46","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7720:1:46","type":"","value":"0"},{"name":"self.slot","nodeType":"YulIdentifier","src":"7723:9:46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7713:6:46"},"nodeType":"YulFunctionCall","src":"7713:20:46"},"nodeType":"YulExpressionStatement","src":"7713:20:46"},{"nodeType":"YulAssignment","src":"7746:43:46","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7775:1:46","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7778:4:46","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7765:9:46"},"nodeType":"YulFunctionCall","src":"7765:18:46"},{"name":"pos","nodeType":"YulIdentifier","src":"7785:3:46"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7761:3:46"},"nodeType":"YulFunctionCall","src":"7761:28:46"},"variableNames":[{"name":"result.slot","nodeType":"YulIdentifier","src":"7746:11:46"}]}]},"evmVersion":"london","externalReferences":[{"declaration":13459,"isOffset":false,"isSlot":false,"src":"7785:3:46","valueSize":1},{"declaration":13463,"isOffset":false,"isSlot":true,"src":"7746:11:46","suffix":"slot","valueSize":1},{"declaration":13457,"isOffset":false,"isSlot":true,"src":"7723:9:46","suffix":"slot","valueSize":1}],"id":13465,"nodeType":"InlineAssembly","src":"7690:109:46"}]},"documentation":{"id":13453,"nodeType":"StructuredDocumentation","src":"7431:132:46","text":" @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds."},"id":13467,"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAccess","nameLocation":"7577:13:46","nodeType":"FunctionDefinition","parameters":{"id":13460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13457,"mutability":"mutable","name":"self","nameLocation":"7612:4:46","nodeType":"VariableDeclaration","scope":13467,"src":"7591:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"},"typeName":{"baseType":{"id":13455,"nodeType":"UserDefinedTypeName","pathNode":{"id":13454,"name":"Checkpoint","nameLocations":["7591:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"7591:10:46"},"referencedDeclaration":12946,"src":"7591:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"id":13456,"nodeType":"ArrayTypeName","src":"7591:12:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$12946_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint[]"}},"visibility":"internal"},{"constant":false,"id":13459,"mutability":"mutable","name":"pos","nameLocation":"7626:3:46","nodeType":"VariableDeclaration","scope":13467,"src":"7618:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13458,"name":"uint256","nodeType":"ElementaryTypeName","src":"7618:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7590:40:46"},"returnParameters":{"id":13464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13463,"mutability":"mutable","name":"result","nameLocation":"7672:6:46","nodeType":"VariableDeclaration","scope":13467,"src":"7653:25:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"},"typeName":{"id":13462,"nodeType":"UserDefinedTypeName","pathNode":{"id":13461,"name":"Checkpoint","nameLocations":["7653:10:46"],"nodeType":"IdentifierPath","referencedDeclaration":12946,"src":"7653:10:46"},"referencedDeclaration":12946,"src":"7653:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$12946_storage_ptr","typeString":"struct Checkpoints.Checkpoint"}},"visibility":"internal"}],"src":"7652:27:46"},"scope":14302,"src":"7568:237:46","stateMutability":"pure","virtual":false,"visibility":"private"},{"canonicalName":"Checkpoints.Trace224","id":13472,"members":[{"constant":false,"id":13471,"mutability":"mutable","name":"_checkpoints","nameLocation":"7853:12:46","nodeType":"VariableDeclaration","scope":13472,"src":"7837:28:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"},"typeName":{"baseType":{"id":13469,"nodeType":"UserDefinedTypeName","pathNode":{"id":13468,"name":"Checkpoint224","nameLocations":["7837:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"7837:13:46"},"referencedDeclaration":13477,"src":"7837:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"id":13470,"nodeType":"ArrayTypeName","src":"7837:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"}},"visibility":"internal"}],"name":"Trace224","nameLocation":"7818:8:46","nodeType":"StructDefinition","scope":14302,"src":"7811:61:46","visibility":"public"},{"canonicalName":"Checkpoints.Checkpoint224","id":13477,"members":[{"constant":false,"id":13474,"mutability":"mutable","name":"_key","nameLocation":"7916:4:46","nodeType":"VariableDeclaration","scope":13477,"src":"7909:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13473,"name":"uint32","nodeType":"ElementaryTypeName","src":"7909:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13476,"mutability":"mutable","name":"_value","nameLocation":"7938:6:46","nodeType":"VariableDeclaration","scope":13477,"src":"7930:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13475,"name":"uint224","nodeType":"ElementaryTypeName","src":"7930:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"name":"Checkpoint224","nameLocation":"7885:13:46","nodeType":"StructDefinition","scope":14302,"src":"7878:73:46","visibility":"public"},{"body":{"id":13499,"nodeType":"Block","src":"8254:62:46","statements":[{"expression":{"arguments":[{"expression":{"id":13493,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13481,"src":"8279:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8284:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"8279:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"id":13495,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"8298:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13485,"src":"8303:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13492,"name":"_insert","nodeType":"Identifier","overloadedDeclarations":[13348,13765,14182],"referencedDeclaration":13765,"src":"8271:7:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint224_$returns$_t_uint224_$_t_uint224_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint32,uint224) returns (uint224,uint224)"}},"id":13497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8271:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint224_$_t_uint224_$","typeString":"tuple(uint224,uint224)"}},"functionReturnParameters":13491,"id":13498,"nodeType":"Return","src":"8264:45:46"}]},"documentation":{"id":13478,"nodeType":"StructuredDocumentation","src":"7957:162:46","text":" @dev Pushes a (`key`, `value`) pair into a Trace224 so that it is stored as the checkpoint.\n Returns previous value and new value."},"id":13500,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"8133:4:46","nodeType":"FunctionDefinition","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13481,"mutability":"mutable","name":"self","nameLocation":"8164:4:46","nodeType":"VariableDeclaration","scope":13500,"src":"8147:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13480,"nodeType":"UserDefinedTypeName","pathNode":{"id":13479,"name":"Trace224","nameLocations":["8147:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"8147:8:46"},"referencedDeclaration":13472,"src":"8147:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"},{"constant":false,"id":13483,"mutability":"mutable","name":"key","nameLocation":"8185:3:46","nodeType":"VariableDeclaration","scope":13500,"src":"8178:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13482,"name":"uint32","nodeType":"ElementaryTypeName","src":"8178:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13485,"mutability":"mutable","name":"value","nameLocation":"8206:5:46","nodeType":"VariableDeclaration","scope":13500,"src":"8198:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13484,"name":"uint224","nodeType":"ElementaryTypeName","src":"8198:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"8137:80:46"},"returnParameters":{"id":13491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13500,"src":"8236:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13487,"name":"uint224","nodeType":"ElementaryTypeName","src":"8236:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"},{"constant":false,"id":13490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13500,"src":"8245:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13489,"name":"uint224","nodeType":"ElementaryTypeName","src":"8245:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"8235:18:46"},"scope":14302,"src":"8124:192:46","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13539,"nodeType":"Block","src":"8554:207:46","statements":[{"assignments":[13512],"declarations":[{"constant":false,"id":13512,"mutability":"mutable","name":"len","nameLocation":"8572:3:46","nodeType":"VariableDeclaration","scope":13539,"src":"8564:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13511,"name":"uint256","nodeType":"ElementaryTypeName","src":"8564:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13516,"initialValue":{"expression":{"expression":{"id":13513,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13504,"src":"8578:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8583:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"8578:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},"id":13515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8596:6:46","memberName":"length","nodeType":"MemberAccess","src":"8578:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8564:38:46"},{"assignments":[13518],"declarations":[{"constant":false,"id":13518,"mutability":"mutable","name":"pos","nameLocation":"8620:3:46","nodeType":"VariableDeclaration","scope":13539,"src":"8612:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13517,"name":"uint256","nodeType":"ElementaryTypeName","src":"8612:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13526,"initialValue":{"arguments":[{"expression":{"id":13520,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13504,"src":"8645:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8650:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"8645:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"id":13522,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13506,"src":"8664:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":13523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8669:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13524,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13512,"src":"8672:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13519,"name":"_lowerBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13452,13869,14286],"referencedDeclaration":13869,"src":"8626:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint32,uint256,uint256) view returns (uint256)"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8626:50:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8612:64:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13527,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13518,"src":"8693:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13528,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13512,"src":"8700:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8693:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13532,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13504,"src":"8724:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8729:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"8724:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"id":13534,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13518,"src":"8743:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13531,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"8710:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8748:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"8710:44:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8693:61:46","trueExpression":{"hexValue":"30","id":13530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8706:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":13510,"id":13538,"nodeType":"Return","src":"8686:68:46"}]},"documentation":{"id":13501,"nodeType":"StructuredDocumentation","src":"8322:139:46","text":" @dev Returns the value in the oldest checkpoint with key greater or equal than the search key, or zero if there is none."},"id":13540,"implemented":true,"kind":"function","modifiers":[],"name":"lowerLookup","nameLocation":"8475:11:46","nodeType":"FunctionDefinition","parameters":{"id":13507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13504,"mutability":"mutable","name":"self","nameLocation":"8504:4:46","nodeType":"VariableDeclaration","scope":13540,"src":"8487:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13503,"nodeType":"UserDefinedTypeName","pathNode":{"id":13502,"name":"Trace224","nameLocations":["8487:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"8487:8:46"},"referencedDeclaration":13472,"src":"8487:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"},{"constant":false,"id":13506,"mutability":"mutable","name":"key","nameLocation":"8517:3:46","nodeType":"VariableDeclaration","scope":13540,"src":"8510:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13505,"name":"uint32","nodeType":"ElementaryTypeName","src":"8510:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8486:35:46"},"returnParameters":{"id":13510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13540,"src":"8545:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13508,"name":"uint224","nodeType":"ElementaryTypeName","src":"8545:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"8544:9:46"},"scope":14302,"src":"8466:295:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13581,"nodeType":"Block","src":"8976:209:46","statements":[{"assignments":[13552],"declarations":[{"constant":false,"id":13552,"mutability":"mutable","name":"len","nameLocation":"8994:3:46","nodeType":"VariableDeclaration","scope":13581,"src":"8986:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13551,"name":"uint256","nodeType":"ElementaryTypeName","src":"8986:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13556,"initialValue":{"expression":{"expression":{"id":13553,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13544,"src":"9000:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9005:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9000:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},"id":13555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9018:6:46","memberName":"length","nodeType":"MemberAccess","src":"9000:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8986:38:46"},{"assignments":[13558],"declarations":[{"constant":false,"id":13558,"mutability":"mutable","name":"pos","nameLocation":"9042:3:46","nodeType":"VariableDeclaration","scope":13581,"src":"9034:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13557,"name":"uint256","nodeType":"ElementaryTypeName","src":"9034:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13566,"initialValue":{"arguments":[{"expression":{"id":13560,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13544,"src":"9067:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9072:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9067:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"id":13562,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13546,"src":"9086:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"hexValue":"30","id":13563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9091:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13564,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"9094:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13559,"name":"_upperBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13400,13817,14234],"referencedDeclaration":13817,"src":"9048:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint32_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint32,uint256,uint256) view returns (uint256)"}},"id":13565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9048:50:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9034:64:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13567,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13558,"src":"9115:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9122:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9115:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13572,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13544,"src":"9144:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9149:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9144:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13574,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13558,"src":"9163:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9169:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9163:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13571,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"9130:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9130:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9172:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"9130:48:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9115:63:46","trueExpression":{"hexValue":"30","id":13570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9126:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":13550,"id":13580,"nodeType":"Return","src":"9108:70:46"}]},"documentation":{"id":13541,"nodeType":"StructuredDocumentation","src":"8767:116:46","text":" @dev Returns the value in the most recent checkpoint with key lower or equal than the search key."},"id":13582,"implemented":true,"kind":"function","modifiers":[],"name":"upperLookup","nameLocation":"8897:11:46","nodeType":"FunctionDefinition","parameters":{"id":13547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13544,"mutability":"mutable","name":"self","nameLocation":"8926:4:46","nodeType":"VariableDeclaration","scope":13582,"src":"8909:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13543,"nodeType":"UserDefinedTypeName","pathNode":{"id":13542,"name":"Trace224","nameLocations":["8909:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"8909:8:46"},"referencedDeclaration":13472,"src":"8909:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"},{"constant":false,"id":13546,"mutability":"mutable","name":"key","nameLocation":"8939:3:46","nodeType":"VariableDeclaration","scope":13582,"src":"8932:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13545,"name":"uint32","nodeType":"ElementaryTypeName","src":"8932:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8908:35:46"},"returnParameters":{"id":13550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13582,"src":"8967:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13548,"name":"uint224","nodeType":"ElementaryTypeName","src":"8967:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"8966:9:46"},"scope":14302,"src":"8888:297:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13611,"nodeType":"Block","src":"9376:135:46","statements":[{"assignments":[13592],"declarations":[{"constant":false,"id":13592,"mutability":"mutable","name":"pos","nameLocation":"9394:3:46","nodeType":"VariableDeclaration","scope":13611,"src":"9386:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13591,"name":"uint256","nodeType":"ElementaryTypeName","src":"9386:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13596,"initialValue":{"expression":{"expression":{"id":13593,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13586,"src":"9400:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9405:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9400:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},"id":13595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9418:6:46","memberName":"length","nodeType":"MemberAccess","src":"9400:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9386:38:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13597,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13592,"src":"9441:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9448:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9441:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13602,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13586,"src":"9470:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9475:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9470:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13604,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13592,"src":"9489:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9495:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9489:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13601,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"9456:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9456:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9498:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"9456:48:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9441:63:46","trueExpression":{"hexValue":"30","id":13600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9452:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":13590,"id":13610,"nodeType":"Return","src":"9434:70:46"}]},"documentation":{"id":13583,"nodeType":"StructuredDocumentation","src":"9191:109:46","text":" @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints."},"id":13612,"implemented":true,"kind":"function","modifiers":[],"name":"latest","nameLocation":"9314:6:46","nodeType":"FunctionDefinition","parameters":{"id":13587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13586,"mutability":"mutable","name":"self","nameLocation":"9338:4:46","nodeType":"VariableDeclaration","scope":13612,"src":"9321:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13585,"nodeType":"UserDefinedTypeName","pathNode":{"id":13584,"name":"Trace224","nameLocations":["9321:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"9321:8:46"},"referencedDeclaration":13472,"src":"9321:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"}],"src":"9320:23:46"},"returnParameters":{"id":13590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13612,"src":"9367:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13588,"name":"uint224","nodeType":"ElementaryTypeName","src":"9367:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"9366:9:46"},"scope":14302,"src":"9305:206:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13660,"nodeType":"Block","src":"9878:274:46","statements":[{"assignments":[13626],"declarations":[{"constant":false,"id":13626,"mutability":"mutable","name":"pos","nameLocation":"9896:3:46","nodeType":"VariableDeclaration","scope":13660,"src":"9888:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13625,"name":"uint256","nodeType":"ElementaryTypeName","src":"9888:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13630,"initialValue":{"expression":{"expression":{"id":13627,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"9902:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9907:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"9902:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},"id":13629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9920:6:46","memberName":"length","nodeType":"MemberAccess","src":"9902:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9888:38:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13631,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"9940:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9947:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9940:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13658,"nodeType":"Block","src":"10001:145:46","statements":[{"assignments":[13642],"declarations":[{"constant":false,"id":13642,"mutability":"mutable","name":"ckpt","nameLocation":"10036:4:46","nodeType":"VariableDeclaration","scope":13658,"src":"10015:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224"},"typeName":{"id":13641,"nodeType":"UserDefinedTypeName","pathNode":{"id":13640,"name":"Checkpoint224","nameLocations":["10015:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"10015:13:46"},"referencedDeclaration":13477,"src":"10015:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"visibility":"internal"}],"id":13650,"initialValue":{"arguments":[{"expression":{"id":13644,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13616,"src":"10057:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10062:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"10057:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13646,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13626,"src":"10076:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10082:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10076:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13643,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"10043:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10043:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10015:69:46"},{"expression":{"components":[{"hexValue":"74727565","id":13651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10106:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":13652,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13642,"src":"10112:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}},"id":13653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10117:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13474,"src":"10112:9:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"expression":{"id":13654,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13642,"src":"10123:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}},"id":13655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10128:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"10123:11:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10105:30:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint32_$_t_uint224_$","typeString":"tuple(bool,uint32,uint224)"}},"functionReturnParameters":13624,"id":13657,"nodeType":"Return","src":"10098:37:46"}]},"id":13659,"nodeType":"IfStatement","src":"9936:210:46","trueBody":{"id":13639,"nodeType":"Block","src":"9950:45:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":13634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9972:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":13635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9979:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":13636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9982:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":13637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9971:13:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0,int_const 0)"}},"functionReturnParameters":13624,"id":13638,"nodeType":"Return","src":"9964:20:46"}]}}]},"documentation":{"id":13613,"nodeType":"StructuredDocumentation","src":"9517:168:46","text":" @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n in the most recent checkpoint."},"id":13661,"implemented":true,"kind":"function","modifiers":[],"name":"latestCheckpoint","nameLocation":"9699:16:46","nodeType":"FunctionDefinition","parameters":{"id":13617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"self","nameLocation":"9733:4:46","nodeType":"VariableDeclaration","scope":13661,"src":"9716:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13615,"nodeType":"UserDefinedTypeName","pathNode":{"id":13614,"name":"Trace224","nameLocations":["9716:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"9716:8:46"},"referencedDeclaration":13472,"src":"9716:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"}],"src":"9715:23:46"},"returnParameters":{"id":13624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13619,"mutability":"mutable","name":"exists","nameLocation":"9804:6:46","nodeType":"VariableDeclaration","scope":13661,"src":"9799:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13618,"name":"bool","nodeType":"ElementaryTypeName","src":"9799:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13621,"mutability":"mutable","name":"_key","nameLocation":"9831:4:46","nodeType":"VariableDeclaration","scope":13661,"src":"9824:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13620,"name":"uint32","nodeType":"ElementaryTypeName","src":"9824:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13623,"mutability":"mutable","name":"_value","nameLocation":"9857:6:46","nodeType":"VariableDeclaration","scope":13661,"src":"9849:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13622,"name":"uint224","nodeType":"ElementaryTypeName","src":"9849:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"9785:88:46"},"scope":14302,"src":"9690:462:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13674,"nodeType":"Block","src":"10291:48:46","statements":[{"expression":{"expression":{"expression":{"id":13670,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13665,"src":"10308:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224 storage pointer"}},"id":13671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10313:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13471,"src":"10308:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage ref"}},"id":13672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10326:6:46","memberName":"length","nodeType":"MemberAccess","src":"10308:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13669,"id":13673,"nodeType":"Return","src":"10301:31:46"}]},"documentation":{"id":13662,"nodeType":"StructuredDocumentation","src":"10158:57:46","text":" @dev Returns the number of checkpoint."},"id":13675,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"10229:6:46","nodeType":"FunctionDefinition","parameters":{"id":13666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13665,"mutability":"mutable","name":"self","nameLocation":"10253:4:46","nodeType":"VariableDeclaration","scope":13675,"src":"10236:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"},"typeName":{"id":13664,"nodeType":"UserDefinedTypeName","pathNode":{"id":13663,"name":"Trace224","nameLocations":["10236:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13472,"src":"10236:8:46"},"referencedDeclaration":13472,"src":"10236:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace224_$13472_storage_ptr","typeString":"struct Checkpoints.Trace224"}},"visibility":"internal"}],"src":"10235:23:46"},"returnParameters":{"id":13669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13675,"src":"10282:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13667,"name":"uint256","nodeType":"ElementaryTypeName","src":"10282:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10281:9:46"},"scope":14302,"src":"10220:119:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13764,"nodeType":"Block","src":"10654:720:46","statements":[{"assignments":[13692],"declarations":[{"constant":false,"id":13692,"mutability":"mutable","name":"pos","nameLocation":"10672:3:46","nodeType":"VariableDeclaration","scope":13764,"src":"10664:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13691,"name":"uint256","nodeType":"ElementaryTypeName","src":"10664:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13695,"initialValue":{"expression":{"id":13693,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"10678:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},"id":13694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10683:6:46","memberName":"length","nodeType":"MemberAccess","src":"10678:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10664:25:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13696,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"10704:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10710:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10704:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13762,"nodeType":"Block","src":"11260:108:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":13753,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"11305:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"11318:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13752,"name":"Checkpoint224","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13477,"src":"11284:13:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11299:4:46","11310:6:46"],"names":["_key","_value"],"nodeType":"FunctionCall","src":"11284:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}],"expression":{"id":13749,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"11274:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},"id":13751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11279:4:46","memberName":"push","nodeType":"MemberAccess","src":"11274:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint224_$13477_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,struct Checkpoints.Checkpoint224 storage ref)"}},"id":13756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11274:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13757,"nodeType":"ExpressionStatement","src":"11274:52:46"},{"expression":{"components":[{"hexValue":"30","id":13758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11348:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"11351:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13760,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11347:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint224_$","typeString":"tuple(int_const 0,uint224)"}},"functionReturnParameters":13690,"id":13761,"nodeType":"Return","src":"11340:17:46"}]},"id":13763,"nodeType":"IfStatement","src":"10700:668:46","trueBody":{"id":13748,"nodeType":"Block","src":"10713:541:46","statements":[{"assignments":[13701],"declarations":[{"constant":false,"id":13701,"mutability":"mutable","name":"last","nameLocation":"10800:4:46","nodeType":"VariableDeclaration","scope":13748,"src":"10779:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224"},"typeName":{"id":13700,"nodeType":"UserDefinedTypeName","pathNode":{"id":13699,"name":"Checkpoint224","nameLocations":["10779:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"10779:13:46"},"referencedDeclaration":13477,"src":"10779:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"visibility":"internal"}],"id":13708,"initialValue":{"arguments":[{"id":13703,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"10821:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13704,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"10827:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10833:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10827:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13702,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"10807:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10807:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10779:56:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13710,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"10910:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}},"id":13711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13474,"src":"10910:9:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13712,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"10923:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"10910:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e743a20696e76616c6964206b6579","id":13714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10928:25:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""},"value":"Checkpoint: invalid key"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""}],"id":13709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10902:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10902:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13716,"nodeType":"ExpressionStatement","src":"10902:52:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13717,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"11018:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}},"id":13718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11023:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13474,"src":"11018:9:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13719,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"11031:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11018:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13741,"nodeType":"Block","src":"11118:85:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":13736,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13682,"src":"11167:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":13737,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"11180:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint224","typeString":"uint224"}],"id":13735,"name":"Checkpoint224","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13477,"src":"11146:13:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11161:4:46","11172:6:46"],"names":["_key","_value"],"nodeType":"FunctionCall","src":"11146:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}],"expression":{"id":13732,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"11136:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},"id":13734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11141:4:46","memberName":"push","nodeType":"MemberAccess","src":"11136:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint224_$13477_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,struct Checkpoints.Checkpoint224 storage ref)"}},"id":13739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11136:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13740,"nodeType":"ExpressionStatement","src":"11136:52:46"}]},"id":13742,"nodeType":"IfStatement","src":"11014:189:46","trueBody":{"id":13731,"nodeType":"Block","src":"11036:76:46","statements":[{"expression":{"id":13729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":13722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13680,"src":"11068:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13723,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13692,"src":"11074:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11080:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11074:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13721,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"11054:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11054:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11083:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"11054:35:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13728,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"11092:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"11054:43:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"id":13730,"nodeType":"ExpressionStatement","src":"11054:43:46"}]}},{"expression":{"components":[{"expression":{"id":13743,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13701,"src":"11224:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_memory_ptr","typeString":"struct Checkpoints.Checkpoint224 memory"}},"id":13744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11229:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13476,"src":"11224:11:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},{"id":13745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13684,"src":"11237:5:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}}],"id":13746,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11223:20:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint224_$_t_uint224_$","typeString":"tuple(uint224,uint224)"}},"functionReturnParameters":13690,"id":13747,"nodeType":"Return","src":"11216:27:46"}]}}]},"documentation":{"id":13676,"nodeType":"StructuredDocumentation","src":"10345:165:46","text":" @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n or by updating the last one."},"id":13765,"implemented":true,"kind":"function","modifiers":[],"name":"_insert","nameLocation":"10524:7:46","nodeType":"FunctionDefinition","parameters":{"id":13685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13680,"mutability":"mutable","name":"self","nameLocation":"10565:4:46","nodeType":"VariableDeclaration","scope":13765,"src":"10541:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"},"typeName":{"baseType":{"id":13678,"nodeType":"UserDefinedTypeName","pathNode":{"id":13677,"name":"Checkpoint224","nameLocations":["10541:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"10541:13:46"},"referencedDeclaration":13477,"src":"10541:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"id":13679,"nodeType":"ArrayTypeName","src":"10541:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"}},"visibility":"internal"},{"constant":false,"id":13682,"mutability":"mutable","name":"key","nameLocation":"10586:3:46","nodeType":"VariableDeclaration","scope":13765,"src":"10579:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13681,"name":"uint32","nodeType":"ElementaryTypeName","src":"10579:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13684,"mutability":"mutable","name":"value","nameLocation":"10607:5:46","nodeType":"VariableDeclaration","scope":13765,"src":"10599:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13683,"name":"uint224","nodeType":"ElementaryTypeName","src":"10599:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"10531:87:46"},"returnParameters":{"id":13690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13765,"src":"10636:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13686,"name":"uint224","nodeType":"ElementaryTypeName","src":"10636:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"},{"constant":false,"id":13689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13765,"src":"10645:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":13688,"name":"uint224","nodeType":"ElementaryTypeName","src":"10645:7:46","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"10635:18:46"},"scope":14302,"src":"10515:859:46","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":13816,"nodeType":"Block","src":"11871:267:46","statements":[{"body":{"id":13812,"nodeType":"Block","src":"11900:211:46","statements":[{"assignments":[13785],"declarations":[{"constant":false,"id":13785,"mutability":"mutable","name":"mid","nameLocation":"11922:3:46","nodeType":"VariableDeclaration","scope":13812,"src":"11914:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13784,"name":"uint256","nodeType":"ElementaryTypeName","src":"11914:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13791,"initialValue":{"arguments":[{"id":13788,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13774,"src":"11941:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13789,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13776,"src":"11946:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13786,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"11928:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":13787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11933:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"11928:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11928:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11914:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13793,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13770,"src":"11983:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},{"id":13794,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"11989:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13792,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"11969:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11969:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11994:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13474,"src":"11969:29:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13797,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"12001:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"11969:35:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13810,"nodeType":"Block","src":"12055:46:46","statements":[{"expression":{"id":13808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13804,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13774,"src":"12073:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13805,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"12079:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12085:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12079:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12073:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13809,"nodeType":"ExpressionStatement","src":"12073:13:46"}]},"id":13811,"nodeType":"IfStatement","src":"11965:136:46","trueBody":{"id":13803,"nodeType":"Block","src":"12006:43:46","statements":[{"expression":{"id":13801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13799,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13776,"src":"12024:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13800,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13785,"src":"12031:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12024:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13802,"nodeType":"ExpressionStatement","src":"12024:10:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13781,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13774,"src":"11888:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13782,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13776,"src":"11894:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11888:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13813,"nodeType":"WhileStatement","src":"11881:230:46"},{"expression":{"id":13814,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13776,"src":"12127:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13780,"id":13815,"nodeType":"Return","src":"12120:11:46"}]},"documentation":{"id":13766,"nodeType":"StructuredDocumentation","src":"11380:320:46","text":" @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":13817,"implemented":true,"kind":"function","modifiers":[],"name":"_upperBinaryLookup","nameLocation":"11714:18:46","nodeType":"FunctionDefinition","parameters":{"id":13777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13770,"mutability":"mutable","name":"self","nameLocation":"11766:4:46","nodeType":"VariableDeclaration","scope":13817,"src":"11742:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"},"typeName":{"baseType":{"id":13768,"nodeType":"UserDefinedTypeName","pathNode":{"id":13767,"name":"Checkpoint224","nameLocations":["11742:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"11742:13:46"},"referencedDeclaration":13477,"src":"11742:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"id":13769,"nodeType":"ArrayTypeName","src":"11742:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"key","nameLocation":"11787:3:46","nodeType":"VariableDeclaration","scope":13817,"src":"11780:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13771,"name":"uint32","nodeType":"ElementaryTypeName","src":"11780:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13774,"mutability":"mutable","name":"low","nameLocation":"11808:3:46","nodeType":"VariableDeclaration","scope":13817,"src":"11800:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13773,"name":"uint256","nodeType":"ElementaryTypeName","src":"11800:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13776,"mutability":"mutable","name":"high","nameLocation":"11829:4:46","nodeType":"VariableDeclaration","scope":13817,"src":"11821:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13775,"name":"uint256","nodeType":"ElementaryTypeName","src":"11821:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11732:107:46"},"returnParameters":{"id":13780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13817,"src":"11862:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13778,"name":"uint256","nodeType":"ElementaryTypeName","src":"11862:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11861:9:46"},"scope":14302,"src":"11705:433:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13868,"nodeType":"Block","src":"12644:267:46","statements":[{"body":{"id":13864,"nodeType":"Block","src":"12673:211:46","statements":[{"assignments":[13837],"declarations":[{"constant":false,"id":13837,"mutability":"mutable","name":"mid","nameLocation":"12695:3:46","nodeType":"VariableDeclaration","scope":13864,"src":"12687:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13836,"name":"uint256","nodeType":"ElementaryTypeName","src":"12687:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13843,"initialValue":{"arguments":[{"id":13840,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"12714:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13841,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"12719:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13838,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"12701:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":13839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12706:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"12701:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12701:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12687:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":13850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":13845,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13822,"src":"12756:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"}},{"id":13846,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"12762:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13844,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":13884,"src":"12742:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint224_$13477_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint224 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint224 storage pointer)"}},"id":13847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12742:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224 storage pointer"}},"id":13848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12767:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13474,"src":"12742:29:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13849,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13824,"src":"12774:3:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"12742:35:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13862,"nodeType":"Block","src":"12831:43:46","statements":[{"expression":{"id":13860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13858,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"12849:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13859,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"12856:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12849:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13861,"nodeType":"ExpressionStatement","src":"12849:10:46"}]},"id":13863,"nodeType":"IfStatement","src":"12738:136:46","trueBody":{"id":13857,"nodeType":"Block","src":"12779:46:46","statements":[{"expression":{"id":13855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13851,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"12797:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13852,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13837,"src":"12803:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":13853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12809:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12797:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13856,"nodeType":"ExpressionStatement","src":"12797:13:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13833,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"12661:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13834,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"12667:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12661:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13865,"nodeType":"WhileStatement","src":"12654:230:46"},{"expression":{"id":13866,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"12900:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13832,"id":13867,"nodeType":"Return","src":"12893:11:46"}]},"documentation":{"id":13818,"nodeType":"StructuredDocumentation","src":"12144:329:46","text":" @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":13869,"implemented":true,"kind":"function","modifiers":[],"name":"_lowerBinaryLookup","nameLocation":"12487:18:46","nodeType":"FunctionDefinition","parameters":{"id":13829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13822,"mutability":"mutable","name":"self","nameLocation":"12539:4:46","nodeType":"VariableDeclaration","scope":13869,"src":"12515:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"},"typeName":{"baseType":{"id":13820,"nodeType":"UserDefinedTypeName","pathNode":{"id":13819,"name":"Checkpoint224","nameLocations":["12515:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"12515:13:46"},"referencedDeclaration":13477,"src":"12515:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"id":13821,"nodeType":"ArrayTypeName","src":"12515:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"}},"visibility":"internal"},{"constant":false,"id":13824,"mutability":"mutable","name":"key","nameLocation":"12560:3:46","nodeType":"VariableDeclaration","scope":13869,"src":"12553:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":13823,"name":"uint32","nodeType":"ElementaryTypeName","src":"12553:6:46","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":13826,"mutability":"mutable","name":"low","nameLocation":"12581:3:46","nodeType":"VariableDeclaration","scope":13869,"src":"12573:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13825,"name":"uint256","nodeType":"ElementaryTypeName","src":"12573:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13828,"mutability":"mutable","name":"high","nameLocation":"12602:4:46","nodeType":"VariableDeclaration","scope":13869,"src":"12594:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13827,"name":"uint256","nodeType":"ElementaryTypeName","src":"12594:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12505:107:46"},"returnParameters":{"id":13832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13831,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13869,"src":"12635:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13830,"name":"uint256","nodeType":"ElementaryTypeName","src":"12635:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12634:9:46"},"scope":14302,"src":"12478:433:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":13883,"nodeType":"Block","src":"13200:125:46","statements":[{"AST":{"nodeType":"YulBlock","src":"13219:100:46","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13240:1:46","type":"","value":"0"},{"name":"self.slot","nodeType":"YulIdentifier","src":"13243:9:46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13233:6:46"},"nodeType":"YulFunctionCall","src":"13233:20:46"},"nodeType":"YulExpressionStatement","src":"13233:20:46"},{"nodeType":"YulAssignment","src":"13266:43:46","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13295:1:46","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13298:4:46","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"13285:9:46"},"nodeType":"YulFunctionCall","src":"13285:18:46"},{"name":"pos","nodeType":"YulIdentifier","src":"13305:3:46"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13281:3:46"},"nodeType":"YulFunctionCall","src":"13281:28:46"},"variableNames":[{"name":"result.slot","nodeType":"YulIdentifier","src":"13266:11:46"}]}]},"evmVersion":"london","externalReferences":[{"declaration":13876,"isOffset":false,"isSlot":false,"src":"13305:3:46","valueSize":1},{"declaration":13880,"isOffset":false,"isSlot":true,"src":"13266:11:46","suffix":"slot","valueSize":1},{"declaration":13874,"isOffset":false,"isSlot":true,"src":"13243:9:46","suffix":"slot","valueSize":1}],"id":13882,"nodeType":"InlineAssembly","src":"13210:109:46"}]},"documentation":{"id":13870,"nodeType":"StructuredDocumentation","src":"12917:132:46","text":" @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds."},"id":13884,"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAccess","nameLocation":"13063:13:46","nodeType":"FunctionDefinition","parameters":{"id":13877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13874,"mutability":"mutable","name":"self","nameLocation":"13101:4:46","nodeType":"VariableDeclaration","scope":13884,"src":"13077:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"},"typeName":{"baseType":{"id":13872,"nodeType":"UserDefinedTypeName","pathNode":{"id":13871,"name":"Checkpoint224","nameLocations":["13077:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"13077:13:46"},"referencedDeclaration":13477,"src":"13077:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"id":13873,"nodeType":"ArrayTypeName","src":"13077:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint224_$13477_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint224[]"}},"visibility":"internal"},{"constant":false,"id":13876,"mutability":"mutable","name":"pos","nameLocation":"13115:3:46","nodeType":"VariableDeclaration","scope":13884,"src":"13107:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13875,"name":"uint256","nodeType":"ElementaryTypeName","src":"13107:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13076:43:46"},"returnParameters":{"id":13881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13880,"mutability":"mutable","name":"result","nameLocation":"13188:6:46","nodeType":"VariableDeclaration","scope":13884,"src":"13166:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"},"typeName":{"id":13879,"nodeType":"UserDefinedTypeName","pathNode":{"id":13878,"name":"Checkpoint224","nameLocations":["13166:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13477,"src":"13166:13:46"},"referencedDeclaration":13477,"src":"13166:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint224_$13477_storage_ptr","typeString":"struct Checkpoints.Checkpoint224"}},"visibility":"internal"}],"src":"13165:30:46"},"scope":14302,"src":"13054:271:46","stateMutability":"pure","virtual":false,"visibility":"private"},{"canonicalName":"Checkpoints.Trace160","id":13889,"members":[{"constant":false,"id":13888,"mutability":"mutable","name":"_checkpoints","nameLocation":"13373:12:46","nodeType":"VariableDeclaration","scope":13889,"src":"13357:28:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"},"typeName":{"baseType":{"id":13886,"nodeType":"UserDefinedTypeName","pathNode":{"id":13885,"name":"Checkpoint160","nameLocations":["13357:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"13357:13:46"},"referencedDeclaration":13894,"src":"13357:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"id":13887,"nodeType":"ArrayTypeName","src":"13357:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"}},"visibility":"internal"}],"name":"Trace160","nameLocation":"13338:8:46","nodeType":"StructDefinition","scope":14302,"src":"13331:61:46","visibility":"public"},{"canonicalName":"Checkpoints.Checkpoint160","id":13894,"members":[{"constant":false,"id":13891,"mutability":"mutable","name":"_key","nameLocation":"13436:4:46","nodeType":"VariableDeclaration","scope":13894,"src":"13429:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":13890,"name":"uint96","nodeType":"ElementaryTypeName","src":"13429:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":13893,"mutability":"mutable","name":"_value","nameLocation":"13458:6:46","nodeType":"VariableDeclaration","scope":13894,"src":"13450:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13892,"name":"uint160","nodeType":"ElementaryTypeName","src":"13450:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"name":"Checkpoint160","nameLocation":"13405:13:46","nodeType":"StructDefinition","scope":14302,"src":"13398:73:46","visibility":"public"},{"body":{"id":13916,"nodeType":"Block","src":"13774:62:46","statements":[{"expression":{"arguments":[{"expression":{"id":13910,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13898,"src":"13799:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13804:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"13799:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"id":13912,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"13818:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":13913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"13823:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":13909,"name":"_insert","nodeType":"Identifier","overloadedDeclarations":[13348,13765,14182],"referencedDeclaration":14182,"src":"13791:7:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint96_$_t_uint160_$returns$_t_uint160_$_t_uint160_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint96,uint160) returns (uint160,uint160)"}},"id":13914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13791:38:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_uint160_$","typeString":"tuple(uint160,uint160)"}},"functionReturnParameters":13908,"id":13915,"nodeType":"Return","src":"13784:45:46"}]},"documentation":{"id":13895,"nodeType":"StructuredDocumentation","src":"13477:162:46","text":" @dev Pushes a (`key`, `value`) pair into a Trace160 so that it is stored as the checkpoint.\n Returns previous value and new value."},"id":13917,"implemented":true,"kind":"function","modifiers":[],"name":"push","nameLocation":"13653:4:46","nodeType":"FunctionDefinition","parameters":{"id":13903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13898,"mutability":"mutable","name":"self","nameLocation":"13684:4:46","nodeType":"VariableDeclaration","scope":13917,"src":"13667:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":13897,"nodeType":"UserDefinedTypeName","pathNode":{"id":13896,"name":"Trace160","nameLocations":["13667:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"13667:8:46"},"referencedDeclaration":13889,"src":"13667:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"},{"constant":false,"id":13900,"mutability":"mutable","name":"key","nameLocation":"13705:3:46","nodeType":"VariableDeclaration","scope":13917,"src":"13698:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":13899,"name":"uint96","nodeType":"ElementaryTypeName","src":"13698:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"value","nameLocation":"13726:5:46","nodeType":"VariableDeclaration","scope":13917,"src":"13718:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13901,"name":"uint160","nodeType":"ElementaryTypeName","src":"13718:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"13657:80:46"},"returnParameters":{"id":13908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13917,"src":"13756:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13904,"name":"uint160","nodeType":"ElementaryTypeName","src":"13756:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":13907,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13917,"src":"13765:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13906,"name":"uint160","nodeType":"ElementaryTypeName","src":"13765:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"13755:18:46"},"scope":14302,"src":"13644:192:46","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13956,"nodeType":"Block","src":"14074:207:46","statements":[{"assignments":[13929],"declarations":[{"constant":false,"id":13929,"mutability":"mutable","name":"len","nameLocation":"14092:3:46","nodeType":"VariableDeclaration","scope":13956,"src":"14084:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13928,"name":"uint256","nodeType":"ElementaryTypeName","src":"14084:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13933,"initialValue":{"expression":{"expression":{"id":13930,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13921,"src":"14098:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14103:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14098:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},"id":13932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14116:6:46","memberName":"length","nodeType":"MemberAccess","src":"14098:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14084:38:46"},{"assignments":[13935],"declarations":[{"constant":false,"id":13935,"mutability":"mutable","name":"pos","nameLocation":"14140:3:46","nodeType":"VariableDeclaration","scope":13956,"src":"14132:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13934,"name":"uint256","nodeType":"ElementaryTypeName","src":"14132:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13943,"initialValue":{"arguments":[{"expression":{"id":13937,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13921,"src":"14165:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14170:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14165:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"id":13939,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13923,"src":"14184:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"hexValue":"30","id":13940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14189:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13941,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"14192:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13936,"name":"_lowerBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13452,13869,14286],"referencedDeclaration":14286,"src":"14146:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint96_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint96,uint256,uint256) view returns (uint256)"}},"id":13942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14146:50:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14132:64:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13944,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"14213:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13945,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13929,"src":"14220:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14213:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13949,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13921,"src":"14244:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14249:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14244:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"id":13951,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"14263:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13948,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"14230:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":13952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14230:37:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":13953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14268:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"14230:44:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":13954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14213:61:46","trueExpression":{"hexValue":"30","id":13947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14226:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":13927,"id":13955,"nodeType":"Return","src":"14206:68:46"}]},"documentation":{"id":13918,"nodeType":"StructuredDocumentation","src":"13842:139:46","text":" @dev Returns the value in the oldest checkpoint with key greater or equal than the search key, or zero if there is none."},"id":13957,"implemented":true,"kind":"function","modifiers":[],"name":"lowerLookup","nameLocation":"13995:11:46","nodeType":"FunctionDefinition","parameters":{"id":13924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13921,"mutability":"mutable","name":"self","nameLocation":"14024:4:46","nodeType":"VariableDeclaration","scope":13957,"src":"14007:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":13920,"nodeType":"UserDefinedTypeName","pathNode":{"id":13919,"name":"Trace160","nameLocations":["14007:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"14007:8:46"},"referencedDeclaration":13889,"src":"14007:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"},{"constant":false,"id":13923,"mutability":"mutable","name":"key","nameLocation":"14037:3:46","nodeType":"VariableDeclaration","scope":13957,"src":"14030:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":13922,"name":"uint96","nodeType":"ElementaryTypeName","src":"14030:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"14006:35:46"},"returnParameters":{"id":13927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13957,"src":"14065:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13925,"name":"uint160","nodeType":"ElementaryTypeName","src":"14065:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"14064:9:46"},"scope":14302,"src":"13986:295:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":13998,"nodeType":"Block","src":"14496:209:46","statements":[{"assignments":[13969],"declarations":[{"constant":false,"id":13969,"mutability":"mutable","name":"len","nameLocation":"14514:3:46","nodeType":"VariableDeclaration","scope":13998,"src":"14506:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13968,"name":"uint256","nodeType":"ElementaryTypeName","src":"14506:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13973,"initialValue":{"expression":{"expression":{"id":13970,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13961,"src":"14520:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14525:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14520:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},"id":13972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14538:6:46","memberName":"length","nodeType":"MemberAccess","src":"14520:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14506:38:46"},{"assignments":[13975],"declarations":[{"constant":false,"id":13975,"mutability":"mutable","name":"pos","nameLocation":"14562:3:46","nodeType":"VariableDeclaration","scope":13998,"src":"14554:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13974,"name":"uint256","nodeType":"ElementaryTypeName","src":"14554:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13983,"initialValue":{"arguments":[{"expression":{"id":13977,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13961,"src":"14587:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14592:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14587:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"id":13979,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13963,"src":"14606:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"hexValue":"30","id":13980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14611:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":13981,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13969,"src":"14614:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13976,"name":"_upperBinaryLookup","nodeType":"Identifier","overloadedDeclarations":[13400,13817,14234],"referencedDeclaration":14234,"src":"14568:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint96_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint96,uint256,uint256) view returns (uint256)"}},"id":13982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14568:50:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14554:64:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13984,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13975,"src":"14635:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14642:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14635:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":13989,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13961,"src":"14664:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":13990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14669:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14664:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13991,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13975,"src":"14683:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14689:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14683:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13988,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"14650:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":13994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14650:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":13995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14692:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"14650:48:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":13996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14635:63:46","trueExpression":{"hexValue":"30","id":13987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14646:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":13967,"id":13997,"nodeType":"Return","src":"14628:70:46"}]},"documentation":{"id":13958,"nodeType":"StructuredDocumentation","src":"14287:116:46","text":" @dev Returns the value in the most recent checkpoint with key lower or equal than the search key."},"id":13999,"implemented":true,"kind":"function","modifiers":[],"name":"upperLookup","nameLocation":"14417:11:46","nodeType":"FunctionDefinition","parameters":{"id":13964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13961,"mutability":"mutable","name":"self","nameLocation":"14446:4:46","nodeType":"VariableDeclaration","scope":13999,"src":"14429:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":13960,"nodeType":"UserDefinedTypeName","pathNode":{"id":13959,"name":"Trace160","nameLocations":["14429:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"14429:8:46"},"referencedDeclaration":13889,"src":"14429:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"},{"constant":false,"id":13963,"mutability":"mutable","name":"key","nameLocation":"14459:3:46","nodeType":"VariableDeclaration","scope":13999,"src":"14452:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":13962,"name":"uint96","nodeType":"ElementaryTypeName","src":"14452:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"14428:35:46"},"returnParameters":{"id":13967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13999,"src":"14487:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":13965,"name":"uint160","nodeType":"ElementaryTypeName","src":"14487:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"14486:9:46"},"scope":14302,"src":"14408:297:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14028,"nodeType":"Block","src":"14896:135:46","statements":[{"assignments":[14009],"declarations":[{"constant":false,"id":14009,"mutability":"mutable","name":"pos","nameLocation":"14914:3:46","nodeType":"VariableDeclaration","scope":14028,"src":"14906:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14008,"name":"uint256","nodeType":"ElementaryTypeName","src":"14906:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14013,"initialValue":{"expression":{"expression":{"id":14010,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14003,"src":"14920:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":14011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14925:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14920:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},"id":14012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14938:6:46","memberName":"length","nodeType":"MemberAccess","src":"14920:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14906:38:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14014,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14009,"src":"14961:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14968:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14961:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"arguments":[{"expression":{"id":14019,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14003,"src":"14990:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":14020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14995:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"14990:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14021,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14009,"src":"15009:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15015:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15009:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14018,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"14976:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14976:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":14025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15018:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"14976:48:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":14026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14961:63:46","trueExpression":{"hexValue":"30","id":14017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14972:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":14007,"id":14027,"nodeType":"Return","src":"14954:70:46"}]},"documentation":{"id":14000,"nodeType":"StructuredDocumentation","src":"14711:109:46","text":" @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints."},"id":14029,"implemented":true,"kind":"function","modifiers":[],"name":"latest","nameLocation":"14834:6:46","nodeType":"FunctionDefinition","parameters":{"id":14004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14003,"mutability":"mutable","name":"self","nameLocation":"14858:4:46","nodeType":"VariableDeclaration","scope":14029,"src":"14841:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":14002,"nodeType":"UserDefinedTypeName","pathNode":{"id":14001,"name":"Trace160","nameLocations":["14841:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"14841:8:46"},"referencedDeclaration":13889,"src":"14841:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"}],"src":"14840:23:46"},"returnParameters":{"id":14007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14029,"src":"14887:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14005,"name":"uint160","nodeType":"ElementaryTypeName","src":"14887:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"14886:9:46"},"scope":14302,"src":"14825:206:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14077,"nodeType":"Block","src":"15398:274:46","statements":[{"assignments":[14043],"declarations":[{"constant":false,"id":14043,"mutability":"mutable","name":"pos","nameLocation":"15416:3:46","nodeType":"VariableDeclaration","scope":14077,"src":"15408:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14042,"name":"uint256","nodeType":"ElementaryTypeName","src":"15408:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14047,"initialValue":{"expression":{"expression":{"id":14044,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14033,"src":"15422:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":14045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15427:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"15422:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},"id":14046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15440:6:46","memberName":"length","nodeType":"MemberAccess","src":"15422:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15408:38:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14048,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14043,"src":"15460:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15467:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15460:8:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14075,"nodeType":"Block","src":"15521:145:46","statements":[{"assignments":[14059],"declarations":[{"constant":false,"id":14059,"mutability":"mutable","name":"ckpt","nameLocation":"15556:4:46","nodeType":"VariableDeclaration","scope":14075,"src":"15535:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160"},"typeName":{"id":14058,"nodeType":"UserDefinedTypeName","pathNode":{"id":14057,"name":"Checkpoint160","nameLocations":["15535:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"15535:13:46"},"referencedDeclaration":13894,"src":"15535:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"visibility":"internal"}],"id":14067,"initialValue":{"arguments":[{"expression":{"id":14061,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14033,"src":"15577:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":14062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15582:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"15577:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14063,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14043,"src":"15596:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15602:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15596:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14060,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"15563:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15563:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15535:69:46"},{"expression":{"components":[{"hexValue":"74727565","id":14068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15626:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":14069,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14059,"src":"15632:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}},"id":14070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15637:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"15632:9:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"expression":{"id":14071,"name":"ckpt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14059,"src":"15643:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}},"id":14072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"15643:11:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"id":14073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15625:30:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint96_$_t_uint160_$","typeString":"tuple(bool,uint96,uint160)"}},"functionReturnParameters":14041,"id":14074,"nodeType":"Return","src":"15618:37:46"}]},"id":14076,"nodeType":"IfStatement","src":"15456:210:46","trueBody":{"id":14056,"nodeType":"Block","src":"15470:45:46","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":14051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15492:5:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":14052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15499:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":14053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15502:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":14054,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15491:13:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0,int_const 0)"}},"functionReturnParameters":14041,"id":14055,"nodeType":"Return","src":"15484:20:46"}]}}]},"documentation":{"id":14030,"nodeType":"StructuredDocumentation","src":"15037:168:46","text":" @dev Returns whether there is a checkpoint in the structure (i.e. it is not empty), and if so the key and value\n in the most recent checkpoint."},"id":14078,"implemented":true,"kind":"function","modifiers":[],"name":"latestCheckpoint","nameLocation":"15219:16:46","nodeType":"FunctionDefinition","parameters":{"id":14034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14033,"mutability":"mutable","name":"self","nameLocation":"15253:4:46","nodeType":"VariableDeclaration","scope":14078,"src":"15236:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":14032,"nodeType":"UserDefinedTypeName","pathNode":{"id":14031,"name":"Trace160","nameLocations":["15236:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"15236:8:46"},"referencedDeclaration":13889,"src":"15236:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"}],"src":"15235:23:46"},"returnParameters":{"id":14041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14036,"mutability":"mutable","name":"exists","nameLocation":"15324:6:46","nodeType":"VariableDeclaration","scope":14078,"src":"15319:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14035,"name":"bool","nodeType":"ElementaryTypeName","src":"15319:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14038,"mutability":"mutable","name":"_key","nameLocation":"15351:4:46","nodeType":"VariableDeclaration","scope":14078,"src":"15344:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14037,"name":"uint96","nodeType":"ElementaryTypeName","src":"15344:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14040,"mutability":"mutable","name":"_value","nameLocation":"15377:6:46","nodeType":"VariableDeclaration","scope":14078,"src":"15369:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14039,"name":"uint160","nodeType":"ElementaryTypeName","src":"15369:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"15305:88:46"},"scope":14302,"src":"15210:462:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14091,"nodeType":"Block","src":"15811:48:46","statements":[{"expression":{"expression":{"expression":{"id":14087,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14082,"src":"15828:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160 storage pointer"}},"id":14088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15833:12:46","memberName":"_checkpoints","nodeType":"MemberAccess","referencedDeclaration":13888,"src":"15828:17:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage ref"}},"id":14089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15846:6:46","memberName":"length","nodeType":"MemberAccess","src":"15828:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14086,"id":14090,"nodeType":"Return","src":"15821:31:46"}]},"documentation":{"id":14079,"nodeType":"StructuredDocumentation","src":"15678:57:46","text":" @dev Returns the number of checkpoint."},"id":14092,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"15749:6:46","nodeType":"FunctionDefinition","parameters":{"id":14083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14082,"mutability":"mutable","name":"self","nameLocation":"15773:4:46","nodeType":"VariableDeclaration","scope":14092,"src":"15756:21:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"},"typeName":{"id":14081,"nodeType":"UserDefinedTypeName","pathNode":{"id":14080,"name":"Trace160","nameLocations":["15756:8:46"],"nodeType":"IdentifierPath","referencedDeclaration":13889,"src":"15756:8:46"},"referencedDeclaration":13889,"src":"15756:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_Trace160_$13889_storage_ptr","typeString":"struct Checkpoints.Trace160"}},"visibility":"internal"}],"src":"15755:23:46"},"returnParameters":{"id":14086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14092,"src":"15802:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14084,"name":"uint256","nodeType":"ElementaryTypeName","src":"15802:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15801:9:46"},"scope":14302,"src":"15740:119:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14181,"nodeType":"Block","src":"16174:720:46","statements":[{"assignments":[14109],"declarations":[{"constant":false,"id":14109,"mutability":"mutable","name":"pos","nameLocation":"16192:3:46","nodeType":"VariableDeclaration","scope":14181,"src":"16184:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14108,"name":"uint256","nodeType":"ElementaryTypeName","src":"16184:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14112,"initialValue":{"expression":{"id":14110,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"16198:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},"id":14111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16203:6:46","memberName":"length","nodeType":"MemberAccess","src":"16198:11:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16184:25:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14113,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"16224:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16230:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16224:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14179,"nodeType":"Block","src":"16780:108:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":14170,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"16825:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":14171,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14101,"src":"16838:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":14169,"name":"Checkpoint160","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"16804:13:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16819:4:46","16830:6:46"],"names":["_key","_value"],"nodeType":"FunctionCall","src":"16804:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}],"expression":{"id":14166,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"16794:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},"id":14168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16799:4:46","memberName":"push","nodeType":"MemberAccess","src":"16794:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint160_$13894_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,struct Checkpoints.Checkpoint160 storage ref)"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16794:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14174,"nodeType":"ExpressionStatement","src":"16794:52:46"},{"expression":{"components":[{"hexValue":"30","id":14175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16868:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":14176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14101,"src":"16871:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"id":14177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16867:10:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint160_$","typeString":"tuple(int_const 0,uint160)"}},"functionReturnParameters":14107,"id":14178,"nodeType":"Return","src":"16860:17:46"}]},"id":14180,"nodeType":"IfStatement","src":"16220:668:46","trueBody":{"id":14165,"nodeType":"Block","src":"16233:541:46","statements":[{"assignments":[14118],"declarations":[{"constant":false,"id":14118,"mutability":"mutable","name":"last","nameLocation":"16320:4:46","nodeType":"VariableDeclaration","scope":14165,"src":"16299:25:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160"},"typeName":{"id":14117,"nodeType":"UserDefinedTypeName","pathNode":{"id":14116,"name":"Checkpoint160","nameLocations":["16299:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"16299:13:46"},"referencedDeclaration":13894,"src":"16299:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"visibility":"internal"}],"id":14125,"initialValue":{"arguments":[{"id":14120,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"16341:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14121,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"16347:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16353:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16347:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14119,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"16327:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16327:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16299:56:46"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14127,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14118,"src":"16430:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}},"id":14128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16435:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"16430:9:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":14129,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"16443:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"16430:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436865636b706f696e743a20696e76616c6964206b6579","id":14131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16448:25:46","typeDescriptions":{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""},"value":"Checkpoint: invalid key"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df","typeString":"literal_string \"Checkpoint: invalid key\""}],"id":14126,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16422:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16422:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14133,"nodeType":"ExpressionStatement","src":"16422:52:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14134,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14118,"src":"16538:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}},"id":14135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16543:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"16538:9:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14136,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"16551:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"16538:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14158,"nodeType":"Block","src":"16638:85:46","statements":[{"expression":{"arguments":[{"arguments":[{"id":14153,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14099,"src":"16687:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"id":14154,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14101,"src":"16700:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":14152,"name":"Checkpoint160","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"16666:13:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"type(struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16681:4:46","16692:6:46"],"names":["_key","_value"],"nodeType":"FunctionCall","src":"16666:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}],"expression":{"id":14149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"16656:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},"id":14151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16661:4:46","memberName":"push","nodeType":"MemberAccess","src":"16656:9:46","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_struct$_Checkpoint160_$13894_storage_$returns$__$bound_to$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,struct Checkpoints.Checkpoint160 storage ref)"}},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16656:52:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14157,"nodeType":"ExpressionStatement","src":"16656:52:46"}]},"id":14159,"nodeType":"IfStatement","src":"16534:189:46","trueBody":{"id":14148,"nodeType":"Block","src":"16556:76:46","statements":[{"expression":{"id":14146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":14139,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14097,"src":"16588:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14140,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14109,"src":"16594:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16600:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16594:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14138,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"16574:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16574:28:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":14144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16603:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"16574:35:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14145,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14101,"src":"16612:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"16574:43:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":14147,"nodeType":"ExpressionStatement","src":"16574:43:46"}]}},{"expression":{"components":[{"expression":{"id":14160,"name":"last","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14118,"src":"16744:4:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_memory_ptr","typeString":"struct Checkpoints.Checkpoint160 memory"}},"id":14161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16749:6:46","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":13893,"src":"16744:11:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":14162,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14101,"src":"16757:5:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"id":14163,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16743:20:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_uint160_$","typeString":"tuple(uint160,uint160)"}},"functionReturnParameters":14107,"id":14164,"nodeType":"Return","src":"16736:27:46"}]}}]},"documentation":{"id":14093,"nodeType":"StructuredDocumentation","src":"15865:165:46","text":" @dev Pushes a (`key`, `value`) pair into an ordered list of checkpoints, either by inserting a new checkpoint,\n or by updating the last one."},"id":14182,"implemented":true,"kind":"function","modifiers":[],"name":"_insert","nameLocation":"16044:7:46","nodeType":"FunctionDefinition","parameters":{"id":14102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14097,"mutability":"mutable","name":"self","nameLocation":"16085:4:46","nodeType":"VariableDeclaration","scope":14182,"src":"16061:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"},"typeName":{"baseType":{"id":14095,"nodeType":"UserDefinedTypeName","pathNode":{"id":14094,"name":"Checkpoint160","nameLocations":["16061:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"16061:13:46"},"referencedDeclaration":13894,"src":"16061:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"id":14096,"nodeType":"ArrayTypeName","src":"16061:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"}},"visibility":"internal"},{"constant":false,"id":14099,"mutability":"mutable","name":"key","nameLocation":"16106:3:46","nodeType":"VariableDeclaration","scope":14182,"src":"16099:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14098,"name":"uint96","nodeType":"ElementaryTypeName","src":"16099:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14101,"mutability":"mutable","name":"value","nameLocation":"16127:5:46","nodeType":"VariableDeclaration","scope":14182,"src":"16119:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14100,"name":"uint160","nodeType":"ElementaryTypeName","src":"16119:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"16051:87:46"},"returnParameters":{"id":14107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14182,"src":"16156:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14103,"name":"uint160","nodeType":"ElementaryTypeName","src":"16156:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":14106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14182,"src":"16165:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":14105,"name":"uint160","nodeType":"ElementaryTypeName","src":"16165:7:46","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"16155:18:46"},"scope":14302,"src":"16035:859:46","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14233,"nodeType":"Block","src":"17391:267:46","statements":[{"body":{"id":14229,"nodeType":"Block","src":"17420:211:46","statements":[{"assignments":[14202],"declarations":[{"constant":false,"id":14202,"mutability":"mutable","name":"mid","nameLocation":"17442:3:46","nodeType":"VariableDeclaration","scope":14229,"src":"17434:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint256","nodeType":"ElementaryTypeName","src":"17434:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14208,"initialValue":{"arguments":[{"id":14205,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"17461:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14206,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14193,"src":"17466:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14203,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"17448:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17453:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"17448:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17448:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17434:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14210,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14187,"src":"17503:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},{"id":14211,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"17509:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14209,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"17489:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17489:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":14213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17514:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"17489:29:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14214,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14189,"src":"17521:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"17489:35:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14227,"nodeType":"Block","src":"17575:46:46","statements":[{"expression":{"id":14225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14221,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"17593:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14222,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"17599:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17605:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17599:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17593:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14226,"nodeType":"ExpressionStatement","src":"17593:13:46"}]},"id":14228,"nodeType":"IfStatement","src":"17485:136:46","trueBody":{"id":14220,"nodeType":"Block","src":"17526:43:46","statements":[{"expression":{"id":14218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14216,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14193,"src":"17544:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14217,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"17551:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17544:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14219,"nodeType":"ExpressionStatement","src":"17544:10:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14198,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14191,"src":"17408:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14199,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14193,"src":"17414:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17408:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14230,"nodeType":"WhileStatement","src":"17401:230:46"},{"expression":{"id":14231,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14193,"src":"17647:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14197,"id":14232,"nodeType":"Return","src":"17640:11:46"}]},"documentation":{"id":14183,"nodeType":"StructuredDocumentation","src":"16900:320:46","text":" @dev Return the index of the oldest checkpoint whose key is greater than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":14234,"implemented":true,"kind":"function","modifiers":[],"name":"_upperBinaryLookup","nameLocation":"17234:18:46","nodeType":"FunctionDefinition","parameters":{"id":14194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14187,"mutability":"mutable","name":"self","nameLocation":"17286:4:46","nodeType":"VariableDeclaration","scope":14234,"src":"17262:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"},"typeName":{"baseType":{"id":14185,"nodeType":"UserDefinedTypeName","pathNode":{"id":14184,"name":"Checkpoint160","nameLocations":["17262:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"17262:13:46"},"referencedDeclaration":13894,"src":"17262:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"id":14186,"nodeType":"ArrayTypeName","src":"17262:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"}},"visibility":"internal"},{"constant":false,"id":14189,"mutability":"mutable","name":"key","nameLocation":"17307:3:46","nodeType":"VariableDeclaration","scope":14234,"src":"17300:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14188,"name":"uint96","nodeType":"ElementaryTypeName","src":"17300:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14191,"mutability":"mutable","name":"low","nameLocation":"17328:3:46","nodeType":"VariableDeclaration","scope":14234,"src":"17320:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14190,"name":"uint256","nodeType":"ElementaryTypeName","src":"17320:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14193,"mutability":"mutable","name":"high","nameLocation":"17349:4:46","nodeType":"VariableDeclaration","scope":14234,"src":"17341:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14192,"name":"uint256","nodeType":"ElementaryTypeName","src":"17341:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17252:107:46"},"returnParameters":{"id":14197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14196,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14234,"src":"17382:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14195,"name":"uint256","nodeType":"ElementaryTypeName","src":"17382:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17381:9:46"},"scope":14302,"src":"17225:433:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14285,"nodeType":"Block","src":"18164:267:46","statements":[{"body":{"id":14281,"nodeType":"Block","src":"18193:211:46","statements":[{"assignments":[14254],"declarations":[{"constant":false,"id":14254,"mutability":"mutable","name":"mid","nameLocation":"18215:3:46","nodeType":"VariableDeclaration","scope":14281,"src":"18207:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14253,"name":"uint256","nodeType":"ElementaryTypeName","src":"18207:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14260,"initialValue":{"arguments":[{"id":14257,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"18234:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14258,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"18239:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14255,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"18221:4:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":14256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18226:7:46","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":15404,"src":"18221:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18221:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18207:37:46"},{"condition":{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":14267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14262,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14239,"src":"18276:4:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"}},{"id":14263,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"18282:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage ref[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14261,"name":"_unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[13467,13884,14301],"referencedDeclaration":14301,"src":"18262:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Checkpoint160_$13894_storage_ptr_$","typeString":"function (struct Checkpoints.Checkpoint160 storage ref[] storage pointer,uint256) pure returns (struct Checkpoints.Checkpoint160 storage pointer)"}},"id":14264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18262:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160 storage pointer"}},"id":14265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18287:4:46","memberName":"_key","nodeType":"MemberAccess","referencedDeclaration":13891,"src":"18262:29:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14266,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14241,"src":"18294:3:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"18262:35:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14279,"nodeType":"Block","src":"18351:43:46","statements":[{"expression":{"id":14277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14275,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"18369:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14276,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"18376:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18369:10:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14278,"nodeType":"ExpressionStatement","src":"18369:10:46"}]},"id":14280,"nodeType":"IfStatement","src":"18258:136:46","trueBody":{"id":14274,"nodeType":"Block","src":"18299:46:46","statements":[{"expression":{"id":14272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14268,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"18317:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14269,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14254,"src":"18323:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18329:1:46","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18323:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18317:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14273,"nodeType":"ExpressionStatement","src":"18317:13:46"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14250,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"18181:3:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14251,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"18187:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18181:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14282,"nodeType":"WhileStatement","src":"18174:230:46"},{"expression":{"id":14283,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"18420:4:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14249,"id":14284,"nodeType":"Return","src":"18413:11:46"}]},"documentation":{"id":14235,"nodeType":"StructuredDocumentation","src":"17664:329:46","text":" @dev Return the index of the oldest checkpoint whose key is greater or equal than the search key, or `high` if there is none.\n `low` and `high` define a section where to do the search, with inclusive `low` and exclusive `high`.\n WARNING: `high` should not be greater than the array's length."},"id":14286,"implemented":true,"kind":"function","modifiers":[],"name":"_lowerBinaryLookup","nameLocation":"18007:18:46","nodeType":"FunctionDefinition","parameters":{"id":14246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14239,"mutability":"mutable","name":"self","nameLocation":"18059:4:46","nodeType":"VariableDeclaration","scope":14286,"src":"18035:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"},"typeName":{"baseType":{"id":14237,"nodeType":"UserDefinedTypeName","pathNode":{"id":14236,"name":"Checkpoint160","nameLocations":["18035:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"18035:13:46"},"referencedDeclaration":13894,"src":"18035:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"id":14238,"nodeType":"ArrayTypeName","src":"18035:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"}},"visibility":"internal"},{"constant":false,"id":14241,"mutability":"mutable","name":"key","nameLocation":"18080:3:46","nodeType":"VariableDeclaration","scope":14286,"src":"18073:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":14240,"name":"uint96","nodeType":"ElementaryTypeName","src":"18073:6:46","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"},{"constant":false,"id":14243,"mutability":"mutable","name":"low","nameLocation":"18101:3:46","nodeType":"VariableDeclaration","scope":14286,"src":"18093:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14242,"name":"uint256","nodeType":"ElementaryTypeName","src":"18093:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14245,"mutability":"mutable","name":"high","nameLocation":"18122:4:46","nodeType":"VariableDeclaration","scope":14286,"src":"18114:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14244,"name":"uint256","nodeType":"ElementaryTypeName","src":"18114:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18025:107:46"},"returnParameters":{"id":14249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14286,"src":"18155:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14247,"name":"uint256","nodeType":"ElementaryTypeName","src":"18155:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18154:9:46"},"scope":14302,"src":"17998:433:46","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":14300,"nodeType":"Block","src":"18720:125:46","statements":[{"AST":{"nodeType":"YulBlock","src":"18739:100:46","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18760:1:46","type":"","value":"0"},{"name":"self.slot","nodeType":"YulIdentifier","src":"18763:9:46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18753:6:46"},"nodeType":"YulFunctionCall","src":"18753:20:46"},"nodeType":"YulExpressionStatement","src":"18753:20:46"},{"nodeType":"YulAssignment","src":"18786:43:46","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18815:1:46","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18818:4:46","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"18805:9:46"},"nodeType":"YulFunctionCall","src":"18805:18:46"},{"name":"pos","nodeType":"YulIdentifier","src":"18825:3:46"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18801:3:46"},"nodeType":"YulFunctionCall","src":"18801:28:46"},"variableNames":[{"name":"result.slot","nodeType":"YulIdentifier","src":"18786:11:46"}]}]},"evmVersion":"london","externalReferences":[{"declaration":14293,"isOffset":false,"isSlot":false,"src":"18825:3:46","valueSize":1},{"declaration":14297,"isOffset":false,"isSlot":true,"src":"18786:11:46","suffix":"slot","valueSize":1},{"declaration":14291,"isOffset":false,"isSlot":true,"src":"18763:9:46","suffix":"slot","valueSize":1}],"id":14299,"nodeType":"InlineAssembly","src":"18730:109:46"}]},"documentation":{"id":14287,"nodeType":"StructuredDocumentation","src":"18437:132:46","text":" @dev Access an element of the array without performing bounds check. The position is assumed to be within bounds."},"id":14301,"implemented":true,"kind":"function","modifiers":[],"name":"_unsafeAccess","nameLocation":"18583:13:46","nodeType":"FunctionDefinition","parameters":{"id":14294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14291,"mutability":"mutable","name":"self","nameLocation":"18621:4:46","nodeType":"VariableDeclaration","scope":14301,"src":"18597:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"},"typeName":{"baseType":{"id":14289,"nodeType":"UserDefinedTypeName","pathNode":{"id":14288,"name":"Checkpoint160","nameLocations":["18597:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"18597:13:46"},"referencedDeclaration":13894,"src":"18597:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"id":14290,"nodeType":"ArrayTypeName","src":"18597:15:46","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint160_$13894_storage_$dyn_storage_ptr","typeString":"struct Checkpoints.Checkpoint160[]"}},"visibility":"internal"},{"constant":false,"id":14293,"mutability":"mutable","name":"pos","nameLocation":"18635:3:46","nodeType":"VariableDeclaration","scope":14301,"src":"18627:11:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14292,"name":"uint256","nodeType":"ElementaryTypeName","src":"18627:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18596:43:46"},"returnParameters":{"id":14298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14297,"mutability":"mutable","name":"result","nameLocation":"18708:6:46","nodeType":"VariableDeclaration","scope":14301,"src":"18686:28:46","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"},"typeName":{"id":14296,"nodeType":"UserDefinedTypeName","pathNode":{"id":14295,"name":"Checkpoint160","nameLocations":["18686:13:46"],"nodeType":"IdentifierPath","referencedDeclaration":13894,"src":"18686:13:46"},"referencedDeclaration":13894,"src":"18686:13:46","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint160_$13894_storage_ptr","typeString":"struct Checkpoints.Checkpoint160"}},"visibility":"internal"}],"src":"18685:30:46"},"scope":14302,"src":"18574:271:46","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":14303,"src":"708:18139:46","usedErrors":[]}],"src":"193:18655:46"},"id":46},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[14324]},"id":14325,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14304,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:47"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":14305,"nodeType":"StructuredDocumentation","src":"111:496:47","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":14324,"linearizedBaseContracts":[14324],"name":"Context","nameLocation":"626:7:47","nodeType":"ContractDefinition","nodes":[{"body":{"id":14313,"nodeType":"Block","src":"702:34:47","statements":[{"expression":{"expression":{"id":14310,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:47","memberName":"sender","nodeType":"MemberAccess","src":"719:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14309,"id":14312,"nodeType":"Return","src":"712:17:47"}]},"id":14314,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:47","nodeType":"FunctionDefinition","parameters":{"id":14306,"nodeType":"ParameterList","parameters":[],"src":"659:2:47"},"returnParameters":{"id":14309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14314,"src":"693:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14307,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:47"},"scope":14324,"src":"640:96:47","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":14322,"nodeType":"Block","src":"809:32:47","statements":[{"expression":{"expression":{"id":14319,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:47","memberName":"data","nodeType":"MemberAccess","src":"826:8:47","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":14318,"id":14321,"nodeType":"Return","src":"819:15:47"}]},"id":14323,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:47","nodeType":"FunctionDefinition","parameters":{"id":14315,"nodeType":"ParameterList","parameters":[],"src":"759:2:47"},"returnParameters":{"id":14318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14317,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14323,"src":"793:14:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14316,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:47"},"scope":14324,"src":"742:99:47","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":14325,"src":"608:235:47","usedErrors":[]}],"src":"86:758:47"},"id":47},"@openzeppelin/contracts/utils/Counters.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[14398]},"id":14399,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14326,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:48"},{"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":14327,"nodeType":"StructuredDocumentation","src":"112:311:48","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":14398,"linearizedBaseContracts":[14398],"name":"Counters","nameLocation":"432:8:48","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":14330,"members":[{"constant":false,"id":14329,"mutability":"mutable","name":"_value","nameLocation":"794:6:48","nodeType":"VariableDeclaration","scope":14330,"src":"786:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14328,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:48","nodeType":"StructDefinition","scope":14398,"src":"447:374:48","visibility":"public"},{"body":{"id":14341,"nodeType":"Block","src":"901:38:48","statements":[{"expression":{"expression":{"id":14338,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"918:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":14339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"926:6:48","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":14329,"src":"918:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14337,"id":14340,"nodeType":"Return","src":"911:21:48"}]},"id":14342,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:48","nodeType":"FunctionDefinition","parameters":{"id":14334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14333,"mutability":"mutable","name":"counter","nameLocation":"860:7:48","nodeType":"VariableDeclaration","scope":14342,"src":"844:23:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":14332,"nodeType":"UserDefinedTypeName","pathNode":{"id":14331,"name":"Counter","nameLocations":["844:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"844:7:48"},"referencedDeclaration":14330,"src":"844:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:48"},"returnParameters":{"id":14337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14342,"src":"892:7:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14335,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:48"},"scope":14398,"src":"827:112:48","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14355,"nodeType":"Block","src":"998:70:48","statements":[{"id":14354,"nodeType":"UncheckedBlock","src":"1008:54:48","statements":[{"expression":{"id":14352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14348,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14345,"src":"1032:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":14350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1040:6:48","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":14329,"src":"1032:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":14351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14353,"nodeType":"ExpressionStatement","src":"1032:19:48"}]}]},"id":14356,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:48","nodeType":"FunctionDefinition","parameters":{"id":14346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14345,"mutability":"mutable","name":"counter","nameLocation":"980:7:48","nodeType":"VariableDeclaration","scope":14356,"src":"964:23:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":14344,"nodeType":"UserDefinedTypeName","pathNode":{"id":14343,"name":"Counter","nameLocations":["964:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"964:7:48"},"referencedDeclaration":14330,"src":"964:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:48"},"returnParameters":{"id":14347,"nodeType":"ParameterList","parameters":[],"src":"998:0:48"},"scope":14398,"src":"945:123:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14383,"nodeType":"Block","src":"1127:176:48","statements":[{"assignments":[14363],"declarations":[{"constant":false,"id":14363,"mutability":"mutable","name":"value","nameLocation":"1145:5:48","nodeType":"VariableDeclaration","scope":14383,"src":"1137:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14362,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14366,"initialValue":{"expression":{"id":14364,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"1153:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":14365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1161:6:48","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":14329,"src":"1153:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:48"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14363,"src":"1185:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":14371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:48","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":14367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:49:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14373,"nodeType":"ExpressionStatement","src":"1177:49:48"},{"id":14382,"nodeType":"UncheckedBlock","src":"1236:61:48","statements":[{"expression":{"id":14380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14374,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14359,"src":"1260:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":14376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1268:6:48","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":14329,"src":"1260:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14363,"src":"1277:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:48","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14381,"nodeType":"ExpressionStatement","src":"1260:26:48"}]}]},"id":14384,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:48","nodeType":"FunctionDefinition","parameters":{"id":14360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14359,"mutability":"mutable","name":"counter","nameLocation":"1109:7:48","nodeType":"VariableDeclaration","scope":14384,"src":"1093:23:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":14358,"nodeType":"UserDefinedTypeName","pathNode":{"id":14357,"name":"Counter","nameLocations":["1093:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"1093:7:48"},"referencedDeclaration":14330,"src":"1093:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:48"},"returnParameters":{"id":14361,"nodeType":"ParameterList","parameters":[],"src":"1127:0:48"},"scope":14398,"src":"1074:229:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14396,"nodeType":"Block","src":"1358:35:48","statements":[{"expression":{"id":14394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14390,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14387,"src":"1368:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":14392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1376:6:48","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":14329,"src":"1368:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14395,"nodeType":"ExpressionStatement","src":"1368:18:48"}]},"id":14397,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:48","nodeType":"FunctionDefinition","parameters":{"id":14388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14387,"mutability":"mutable","name":"counter","nameLocation":"1340:7:48","nodeType":"VariableDeclaration","scope":14397,"src":"1324:23:48","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":14386,"nodeType":"UserDefinedTypeName","pathNode":{"id":14385,"name":"Counter","nameLocations":["1324:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":14330,"src":"1324:7:48"},"referencedDeclaration":14330,"src":"1324:7:48","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$14330_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:48"},"returnParameters":{"id":14389,"nodeType":"ParameterList","parameters":[],"src":"1358:0:48"},"scope":14398,"src":"1309:84:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":14399,"src":"424:971:48","usedErrors":[]}],"src":"87:1309:48"},"id":48},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[16203],"Strings":[14573]},"id":14574,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14400,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:49"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":14401,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14574,"sourceUnit":16204,"src":"126:25:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":14402,"nodeType":"StructuredDocumentation","src":"153:34:49","text":" @dev String operations."},"fullyImplemented":true,"id":14573,"linearizedBaseContracts":[14573],"name":"Strings","nameLocation":"196:7:49","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":14405,"mutability":"constant","name":"_SYMBOLS","nameLocation":"235:8:49","nodeType":"VariableDeclaration","scope":14573,"src":"210:54:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":14403,"name":"bytes16","nodeType":"ElementaryTypeName","src":"210:7:49","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":14404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"246:18:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":14408,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"293:15:49","nodeType":"VariableDeclaration","scope":14573,"src":"270:43:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14406,"name":"uint8","nodeType":"ElementaryTypeName","src":"270:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":14407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:2:49","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":14455,"nodeType":"Block","src":"486:625:49","statements":[{"id":14454,"nodeType":"UncheckedBlock","src":"496:609:49","statements":[{"assignments":[14417],"declarations":[{"constant":false,"id":14417,"mutability":"mutable","name":"length","nameLocation":"528:6:49","nodeType":"VariableDeclaration","scope":14454,"src":"520:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14416,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14424,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14411,"src":"548:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14418,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"537:4:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":14419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"542:5:49","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":16040,"src":"537:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"537:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"557:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"537:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"520:38:49"},{"assignments":[14426],"declarations":[{"constant":false,"id":14426,"mutability":"mutable","name":"buffer","nameLocation":"586:6:49","nodeType":"VariableDeclaration","scope":14454,"src":"572:20:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14425,"name":"string","nodeType":"ElementaryTypeName","src":"572:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":14431,"initialValue":{"arguments":[{"id":14429,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14417,"src":"606:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"595:10:49","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":14427,"name":"string","nodeType":"ElementaryTypeName","src":"599:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":14430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"595:18:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"572:41:49"},{"assignments":[14433],"declarations":[{"constant":false,"id":14433,"mutability":"mutable","name":"ptr","nameLocation":"635:3:49","nodeType":"VariableDeclaration","scope":14454,"src":"627:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14432,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14434,"nodeType":"VariableDeclarationStatement","src":"627:11:49"},{"AST":{"nodeType":"YulBlock","src":"708:67:49","statements":[{"nodeType":"YulAssignment","src":"726:35:49","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"737:6:49"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"749:2:49","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"753:6:49"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:49"},"nodeType":"YulFunctionCall","src":"745:15:49"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"733:3:49"},"nodeType":"YulFunctionCall","src":"733:28:49"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"726:3:49"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":14426,"isOffset":false,"isSlot":false,"src":"737:6:49","valueSize":1},{"declaration":14417,"isOffset":false,"isSlot":false,"src":"753:6:49","valueSize":1},{"declaration":14433,"isOffset":false,"isSlot":false,"src":"726:3:49","valueSize":1}],"id":14435,"nodeType":"InlineAssembly","src":"699:76:49"},{"body":{"id":14450,"nodeType":"Block","src":"801:267:49","statements":[{"expression":{"id":14438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"819:5:49","subExpression":{"id":14437,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14433,"src":"819:3:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14439,"nodeType":"ExpressionStatement","src":"819:5:49"},{"AST":{"nodeType":"YulBlock","src":"902:84:49","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"932:3:49"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"946:5:49"},{"kind":"number","nodeType":"YulLiteral","src":"953:2:49","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"942:3:49"},"nodeType":"YulFunctionCall","src":"942:14:49"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"958:8:49"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"937:4:49"},"nodeType":"YulFunctionCall","src":"937:30:49"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"924:7:49"},"nodeType":"YulFunctionCall","src":"924:44:49"},"nodeType":"YulExpressionStatement","src":"924:44:49"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":14405,"isOffset":false,"isSlot":false,"src":"958:8:49","valueSize":1},{"declaration":14433,"isOffset":false,"isSlot":false,"src":"932:3:49","valueSize":1},{"declaration":14411,"isOffset":false,"isSlot":false,"src":"946:5:49","valueSize":1}],"id":14440,"nodeType":"InlineAssembly","src":"893:93:49"},{"expression":{"id":14443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14441,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14411,"src":"1003:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":14442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1012:2:49","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1003:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14444,"nodeType":"ExpressionStatement","src":"1003:11:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14445,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14411,"src":"1036:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1036:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14449,"nodeType":"IfStatement","src":"1032:21:49","trueBody":{"id":14448,"nodeType":"Break","src":"1048:5:49"}}]},"condition":{"hexValue":"74727565","id":14436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"795:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":14451,"nodeType":"WhileStatement","src":"788:280:49"},{"expression":{"id":14452,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14426,"src":"1088:6:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14415,"id":14453,"nodeType":"Return","src":"1081:13:49"}]}]},"documentation":{"id":14409,"nodeType":"StructuredDocumentation","src":"320:90:49","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":14456,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"424:8:49","nodeType":"FunctionDefinition","parameters":{"id":14412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14411,"mutability":"mutable","name":"value","nameLocation":"441:5:49","nodeType":"VariableDeclaration","scope":14456,"src":"433:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14410,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"432:15:49"},"returnParameters":{"id":14415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14456,"src":"471:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14413,"name":"string","nodeType":"ElementaryTypeName","src":"471:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"470:15:49"},"scope":14573,"src":"415:696:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14475,"nodeType":"Block","src":"1290:100:49","statements":[{"id":14474,"nodeType":"UncheckedBlock","src":"1300:84:49","statements":[{"expression":{"arguments":[{"id":14465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14459,"src":"1343:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14459,"src":"1362:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14466,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"1350:4:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$16203_$","typeString":"type(library Math)"}},"id":14467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1355:6:49","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":16163,"src":"1350:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":14469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:18:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1350:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14464,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[14476,14552,14572],"referencedDeclaration":14552,"src":"1331:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1331:42:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14463,"id":14473,"nodeType":"Return","src":"1324:49:49"}]}]},"documentation":{"id":14457,"nodeType":"StructuredDocumentation","src":"1117:94:49","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":14476,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1225:11:49","nodeType":"FunctionDefinition","parameters":{"id":14460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14459,"mutability":"mutable","name":"value","nameLocation":"1245:5:49","nodeType":"VariableDeclaration","scope":14476,"src":"1237:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14458,"name":"uint256","nodeType":"ElementaryTypeName","src":"1237:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1236:15:49"},"returnParameters":{"id":14463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14476,"src":"1275:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14461,"name":"string","nodeType":"ElementaryTypeName","src":"1275:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1274:15:49"},"scope":14573,"src":"1216:174:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14551,"nodeType":"Block","src":"1603:347:49","statements":[{"assignments":[14487],"declarations":[{"constant":false,"id":14487,"mutability":"mutable","name":"buffer","nameLocation":"1626:6:49","nodeType":"VariableDeclaration","scope":14551,"src":"1613:19:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14486,"name":"bytes","nodeType":"ElementaryTypeName","src":"1613:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":14496,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14491,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1649:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1645:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":14493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1645:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1635:9:49","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":14488,"name":"bytes","nodeType":"ElementaryTypeName","src":"1639:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":14495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1613:47:49"},{"expression":{"id":14501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14497,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"1670:6:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14499,"indexExpression":{"hexValue":"30","id":14498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1677:1:49","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:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:3:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1670:15:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":14502,"nodeType":"ExpressionStatement","src":"1670:15:49"},{"expression":{"id":14507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14503,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"1695:6:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14505,"indexExpression":{"hexValue":"31","id":14504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:49","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:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":14506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1707:3:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1695:15:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":14508,"nodeType":"ExpressionStatement","src":"1695:15:49"},{"body":{"id":14537,"nodeType":"Block","src":"1765:83:49","statements":[{"expression":{"id":14531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14523,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"1779:6:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14525,"indexExpression":{"id":14524,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14510,"src":"1786:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1779:9:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":14526,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"1791:8:49","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":14530,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1800:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":14528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:3:49","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1800:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1791:21:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1779:33:49","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":14532,"nodeType":"ExpressionStatement","src":"1779:33:49"},{"expression":{"id":14535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1826:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":14534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1836:1:49","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1826:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14536,"nodeType":"ExpressionStatement","src":"1826:11:49"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14510,"src":"1753:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":14518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1757:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1753:5:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14538,"initializationExpression":{"assignments":[14510],"declarations":[{"constant":false,"id":14510,"mutability":"mutable","name":"i","nameLocation":"1733:1:49","nodeType":"VariableDeclaration","scope":14538,"src":"1725:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1725:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14516,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":14511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1737:1:49","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":14512,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"1741:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1737:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":14514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1750:1:49","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1737:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1725:26:49"},"loopExpression":{"expression":{"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1760:3:49","subExpression":{"id":14520,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14510,"src":"1762:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14522,"nodeType":"ExpressionStatement","src":"1760:3:49"},"nodeType":"ForStatement","src":"1720:128:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"1865:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1874:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1865:10:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":14543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1877:34:49","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":14539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1857:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1857:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14545,"nodeType":"ExpressionStatement","src":"1857:55:49"},{"expression":{"arguments":[{"id":14548,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14487,"src":"1936:6:49","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1929:6:49","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":14546,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:49","typeDescriptions":{}}},"id":14549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14485,"id":14550,"nodeType":"Return","src":"1922:21:49"}]},"documentation":{"id":14477,"nodeType":"StructuredDocumentation","src":"1396:112:49","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":14552,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1522:11:49","nodeType":"FunctionDefinition","parameters":{"id":14482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14479,"mutability":"mutable","name":"value","nameLocation":"1542:5:49","nodeType":"VariableDeclaration","scope":14552,"src":"1534:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14478,"name":"uint256","nodeType":"ElementaryTypeName","src":"1534:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14481,"mutability":"mutable","name":"length","nameLocation":"1557:6:49","nodeType":"VariableDeclaration","scope":14552,"src":"1549:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1533:31:49"},"returnParameters":{"id":14485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14552,"src":"1588:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14483,"name":"string","nodeType":"ElementaryTypeName","src":"1588:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1587:15:49"},"scope":14573,"src":"1513:437:49","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14571,"nodeType":"Block","src":"2175:76:49","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14565,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14555,"src":"2220:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2212:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":14563,"name":"uint160","nodeType":"ElementaryTypeName","src":"2212:7:49","typeDescriptions":{}}},"id":14566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":14562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2204:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14561,"name":"uint256","nodeType":"ElementaryTypeName","src":"2204:7:49","typeDescriptions":{}}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2204:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14568,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14408,"src":"2228:15:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":14560,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[14476,14552,14572],"referencedDeclaration":14552,"src":"2192:11:49","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":14569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2192:52:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14559,"id":14570,"nodeType":"Return","src":"2185:59:49"}]},"documentation":{"id":14553,"nodeType":"StructuredDocumentation","src":"1956:141:49","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":14572,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2111:11:49","nodeType":"FunctionDefinition","parameters":{"id":14556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14555,"mutability":"mutable","name":"addr","nameLocation":"2131:4:49","nodeType":"VariableDeclaration","scope":14572,"src":"2123:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14554,"name":"address","nodeType":"ElementaryTypeName","src":"2123:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2122:14:49"},"returnParameters":{"id":14559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14572,"src":"2160:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14557,"name":"string","nodeType":"ElementaryTypeName","src":"2160:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2159:15:49"},"scope":14573,"src":"2102:149:49","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":14574,"src":"188:2065:49","usedErrors":[]}],"src":"101:2153:49"},"id":49},"@openzeppelin/contracts/utils/Timers.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Timers.sol","exportedSymbols":{"Timers":[14787]},"id":14788,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14575,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"85:23:50"},{"abstract":false,"baseContracts":[],"canonicalName":"Timers","contractDependencies":[],"contractKind":"library","documentation":{"id":14576,"nodeType":"StructuredDocumentation","src":"110:57:50","text":" @dev Tooling for timepoints, timers and delays"},"fullyImplemented":true,"id":14787,"linearizedBaseContracts":[14787],"name":"Timers","nameLocation":"176:6:50","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Timers.Timestamp","id":14579,"members":[{"constant":false,"id":14578,"mutability":"mutable","name":"_deadline","nameLocation":"223:9:50","nodeType":"VariableDeclaration","scope":14579,"src":"216:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14577,"name":"uint64","nodeType":"ElementaryTypeName","src":"216:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Timestamp","nameLocation":"196:9:50","nodeType":"StructDefinition","scope":14787,"src":"189:50:50","visibility":"public"},{"body":{"id":14590,"nodeType":"Block","src":"321:39:50","statements":[{"expression":{"expression":{"id":14587,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"338:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":14588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"344:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"338:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":14586,"id":14589,"nodeType":"Return","src":"331:22:50"}]},"id":14591,"implemented":true,"kind":"function","modifiers":[],"name":"getDeadline","nameLocation":"254:11:50","nodeType":"FunctionDefinition","parameters":{"id":14583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14582,"mutability":"mutable","name":"timer","nameLocation":"283:5:50","nodeType":"VariableDeclaration","scope":14591,"src":"266:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14581,"nodeType":"UserDefinedTypeName","pathNode":{"id":14580,"name":"Timestamp","nameLocations":["266:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"266:9:50"},"referencedDeclaration":14579,"src":"266:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"265:24:50"},"returnParameters":{"id":14586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14591,"src":"313:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14584,"name":"uint64","nodeType":"ElementaryTypeName","src":"313:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"312:8:50"},"scope":14787,"src":"245:115:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14605,"nodeType":"Block","src":"439:44:50","statements":[{"expression":{"id":14603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14599,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14594,"src":"449:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp storage pointer"}},"id":14601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"455:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"449:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14602,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14596,"src":"467:9:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"449:27:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14604,"nodeType":"ExpressionStatement","src":"449:27:50"}]},"id":14606,"implemented":true,"kind":"function","modifiers":[],"name":"setDeadline","nameLocation":"375:11:50","nodeType":"FunctionDefinition","parameters":{"id":14597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14594,"mutability":"mutable","name":"timer","nameLocation":"405:5:50","nodeType":"VariableDeclaration","scope":14606,"src":"387:23:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14593,"nodeType":"UserDefinedTypeName","pathNode":{"id":14592,"name":"Timestamp","nameLocations":["387:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"387:9:50"},"referencedDeclaration":14579,"src":"387:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"},{"constant":false,"id":14596,"mutability":"mutable","name":"timestamp","nameLocation":"419:9:50","nodeType":"VariableDeclaration","scope":14606,"src":"412:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14595,"name":"uint64","nodeType":"ElementaryTypeName","src":"412:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"386:43:50"},"returnParameters":{"id":14598,"nodeType":"ParameterList","parameters":[],"src":"439:0:50"},"scope":14787,"src":"366:117:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14618,"nodeType":"Block","src":"538:36:50","statements":[{"expression":{"id":14616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14612,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14609,"src":"548:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp storage pointer"}},"id":14614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"554:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"548:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"566:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"548:19:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14617,"nodeType":"ExpressionStatement","src":"548:19:50"}]},"id":14619,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"498:5:50","nodeType":"FunctionDefinition","parameters":{"id":14610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14609,"mutability":"mutable","name":"timer","nameLocation":"522:5:50","nodeType":"VariableDeclaration","scope":14619,"src":"504:23:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14608,"nodeType":"UserDefinedTypeName","pathNode":{"id":14607,"name":"Timestamp","nameLocations":["504:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"504:9:50"},"referencedDeclaration":14579,"src":"504:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"503:25:50"},"returnParameters":{"id":14611,"nodeType":"ParameterList","parameters":[],"src":"538:0:50"},"scope":14787,"src":"489:85:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14632,"nodeType":"Block","src":"650:44:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14627,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14622,"src":"667:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":14628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"673:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"667:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"686:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"667:20:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14626,"id":14631,"nodeType":"Return","src":"660:27:50"}]},"id":14633,"implemented":true,"kind":"function","modifiers":[],"name":"isUnset","nameLocation":"589:7:50","nodeType":"FunctionDefinition","parameters":{"id":14623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14622,"mutability":"mutable","name":"timer","nameLocation":"614:5:50","nodeType":"VariableDeclaration","scope":14633,"src":"597:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14621,"nodeType":"UserDefinedTypeName","pathNode":{"id":14620,"name":"Timestamp","nameLocations":["597:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"597:9:50"},"referencedDeclaration":14579,"src":"597:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"596:24:50"},"returnParameters":{"id":14626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14633,"src":"644:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14624,"name":"bool","nodeType":"ElementaryTypeName","src":"644:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"643:6:50"},"scope":14787,"src":"580:114:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14646,"nodeType":"Block","src":"772:43:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14641,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14636,"src":"789:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":14642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"795:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"789:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"807:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"789:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14640,"id":14645,"nodeType":"Return","src":"782:26:50"}]},"id":14647,"implemented":true,"kind":"function","modifiers":[],"name":"isStarted","nameLocation":"709:9:50","nodeType":"FunctionDefinition","parameters":{"id":14637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14636,"mutability":"mutable","name":"timer","nameLocation":"736:5:50","nodeType":"VariableDeclaration","scope":14647,"src":"719:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14635,"nodeType":"UserDefinedTypeName","pathNode":{"id":14634,"name":"Timestamp","nameLocations":["719:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"719:9:50"},"referencedDeclaration":14579,"src":"719:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"718:24:50"},"returnParameters":{"id":14640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14647,"src":"766:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14638,"name":"bool","nodeType":"ElementaryTypeName","src":"766:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"765:6:50"},"scope":14787,"src":"700:115:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14661,"nodeType":"Block","src":"893:57:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14655,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14650,"src":"910:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":14656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"916:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"910:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":14657,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"928:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"934:9:50","memberName":"timestamp","nodeType":"MemberAccess","src":"928:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"910:33:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14654,"id":14660,"nodeType":"Return","src":"903:40:50"}]},"id":14662,"implemented":true,"kind":"function","modifiers":[],"name":"isPending","nameLocation":"830:9:50","nodeType":"FunctionDefinition","parameters":{"id":14651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14650,"mutability":"mutable","name":"timer","nameLocation":"857:5:50","nodeType":"VariableDeclaration","scope":14662,"src":"840:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14649,"nodeType":"UserDefinedTypeName","pathNode":{"id":14648,"name":"Timestamp","nameLocations":["840:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"840:9:50"},"referencedDeclaration":14579,"src":"840:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"839:24:50"},"returnParameters":{"id":14654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14662,"src":"887:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14652,"name":"bool","nodeType":"ElementaryTypeName","src":"887:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"886:6:50"},"scope":14787,"src":"821:129:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14680,"nodeType":"Block","src":"1028:78:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14671,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14665,"src":"1055:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}],"id":14670,"name":"isStarted","nodeType":"Identifier","overloadedDeclarations":[14647,14752],"referencedDeclaration":14647,"src":"1045:9:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Timestamp_$14579_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Timers.Timestamp memory) pure returns (bool)"}},"id":14672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1045:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14673,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14665,"src":"1065:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp memory"}},"id":14674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1071:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14578,"src":"1065:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":14675,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1084:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1090:9:50","memberName":"timestamp","nodeType":"MemberAccess","src":"1084:15:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1065:34:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1045:54:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14669,"id":14679,"nodeType":"Return","src":"1038:61:50"}]},"id":14681,"implemented":true,"kind":"function","modifiers":[],"name":"isExpired","nameLocation":"965:9:50","nodeType":"FunctionDefinition","parameters":{"id":14666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14665,"mutability":"mutable","name":"timer","nameLocation":"992:5:50","nodeType":"VariableDeclaration","scope":14681,"src":"975:22:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_memory_ptr","typeString":"struct Timers.Timestamp"},"typeName":{"id":14664,"nodeType":"UserDefinedTypeName","pathNode":{"id":14663,"name":"Timestamp","nameLocations":["975:9:50"],"nodeType":"IdentifierPath","referencedDeclaration":14579,"src":"975:9:50"},"referencedDeclaration":14579,"src":"975:9:50","typeDescriptions":{"typeIdentifier":"t_struct$_Timestamp_$14579_storage_ptr","typeString":"struct Timers.Timestamp"}},"visibility":"internal"}],"src":"974:24:50"},"returnParameters":{"id":14669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14681,"src":"1022:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14667,"name":"bool","nodeType":"ElementaryTypeName","src":"1022:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1021:6:50"},"scope":14787,"src":"956:150:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"Timers.BlockNumber","id":14684,"members":[{"constant":false,"id":14683,"mutability":"mutable","name":"_deadline","nameLocation":"1148:9:50","nodeType":"VariableDeclaration","scope":14684,"src":"1141:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14682,"name":"uint64","nodeType":"ElementaryTypeName","src":"1141:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"BlockNumber","nameLocation":"1119:11:50","nodeType":"StructDefinition","scope":14787,"src":"1112:52:50","visibility":"public"},{"body":{"id":14695,"nodeType":"Block","src":"1248:39:50","statements":[{"expression":{"expression":{"id":14692,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14687,"src":"1265:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":14693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1271:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1265:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":14691,"id":14694,"nodeType":"Return","src":"1258:22:50"}]},"id":14696,"implemented":true,"kind":"function","modifiers":[],"name":"getDeadline","nameLocation":"1179:11:50","nodeType":"FunctionDefinition","parameters":{"id":14688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14687,"mutability":"mutable","name":"timer","nameLocation":"1210:5:50","nodeType":"VariableDeclaration","scope":14696,"src":"1191:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14686,"nodeType":"UserDefinedTypeName","pathNode":{"id":14685,"name":"BlockNumber","nameLocations":["1191:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1191:11:50"},"referencedDeclaration":14684,"src":"1191:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1190:26:50"},"returnParameters":{"id":14691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14696,"src":"1240:6:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14689,"name":"uint64","nodeType":"ElementaryTypeName","src":"1240:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1239:8:50"},"scope":14787,"src":"1170:117:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14710,"nodeType":"Block","src":"1368:44:50","statements":[{"expression":{"id":14708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14704,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14699,"src":"1378:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":14706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1384:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1378:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":14707,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14701,"src":"1396:9:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"1378:27:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14709,"nodeType":"ExpressionStatement","src":"1378:27:50"}]},"id":14711,"implemented":true,"kind":"function","modifiers":[],"name":"setDeadline","nameLocation":"1302:11:50","nodeType":"FunctionDefinition","parameters":{"id":14702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14699,"mutability":"mutable","name":"timer","nameLocation":"1334:5:50","nodeType":"VariableDeclaration","scope":14711,"src":"1314:25:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14698,"nodeType":"UserDefinedTypeName","pathNode":{"id":14697,"name":"BlockNumber","nameLocations":["1314:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1314:11:50"},"referencedDeclaration":14684,"src":"1314:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"},{"constant":false,"id":14701,"mutability":"mutable","name":"timestamp","nameLocation":"1348:9:50","nodeType":"VariableDeclaration","scope":14711,"src":"1341:16:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14700,"name":"uint64","nodeType":"ElementaryTypeName","src":"1341:6:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1313:45:50"},"returnParameters":{"id":14703,"nodeType":"ParameterList","parameters":[],"src":"1368:0:50"},"scope":14787,"src":"1293:119:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14723,"nodeType":"Block","src":"1469:36:50","statements":[{"expression":{"id":14721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14717,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"1479:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber storage pointer"}},"id":14719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1485:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1479:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":14720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1497:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1479:19:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":14722,"nodeType":"ExpressionStatement","src":"1479:19:50"}]},"id":14724,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1427:5:50","nodeType":"FunctionDefinition","parameters":{"id":14715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14714,"mutability":"mutable","name":"timer","nameLocation":"1453:5:50","nodeType":"VariableDeclaration","scope":14724,"src":"1433:25:50","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14713,"nodeType":"UserDefinedTypeName","pathNode":{"id":14712,"name":"BlockNumber","nameLocations":["1433:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1433:11:50"},"referencedDeclaration":14684,"src":"1433:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1432:27:50"},"returnParameters":{"id":14716,"nodeType":"ParameterList","parameters":[],"src":"1469:0:50"},"scope":14787,"src":"1418:87:50","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14737,"nodeType":"Block","src":"1583:44:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14732,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14727,"src":"1600:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":14733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1606:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1600:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1619:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1600:20:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14731,"id":14736,"nodeType":"Return","src":"1593:27:50"}]},"id":14738,"implemented":true,"kind":"function","modifiers":[],"name":"isUnset","nameLocation":"1520:7:50","nodeType":"FunctionDefinition","parameters":{"id":14728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14727,"mutability":"mutable","name":"timer","nameLocation":"1547:5:50","nodeType":"VariableDeclaration","scope":14738,"src":"1528:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14726,"nodeType":"UserDefinedTypeName","pathNode":{"id":14725,"name":"BlockNumber","nameLocations":["1528:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1528:11:50"},"referencedDeclaration":14684,"src":"1528:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1527:26:50"},"returnParameters":{"id":14731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14738,"src":"1577:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14729,"name":"bool","nodeType":"ElementaryTypeName","src":"1577:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1576:6:50"},"scope":14787,"src":"1511:116:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14751,"nodeType":"Block","src":"1707:43:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":14749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14746,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14741,"src":"1724:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":14747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1730:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1724:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:1:50","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1724:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14745,"id":14750,"nodeType":"Return","src":"1717:26:50"}]},"id":14752,"implemented":true,"kind":"function","modifiers":[],"name":"isStarted","nameLocation":"1642:9:50","nodeType":"FunctionDefinition","parameters":{"id":14742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14741,"mutability":"mutable","name":"timer","nameLocation":"1671:5:50","nodeType":"VariableDeclaration","scope":14752,"src":"1652:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14740,"nodeType":"UserDefinedTypeName","pathNode":{"id":14739,"name":"BlockNumber","nameLocations":["1652:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1652:11:50"},"referencedDeclaration":14684,"src":"1652:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1651:26:50"},"returnParameters":{"id":14745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14752,"src":"1701:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14743,"name":"bool","nodeType":"ElementaryTypeName","src":"1701:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1700:6:50"},"scope":14787,"src":"1633:117:50","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14766,"nodeType":"Block","src":"1830:54:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14760,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"1847:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":14761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1853:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"1847:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":14762,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1865:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1871:6:50","memberName":"number","nodeType":"MemberAccess","src":"1865:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1847:30:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14759,"id":14765,"nodeType":"Return","src":"1840:37:50"}]},"id":14767,"implemented":true,"kind":"function","modifiers":[],"name":"isPending","nameLocation":"1765:9:50","nodeType":"FunctionDefinition","parameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14755,"mutability":"mutable","name":"timer","nameLocation":"1794:5:50","nodeType":"VariableDeclaration","scope":14767,"src":"1775:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14754,"nodeType":"UserDefinedTypeName","pathNode":{"id":14753,"name":"BlockNumber","nameLocations":["1775:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1775:11:50"},"referencedDeclaration":14684,"src":"1775:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1774:26:50"},"returnParameters":{"id":14759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14767,"src":"1824:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14757,"name":"bool","nodeType":"ElementaryTypeName","src":"1824:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1823:6:50"},"scope":14787,"src":"1756:128:50","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":14785,"nodeType":"Block","src":"1964:75:50","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14776,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14770,"src":"1991:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}],"id":14775,"name":"isStarted","nodeType":"Identifier","overloadedDeclarations":[14647,14752],"referencedDeclaration":14752,"src":"1981:9:50","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_BlockNumber_$14684_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Timers.BlockNumber memory) pure returns (bool)"}},"id":14777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1981:16:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14778,"name":"timer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14770,"src":"2001:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber memory"}},"id":14779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2007:9:50","memberName":"_deadline","nodeType":"MemberAccess","referencedDeclaration":14683,"src":"2001:15:50","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":14780,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2020:5:50","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2026:6:50","memberName":"number","nodeType":"MemberAccess","src":"2020:12:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2001:31:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1981:51:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14774,"id":14784,"nodeType":"Return","src":"1974:58:50"}]},"id":14786,"implemented":true,"kind":"function","modifiers":[],"name":"isExpired","nameLocation":"1899:9:50","nodeType":"FunctionDefinition","parameters":{"id":14771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14770,"mutability":"mutable","name":"timer","nameLocation":"1928:5:50","nodeType":"VariableDeclaration","scope":14786,"src":"1909:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_memory_ptr","typeString":"struct Timers.BlockNumber"},"typeName":{"id":14769,"nodeType":"UserDefinedTypeName","pathNode":{"id":14768,"name":"BlockNumber","nameLocations":["1909:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":14684,"src":"1909:11:50"},"referencedDeclaration":14684,"src":"1909:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_BlockNumber_$14684_storage_ptr","typeString":"struct Timers.BlockNumber"}},"visibility":"internal"}],"src":"1908:26:50"},"returnParameters":{"id":14774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14786,"src":"1958:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14772,"name":"bool","nodeType":"ElementaryTypeName","src":"1958:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1957:6:50"},"scope":14787,"src":"1890:149:50","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":14788,"src":"168:1873:50","usedErrors":[]}],"src":"85:1957:50"},"id":50},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[15148],"Math":[16203],"Strings":[14573]},"id":15149,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14789,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:51"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":14790,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15149,"sourceUnit":14574,"src":"137:24:51","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":14791,"nodeType":"StructuredDocumentation","src":"163:205:51","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":15148,"linearizedBaseContracts":[15148],"name":"ECDSA","nameLocation":"377:5:51","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":14797,"members":[{"id":14792,"name":"NoError","nameLocation":"417:7:51","nodeType":"EnumValue","src":"417:7:51"},{"id":14793,"name":"InvalidSignature","nameLocation":"434:16:51","nodeType":"EnumValue","src":"434:16:51"},{"id":14794,"name":"InvalidSignatureLength","nameLocation":"460:22:51","nodeType":"EnumValue","src":"460:22:51"},{"id":14795,"name":"InvalidSignatureS","nameLocation":"492:17:51","nodeType":"EnumValue","src":"492:17:51"},{"id":14796,"name":"InvalidSignatureV","nameLocation":"519:17:51","nodeType":"EnumValue","src":"519:17:51"}],"name":"RecoverError","nameLocation":"394:12:51","nodeType":"EnumDefinition","src":"389:175:51"},{"body":{"id":14840,"nodeType":"Block","src":"624:457:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"id":14806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14803,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"638:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14804,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"647:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":14805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"660:7:51","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":14792,"src":"647:20:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14809,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"734:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14810,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"743:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":14811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"756:16:51","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":14793,"src":"743:29:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"id":14821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14818,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"843:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14819,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"852:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":14820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"865:22:51","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":14794,"src":"852:35:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"id":14830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14827,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14800,"src":"965:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14828,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"974:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":14829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"987:17:51","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":14795,"src":"974:30:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14836,"nodeType":"IfStatement","src":"961:114:51","trueBody":{"id":14835,"nodeType":"Block","src":"1006:69:51","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":14832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:51","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":14831,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":14833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:44:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14834,"nodeType":"ExpressionStatement","src":"1020:44:51"}]}},"id":14837,"nodeType":"IfStatement","src":"839:236:51","trueBody":{"id":14826,"nodeType":"Block","src":"889:66:51","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":14823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:51","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":14822,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"903:41:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14825,"nodeType":"ExpressionStatement","src":"903:41:51"}]}},"id":14838,"nodeType":"IfStatement","src":"730:345:51","trueBody":{"id":14817,"nodeType":"Block","src":"774:59:51","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":14814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:51","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":14813,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:51","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":14815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:34:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14816,"nodeType":"ExpressionStatement","src":"788:34:51"}]}},"id":14839,"nodeType":"IfStatement","src":"634:441:51","trueBody":{"id":14808,"nodeType":"Block","src":"669:55:51","statements":[{"functionReturnParameters":14802,"id":14807,"nodeType":"Return","src":"683:7:51"}]}}]},"id":14841,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:51","nodeType":"FunctionDefinition","parameters":{"id":14801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14800,"mutability":"mutable","name":"error","nameLocation":"604:5:51","nodeType":"VariableDeclaration","scope":14841,"src":"591:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":14799,"nodeType":"UserDefinedTypeName","pathNode":{"id":14798,"name":"RecoverError","nameLocations":["591:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"591:12:51"},"referencedDeclaration":14797,"src":"591:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:51"},"returnParameters":{"id":14802,"nodeType":"ParameterList","parameters":[],"src":"624:0:51"},"scope":15148,"src":"570:511:51","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":14886,"nodeType":"Block","src":"2249:626:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14854,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"2263:9:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2273:6:51","memberName":"length","nodeType":"MemberAccess","src":"2263:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":14856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:51","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14884,"nodeType":"Block","src":"2788:81:51","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":14878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14876,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:51","typeDescriptions":{}}},"id":14879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14880,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"2822:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":14881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2835:22:51","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":14794,"src":"2822:35:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"id":14882,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":14853,"id":14883,"nodeType":"Return","src":"2802:56:51"}]},"id":14885,"nodeType":"IfStatement","src":"2259:610:51","trueBody":{"id":14875,"nodeType":"Block","src":"2287:495:51","statements":[{"assignments":[14859],"declarations":[{"constant":false,"id":14859,"mutability":"mutable","name":"r","nameLocation":"2309:1:51","nodeType":"VariableDeclaration","scope":14875,"src":"2301:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14860,"nodeType":"VariableDeclarationStatement","src":"2301:9:51"},{"assignments":[14862],"declarations":[{"constant":false,"id":14862,"mutability":"mutable","name":"s","nameLocation":"2332:1:51","nodeType":"VariableDeclaration","scope":14875,"src":"2324:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14863,"nodeType":"VariableDeclarationStatement","src":"2324:9:51"},{"assignments":[14865],"declarations":[{"constant":false,"id":14865,"mutability":"mutable","name":"v","nameLocation":"2353:1:51","nodeType":"VariableDeclaration","scope":14875,"src":"2347:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14864,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":14866,"nodeType":"VariableDeclarationStatement","src":"2347:7:51"},{"AST":{"nodeType":"YulBlock","src":"2555:171:51","statements":[{"nodeType":"YulAssignment","src":"2573:32:51","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2588:9:51"},{"kind":"number","nodeType":"YulLiteral","src":"2599:4:51","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:51"},"nodeType":"YulFunctionCall","src":"2584:20:51"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:51"},"nodeType":"YulFunctionCall","src":"2578:27:51"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2573:1:51"}]},{"nodeType":"YulAssignment","src":"2622:32:51","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2637:9:51"},{"kind":"number","nodeType":"YulLiteral","src":"2648:4:51","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2633:3:51"},"nodeType":"YulFunctionCall","src":"2633:20:51"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2627:5:51"},"nodeType":"YulFunctionCall","src":"2627:27:51"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2622:1:51"}]},{"nodeType":"YulAssignment","src":"2671:41:51","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2681:1:51","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2694:9:51"},{"kind":"number","nodeType":"YulLiteral","src":"2705:4:51","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2690:3:51"},"nodeType":"YulFunctionCall","src":"2690:20:51"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2684:5:51"},"nodeType":"YulFunctionCall","src":"2684:27:51"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2676:4:51"},"nodeType":"YulFunctionCall","src":"2676:36:51"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2671:1:51"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":14859,"isOffset":false,"isSlot":false,"src":"2573:1:51","valueSize":1},{"declaration":14862,"isOffset":false,"isSlot":false,"src":"2622:1:51","valueSize":1},{"declaration":14846,"isOffset":false,"isSlot":false,"src":"2588:9:51","valueSize":1},{"declaration":14846,"isOffset":false,"isSlot":false,"src":"2637:9:51","valueSize":1},{"declaration":14846,"isOffset":false,"isSlot":false,"src":"2694:9:51","valueSize":1},{"declaration":14865,"isOffset":false,"isSlot":false,"src":"2671:1:51","valueSize":1}],"id":14867,"nodeType":"InlineAssembly","src":"2546:180:51"},{"expression":{"arguments":[{"id":14869,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14844,"src":"2757:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14870,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"2763:1:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14871,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14859,"src":"2766:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14872,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14862,"src":"2769:1:51","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":14868,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[14887,14961,15055],"referencedDeclaration":15055,"src":"2746:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":14873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":14853,"id":14874,"nodeType":"Return","src":"2739:32:51"}]}}]},"documentation":{"id":14842,"nodeType":"StructuredDocumentation","src":"1087:1053:51","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":14887,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:51","nodeType":"FunctionDefinition","parameters":{"id":14847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14844,"mutability":"mutable","name":"hash","nameLocation":"2173:4:51","nodeType":"VariableDeclaration","scope":14887,"src":"2165:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14846,"mutability":"mutable","name":"signature","nameLocation":"2192:9:51","nodeType":"VariableDeclaration","scope":14887,"src":"2179:22:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14845,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:51"},"returnParameters":{"id":14853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14887,"src":"2226:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14848,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14887,"src":"2235:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":14851,"nodeType":"UserDefinedTypeName","pathNode":{"id":14850,"name":"RecoverError","nameLocations":["2235:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"2235:12:51"},"referencedDeclaration":14797,"src":"2235:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:51"},"scope":15148,"src":"2145:730:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14913,"nodeType":"Block","src":"3748:140:51","statements":[{"assignments":[14898,14901],"declarations":[{"constant":false,"id":14898,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:51","nodeType":"VariableDeclaration","scope":14913,"src":"3759:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14897,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14901,"mutability":"mutable","name":"error","nameLocation":"3791:5:51","nodeType":"VariableDeclaration","scope":14913,"src":"3778:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":14900,"nodeType":"UserDefinedTypeName","pathNode":{"id":14899,"name":"RecoverError","nameLocations":["3778:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"3778:12:51"},"referencedDeclaration":14797,"src":"3778:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":14906,"initialValue":{"arguments":[{"id":14903,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14890,"src":"3811:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14904,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14892,"src":"3817:9:51","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":14902,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[14887,14961,15055],"referencedDeclaration":14887,"src":"3800:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":14905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:27:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:51"},{"expression":{"arguments":[{"id":14908,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14901,"src":"3849:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}],"id":14907,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"3837:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$14797_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":14909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3837:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14910,"nodeType":"ExpressionStatement","src":"3837:18:51"},{"expression":{"id":14911,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14898,"src":"3872:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14896,"id":14912,"nodeType":"Return","src":"3865:16:51"}]},"documentation":{"id":14888,"nodeType":"StructuredDocumentation","src":"2881:775:51","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":14914,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:51","nodeType":"FunctionDefinition","parameters":{"id":14893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14890,"mutability":"mutable","name":"hash","nameLocation":"3686:4:51","nodeType":"VariableDeclaration","scope":14914,"src":"3678:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14892,"mutability":"mutable","name":"signature","nameLocation":"3705:9:51","nodeType":"VariableDeclaration","scope":14914,"src":"3692:22:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14891,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:51"},"returnParameters":{"id":14896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14914,"src":"3739:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14894,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:51"},"scope":15148,"src":"3661:227:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14960,"nodeType":"Block","src":"4275:203:51","statements":[{"assignments":[14930],"declarations":[{"constant":false,"id":14930,"mutability":"mutable","name":"s","nameLocation":"4293:1:51","nodeType":"VariableDeclaration","scope":14960,"src":"4285:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4285:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14937,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14931,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14921,"src":"4297:2:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":14934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4310:66:51","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":14933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4302:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4302:7:51","typeDescriptions":{}}},"id":14935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:75:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4297:80:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4285:92:51"},{"assignments":[14939],"declarations":[{"constant":false,"id":14939,"mutability":"mutable","name":"v","nameLocation":"4393:1:51","nodeType":"VariableDeclaration","scope":14960,"src":"4387:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14938,"name":"uint8","nodeType":"ElementaryTypeName","src":"4387:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":14952,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14944,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14921,"src":"4412:2:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4404:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14942,"name":"uint256","nodeType":"ElementaryTypeName","src":"4404:7:51","typeDescriptions":{}}},"id":14945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:11:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":14946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4419:3:51","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4404:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14948,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4403:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":14949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4426:2:51","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4403:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4397:5:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14940,"name":"uint8","nodeType":"ElementaryTypeName","src":"4397:5:51","typeDescriptions":{}}},"id":14951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4397:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4387:42:51"},{"expression":{"arguments":[{"id":14954,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14917,"src":"4457:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14955,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14939,"src":"4463:1:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":14956,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14919,"src":"4466:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14957,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14930,"src":"4469:1:51","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":14953,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[14887,14961,15055],"referencedDeclaration":15055,"src":"4446:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":14958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4446:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":14928,"id":14959,"nodeType":"Return","src":"4439:32:51"}]},"documentation":{"id":14915,"nodeType":"StructuredDocumentation","src":"3894:243:51","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":14961,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:51","nodeType":"FunctionDefinition","parameters":{"id":14922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14917,"mutability":"mutable","name":"hash","nameLocation":"4179:4:51","nodeType":"VariableDeclaration","scope":14961,"src":"4171:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4171:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14919,"mutability":"mutable","name":"r","nameLocation":"4201:1:51","nodeType":"VariableDeclaration","scope":14961,"src":"4193:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14921,"mutability":"mutable","name":"vs","nameLocation":"4220:2:51","nodeType":"VariableDeclaration","scope":14961,"src":"4212:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4212:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:67:51"},"returnParameters":{"id":14928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14961,"src":"4252:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14923,"name":"address","nodeType":"ElementaryTypeName","src":"4252:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14961,"src":"4261:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":14926,"nodeType":"UserDefinedTypeName","pathNode":{"id":14925,"name":"RecoverError","nameLocations":["4261:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"4261:12:51"},"referencedDeclaration":14797,"src":"4261:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4251:23:51"},"scope":15148,"src":"4142:336:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14990,"nodeType":"Block","src":"4759:136:51","statements":[{"assignments":[14974,14977],"declarations":[{"constant":false,"id":14974,"mutability":"mutable","name":"recovered","nameLocation":"4778:9:51","nodeType":"VariableDeclaration","scope":14990,"src":"4770:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14973,"name":"address","nodeType":"ElementaryTypeName","src":"4770:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14977,"mutability":"mutable","name":"error","nameLocation":"4802:5:51","nodeType":"VariableDeclaration","scope":14990,"src":"4789:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":14976,"nodeType":"UserDefinedTypeName","pathNode":{"id":14975,"name":"RecoverError","nameLocations":["4789:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"4789:12:51"},"referencedDeclaration":14797,"src":"4789:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":14983,"initialValue":{"arguments":[{"id":14979,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14964,"src":"4822:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14980,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14966,"src":"4828:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14981,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14968,"src":"4831:2:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14978,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[14887,14961,15055],"referencedDeclaration":14961,"src":"4811:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":14982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:23:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4769:65:51"},{"expression":{"arguments":[{"id":14985,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14977,"src":"4856:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}],"id":14984,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"4844:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$14797_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":14986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4844:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14987,"nodeType":"ExpressionStatement","src":"4844:18:51"},{"expression":{"id":14988,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14974,"src":"4879:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":14972,"id":14989,"nodeType":"Return","src":"4872:16:51"}]},"documentation":{"id":14962,"nodeType":"StructuredDocumentation","src":"4484:154:51","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":14991,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4652:7:51","nodeType":"FunctionDefinition","parameters":{"id":14969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14964,"mutability":"mutable","name":"hash","nameLocation":"4677:4:51","nodeType":"VariableDeclaration","scope":14991,"src":"4669:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4669:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14966,"mutability":"mutable","name":"r","nameLocation":"4699:1:51","nodeType":"VariableDeclaration","scope":14991,"src":"4691:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4691:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14968,"mutability":"mutable","name":"vs","nameLocation":"4718:2:51","nodeType":"VariableDeclaration","scope":14991,"src":"4710:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4710:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4659:67:51"},"returnParameters":{"id":14972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14991,"src":"4750:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14970,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4749:9:51"},"scope":15148,"src":"4643:252:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15054,"nodeType":"Block","src":"5218:1345:51","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15010,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15000,"src":"6114:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6106:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":15008,"name":"uint256","nodeType":"ElementaryTypeName","src":"6106:7:51","typeDescriptions":{}}},"id":15011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6106:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":15012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119:66:51","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6106:79:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15023,"nodeType":"IfStatement","src":"6102:161:51","trueBody":{"id":15022,"nodeType":"Block","src":"6187:76:51","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":15016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6217:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6209:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15014,"name":"address","nodeType":"ElementaryTypeName","src":"6209:7:51","typeDescriptions":{}}},"id":15017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6209:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15018,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"6221:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":15019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6234:17:51","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":14795,"src":"6221:30:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"id":15020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6208:44:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":15007,"id":15021,"nodeType":"Return","src":"6201:51:51"}]}},{"assignments":[15025],"declarations":[{"constant":false,"id":15025,"mutability":"mutable","name":"signer","nameLocation":"6365:6:51","nodeType":"VariableDeclaration","scope":15054,"src":"6357:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15024,"name":"address","nodeType":"ElementaryTypeName","src":"6357:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15032,"initialValue":{"arguments":[{"id":15027,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14994,"src":"6384:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15028,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14996,"src":"6390:1:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":15029,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14998,"src":"6393:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15030,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15000,"src":"6396:1:51","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":15026,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6374:9:51","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":15031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6374:24:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6357:41:51"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15033,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15025,"src":"6412:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6430:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6422:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15034,"name":"address","nodeType":"ElementaryTypeName","src":"6422:7:51","typeDescriptions":{}}},"id":15037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6422:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6412:20:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15048,"nodeType":"IfStatement","src":"6408:101:51","trueBody":{"id":15047,"nodeType":"Block","src":"6434:75:51","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":15041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6464:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":15040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15039,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:51","typeDescriptions":{}}},"id":15042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6456:10:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15043,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"6468:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":15044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6481:16:51","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":14793,"src":"6468:29:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"id":15045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6455:43:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":15007,"id":15046,"nodeType":"Return","src":"6448:50:51"}]}},{"expression":{"components":[{"id":15049,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15025,"src":"6527:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15050,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14797,"src":"6535:12:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$14797_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":15051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6548:7:51","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":14792,"src":"6535:20:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"id":15052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6526:30:51","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":15007,"id":15053,"nodeType":"Return","src":"6519:37:51"}]},"documentation":{"id":14992,"nodeType":"StructuredDocumentation","src":"4901:163:51","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":15055,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5078:10:51","nodeType":"FunctionDefinition","parameters":{"id":15001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14994,"mutability":"mutable","name":"hash","nameLocation":"5106:4:51","nodeType":"VariableDeclaration","scope":15055,"src":"5098:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5098:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14996,"mutability":"mutable","name":"v","nameLocation":"5126:1:51","nodeType":"VariableDeclaration","scope":15055,"src":"5120:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14995,"name":"uint8","nodeType":"ElementaryTypeName","src":"5120:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":14998,"mutability":"mutable","name":"r","nameLocation":"5145:1:51","nodeType":"VariableDeclaration","scope":15055,"src":"5137:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5137:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15000,"mutability":"mutable","name":"s","nameLocation":"5164:1:51","nodeType":"VariableDeclaration","scope":15055,"src":"5156:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5156:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5088:83:51"},"returnParameters":{"id":15007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15055,"src":"5195:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15002,"name":"address","nodeType":"ElementaryTypeName","src":"5195:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15055,"src":"5204:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":15005,"nodeType":"UserDefinedTypeName","pathNode":{"id":15004,"name":"RecoverError","nameLocations":["5204:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"5204:12:51"},"referencedDeclaration":14797,"src":"5204:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5194:23:51"},"scope":15148,"src":"5069:1494:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15087,"nodeType":"Block","src":"6828:138:51","statements":[{"assignments":[15070,15073],"declarations":[{"constant":false,"id":15070,"mutability":"mutable","name":"recovered","nameLocation":"6847:9:51","nodeType":"VariableDeclaration","scope":15087,"src":"6839:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15069,"name":"address","nodeType":"ElementaryTypeName","src":"6839:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15073,"mutability":"mutable","name":"error","nameLocation":"6871:5:51","nodeType":"VariableDeclaration","scope":15087,"src":"6858:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":15072,"nodeType":"UserDefinedTypeName","pathNode":{"id":15071,"name":"RecoverError","nameLocations":["6858:12:51"],"nodeType":"IdentifierPath","referencedDeclaration":14797,"src":"6858:12:51"},"referencedDeclaration":14797,"src":"6858:12:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":15080,"initialValue":{"arguments":[{"id":15075,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15058,"src":"6891:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15076,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15060,"src":"6897:1:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":15077,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"6900:1:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15078,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15064,"src":"6903:1:51","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":15074,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[14887,14961,15055],"referencedDeclaration":15055,"src":"6880:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":15079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6880:25:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$14797_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6838:67:51"},{"expression":{"arguments":[{"id":15082,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15073,"src":"6927:5:51","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$14797","typeString":"enum ECDSA.RecoverError"}],"id":15081,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14841,"src":"6915:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$14797_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":15083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6915:18:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15084,"nodeType":"ExpressionStatement","src":"6915:18:51"},{"expression":{"id":15085,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"6950:9:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":15068,"id":15086,"nodeType":"Return","src":"6943:16:51"}]},"documentation":{"id":15056,"nodeType":"StructuredDocumentation","src":"6569:122:51","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":15088,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6705:7:51","nodeType":"FunctionDefinition","parameters":{"id":15065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15058,"mutability":"mutable","name":"hash","nameLocation":"6730:4:51","nodeType":"VariableDeclaration","scope":15088,"src":"6722:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6722:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15060,"mutability":"mutable","name":"v","nameLocation":"6750:1:51","nodeType":"VariableDeclaration","scope":15088,"src":"6744:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15059,"name":"uint8","nodeType":"ElementaryTypeName","src":"6744:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":15062,"mutability":"mutable","name":"r","nameLocation":"6769:1:51","nodeType":"VariableDeclaration","scope":15088,"src":"6761:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6761:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15064,"mutability":"mutable","name":"s","nameLocation":"6788:1:51","nodeType":"VariableDeclaration","scope":15088,"src":"6780:9:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6780:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6712:83:51"},"returnParameters":{"id":15068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15088,"src":"6819:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15066,"name":"address","nodeType":"ElementaryTypeName","src":"6819:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6818:9:51"},"scope":15148,"src":"6696:270:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15104,"nodeType":"Block","src":"7334:187:51","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":15099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7472:34:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},"value":"\u0019Ethereum Signed Message:\n32"},{"id":15100,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"7508:4:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a3332\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15097,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7455:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7459:12:51","memberName":"encodePacked","nodeType":"MemberAccess","src":"7455:16:51","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7455:58:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15096,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7445:9:51","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7445:69:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15095,"id":15103,"nodeType":"Return","src":"7438:76:51"}]},"documentation":{"id":15089,"nodeType":"StructuredDocumentation","src":"6972:279:51","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":15105,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7265:22:51","nodeType":"FunctionDefinition","parameters":{"id":15092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15091,"mutability":"mutable","name":"hash","nameLocation":"7296:4:51","nodeType":"VariableDeclaration","scope":15105,"src":"7288:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7288:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7287:14:51"},"returnParameters":{"id":15095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15094,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15105,"src":"7325:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7325:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7324:9:51"},"scope":15148,"src":"7256:265:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15126,"nodeType":"Block","src":"7886:116:51","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":15116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7930:32:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":15119,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15108,"src":"7981:1:51","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7983:6:51","memberName":"length","nodeType":"MemberAccess","src":"7981:8:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15117,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14573,"src":"7964:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$14573_$","typeString":"type(library Strings)"}},"id":15118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7972:8:51","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14456,"src":"7964:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":15121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7964:26:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":15122,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15108,"src":"7992:1:51","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":15114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7913:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7917:12:51","memberName":"encodePacked","nodeType":"MemberAccess","src":"7913:16:51","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7913:81:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7903:9:51","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7903:92:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15112,"id":15125,"nodeType":"Return","src":"7896:99:51"}]},"documentation":{"id":15106,"nodeType":"StructuredDocumentation","src":"7527:274:51","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":15127,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7815:22:51","nodeType":"FunctionDefinition","parameters":{"id":15109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15108,"mutability":"mutable","name":"s","nameLocation":"7851:1:51","nodeType":"VariableDeclaration","scope":15127,"src":"7838:14:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15107,"name":"bytes","nodeType":"ElementaryTypeName","src":"7838:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7837:16:51"},"returnParameters":{"id":15112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15127,"src":"7877:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7877:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7876:9:51"},"scope":15148,"src":"7806:196:51","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15146,"nodeType":"Block","src":"8443:92:51","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":15140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8487:10:51","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":15141,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15130,"src":"8499:15:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15142,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15132,"src":"8516:10:51","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":15138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8470:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8474:12:51","memberName":"encodePacked","nodeType":"MemberAccess","src":"8470:16:51","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8470:57:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8460:9:51","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8460:68:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15136,"id":15145,"nodeType":"Return","src":"8453:75:51"}]},"documentation":{"id":15128,"nodeType":"StructuredDocumentation","src":"8008:328:51","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":15147,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8350:15:51","nodeType":"FunctionDefinition","parameters":{"id":15133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15130,"mutability":"mutable","name":"domainSeparator","nameLocation":"8374:15:51","nodeType":"VariableDeclaration","scope":15147,"src":"8366:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8366:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15132,"mutability":"mutable","name":"structHash","nameLocation":"8399:10:51","nodeType":"VariableDeclaration","scope":15147,"src":"8391:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8391:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8365:45:51"},"returnParameters":{"id":15136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15147,"src":"8434:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8434:7:51","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8433:9:51"},"scope":15148,"src":"8341:194:51","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":15149,"src":"369:8168:51","usedErrors":[]}],"src":"112:8426:51"},"id":51},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","exportedSymbols":{"ECDSA":[15148],"EIP712":[15302],"Math":[16203],"Strings":[14573]},"id":15303,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15150,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:52"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":15151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15303,"sourceUnit":15149,"src":"138:21:52","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":15152,"nodeType":"StructuredDocumentation","src":"161:1142:52","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":15302,"linearizedBaseContracts":[15302],"name":"EIP712","nameLocation":"1322:6:52","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15154,"mutability":"immutable","name":"_CACHED_DOMAIN_SEPARATOR","nameLocation":"1598:24:52","nodeType":"VariableDeclaration","scope":15302,"src":"1572:50:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1572:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":15156,"mutability":"immutable","name":"_CACHED_CHAIN_ID","nameLocation":"1654:16:52","nodeType":"VariableDeclaration","scope":15302,"src":"1628:42:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1628:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":15158,"mutability":"immutable","name":"_CACHED_THIS","nameLocation":"1702:12:52","nodeType":"VariableDeclaration","scope":15302,"src":"1676:38:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15157,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":15160,"mutability":"immutable","name":"_HASHED_NAME","nameLocation":"1747:12:52","nodeType":"VariableDeclaration","scope":15302,"src":"1721:38:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1721:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":15162,"mutability":"immutable","name":"_HASHED_VERSION","nameLocation":"1791:15:52","nodeType":"VariableDeclaration","scope":15302,"src":"1765:41:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1765:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":15164,"mutability":"immutable","name":"_TYPE_HASH","nameLocation":"1838:10:52","nodeType":"VariableDeclaration","scope":15302,"src":"1812:36:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1812:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"body":{"id":15228,"nodeType":"Block","src":"2519:547:52","statements":[{"assignments":[15173],"declarations":[{"constant":false,"id":15173,"mutability":"mutable","name":"hashedName","nameLocation":"2537:10:52","nodeType":"VariableDeclaration","scope":15228,"src":"2529:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2529:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15180,"initialValue":{"arguments":[{"arguments":[{"id":15177,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15167,"src":"2566:4:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2560:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15175,"name":"bytes","nodeType":"ElementaryTypeName","src":"2560:5:52","typeDescriptions":{}}},"id":15178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:11:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15174,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2550:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2550:22:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2529:43:52"},{"assignments":[15182],"declarations":[{"constant":false,"id":15182,"mutability":"mutable","name":"hashedVersion","nameLocation":"2590:13:52","nodeType":"VariableDeclaration","scope":15228,"src":"2582:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2582:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15189,"initialValue":{"arguments":[{"arguments":[{"id":15186,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15169,"src":"2622:7:52","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":15185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2616:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":15184,"name":"bytes","nodeType":"ElementaryTypeName","src":"2616:5:52","typeDescriptions":{}}},"id":15187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:14:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15183,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2606:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2606:25:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2582:49:52"},{"assignments":[15191],"declarations":[{"constant":false,"id":15191,"mutability":"mutable","name":"typeHash","nameLocation":"2649:8:52","nodeType":"VariableDeclaration","scope":15228,"src":"2641:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2641:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":15195,"initialValue":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":15193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2683:84:52","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":15192,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2660:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2660:117:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2641:136:52"},{"expression":{"id":15198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15196,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15160,"src":"2787:12:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15197,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"2802:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2787:25:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15199,"nodeType":"ExpressionStatement","src":"2787:25:52"},{"expression":{"id":15202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15200,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"2822:15:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15201,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15182,"src":"2840:13:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2822:31:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15203,"nodeType":"ExpressionStatement","src":"2822:31:52"},{"expression":{"id":15207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15204,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15156,"src":"2863:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15205,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2882:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2888:7:52","memberName":"chainid","nodeType":"MemberAccess","src":"2882:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2863:32:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15208,"nodeType":"ExpressionStatement","src":"2863:32:52"},{"expression":{"id":15215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15209,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"2905:24:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15211,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"2954:8:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15212,"name":"hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15173,"src":"2964:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15213,"name":"hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15182,"src":"2976:13:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15210,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15285,"src":"2932:21:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":15214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2932:58:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2905:85:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15216,"nodeType":"ExpressionStatement","src":"2905:85:52"},{"expression":{"id":15222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15217,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15158,"src":"3000:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15220,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3023:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}],"id":15219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3015:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15218,"name":"address","nodeType":"ElementaryTypeName","src":"3015:7:52","typeDescriptions":{}}},"id":15221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3000:28:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15223,"nodeType":"ExpressionStatement","src":"3000:28:52"},{"expression":{"id":15226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15224,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15164,"src":"3038:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15225,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15191,"src":"3051:8:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3038:21:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15227,"nodeType":"ExpressionStatement","src":"3038:21:52"}]},"documentation":{"id":15165,"nodeType":"StructuredDocumentation","src":"1900:559:52","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":15229,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15167,"mutability":"mutable","name":"name","nameLocation":"2490:4:52","nodeType":"VariableDeclaration","scope":15229,"src":"2476:18:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15166,"name":"string","nodeType":"ElementaryTypeName","src":"2476:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15169,"mutability":"mutable","name":"version","nameLocation":"2510:7:52","nodeType":"VariableDeclaration","scope":15229,"src":"2496:21:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15168,"name":"string","nodeType":"ElementaryTypeName","src":"2496:6:52","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2475:43:52"},"returnParameters":{"id":15171,"nodeType":"ParameterList","parameters":[],"src":"2519:0:52"},"scope":15302,"src":"2464:602:52","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":15257,"nodeType":"Block","src":"3214:246:52","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15237,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3236:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}],"id":15236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15235,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:52","typeDescriptions":{}}},"id":15238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3228:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15239,"name":"_CACHED_THIS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15158,"src":"3245:12:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3228:29:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15241,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3261:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3267:7:52","memberName":"chainid","nodeType":"MemberAccess","src":"3261:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":15243,"name":"_CACHED_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15156,"src":"3278:16:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3261:33:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3228:66:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15255,"nodeType":"Block","src":"3358:96:52","statements":[{"expression":{"arguments":[{"id":15250,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15164,"src":"3401:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15251,"name":"_HASHED_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15160,"src":"3413:12:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15252,"name":"_HASHED_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"3427:15:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15249,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15285,"src":"3379:21:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) view returns (bytes32)"}},"id":15253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3379:64:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15234,"id":15254,"nodeType":"Return","src":"3372:71:52"}]},"id":15256,"nodeType":"IfStatement","src":"3224:230:52","trueBody":{"id":15248,"nodeType":"Block","src":"3296:56:52","statements":[{"expression":{"id":15246,"name":"_CACHED_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"3317:24:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15234,"id":15247,"nodeType":"Return","src":"3310:31:52"}]}}]},"documentation":{"id":15230,"nodeType":"StructuredDocumentation","src":"3072:75:52","text":" @dev Returns the domain separator for the current chain."},"id":15258,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3161:18:52","nodeType":"FunctionDefinition","parameters":{"id":15231,"nodeType":"ParameterList","parameters":[],"src":"3179:2:52"},"returnParameters":{"id":15234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15233,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15258,"src":"3205:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3204:9:52"},"scope":15302,"src":"3152:308:52","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15284,"nodeType":"Block","src":"3615:108:52","statements":[{"expression":{"arguments":[{"arguments":[{"id":15272,"name":"typeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"3653:8:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15273,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15262,"src":"3663:8:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15274,"name":"versionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15264,"src":"3673:11:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":15275,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3686:5:52","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3692:7:52","memberName":"chainid","nodeType":"MemberAccess","src":"3686:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":15279,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3709:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$15302","typeString":"contract EIP712"}],"id":15278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3701:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15277,"name":"address","nodeType":"ElementaryTypeName","src":"3701:7:52","typeDescriptions":{}}},"id":15280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3701:13:52","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":15270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3642:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3646:6:52","memberName":"encode","nodeType":"MemberAccess","src":"3642:10:52","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:73:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3632:9:52","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3632:84:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15268,"id":15283,"nodeType":"Return","src":"3625:91:52"}]},"id":15285,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3475:21:52","nodeType":"FunctionDefinition","parameters":{"id":15265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15260,"mutability":"mutable","name":"typeHash","nameLocation":"3514:8:52","nodeType":"VariableDeclaration","scope":15285,"src":"3506:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3506:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15262,"mutability":"mutable","name":"nameHash","nameLocation":"3540:8:52","nodeType":"VariableDeclaration","scope":15285,"src":"3532:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3532:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15264,"mutability":"mutable","name":"versionHash","nameLocation":"3566:11:52","nodeType":"VariableDeclaration","scope":15285,"src":"3558:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3558:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3496:87:52"},"returnParameters":{"id":15268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15285,"src":"3606:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3606:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3605:9:52"},"scope":15302,"src":"3466:257:52","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":15300,"nodeType":"Block","src":"4434:79:52","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":15295,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15258,"src":"4473:18:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:20:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15297,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15288,"src":"4495:10:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15293,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"4451:5:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$15148_$","typeString":"type(library ECDSA)"}},"id":15294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4457:15:52","memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":15147,"src":"4451:21:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":15298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4451:55:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15292,"id":15299,"nodeType":"Return","src":"4444:62:52"}]},"documentation":{"id":15286,"nodeType":"StructuredDocumentation","src":"3729:614:52","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":15301,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4357:16:52","nodeType":"FunctionDefinition","parameters":{"id":15289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15288,"mutability":"mutable","name":"structHash","nameLocation":"4382:10:52","nodeType":"VariableDeclaration","scope":15301,"src":"4374:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4374:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4373:20:52"},"returnParameters":{"id":15292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15301,"src":"4425:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4425:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4424:9:52"},"scope":15302,"src":"4348:165:52","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":15303,"src":"1304:3211:52","usedErrors":[]}],"src":"113:4403:52"},"id":52},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[15326],"IERC165":[15338]},"id":15327,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15304,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:53"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":15305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15327,"sourceUnit":15339,"src":"124:23:53","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":15307,"name":"IERC165","nameLocations":["754:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":15338,"src":"754:7:53"},"id":15308,"nodeType":"InheritanceSpecifier","src":"754:7:53"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":15306,"nodeType":"StructuredDocumentation","src":"149:576:53","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":15326,"linearizedBaseContracts":[15326,15338],"name":"ERC165","nameLocation":"744:6:53","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[15337],"body":{"id":15324,"nodeType":"Block","src":"920:64:53","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":15322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15317,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15311,"src":"937:11:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":15319,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15338,"src":"957:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$15338_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$15338_$","typeString":"type(contract IERC165)"}],"id":15318,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:53","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$15338","typeString":"type(contract IERC165)"}},"id":15321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:53","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15316,"id":15323,"nodeType":"Return","src":"930:47:53"}]},"documentation":{"id":15309,"nodeType":"StructuredDocumentation","src":"768:56:53","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":15325,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:53","nodeType":"FunctionDefinition","overrides":{"id":15313,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:53"},"parameters":{"id":15312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15311,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:53","nodeType":"VariableDeclaration","scope":15325,"src":"856:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15310,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:53"},"returnParameters":{"id":15316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15325,"src":"914:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15314,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:53"},"scope":15326,"src":"829:155:53","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":15327,"src":"726:260:53","usedErrors":[]}],"src":"99:888:53"},"id":53},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[15338]},"id":15339,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15328,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:54"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":15329,"nodeType":"StructuredDocumentation","src":"125:279:54","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":15338,"linearizedBaseContracts":[15338],"name":"IERC165","nameLocation":"415:7:54","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":15330,"nodeType":"StructuredDocumentation","src":"429:340:54","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":15337,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:54","nodeType":"FunctionDefinition","parameters":{"id":15333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15332,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:54","nodeType":"VariableDeclaration","scope":15337,"src":"801:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15331,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:54"},"returnParameters":{"id":15336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15337,"src":"844:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15334,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:54"},"scope":15338,"src":"774:76:54","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":15339,"src":"405:447:54","usedErrors":[]}],"src":"100:753:54"},"id":54},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[16203]},"id":16204,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":15340,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:55"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":15341,"nodeType":"StructuredDocumentation","src":"128:73:55","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":16203,"linearizedBaseContracts":[16203],"name":"Math","nameLocation":"210:4:55","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":15345,"members":[{"id":15342,"name":"Down","nameLocation":"245:4:55","nodeType":"EnumValue","src":"245:4:55"},{"id":15343,"name":"Up","nameLocation":"287:2:55","nodeType":"EnumValue","src":"287:2:55"},{"id":15344,"name":"Zero","nameLocation":"318:4:55","nodeType":"EnumValue","src":"318:4:55"}],"name":"Rounding","nameLocation":"226:8:55","nodeType":"EnumDefinition","src":"221:122:55"},{"body":{"id":15362,"nodeType":"Block","src":"480:37:55","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15355,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15348,"src":"497:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15356,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15350,"src":"501:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":15359,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15350,"src":"509:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:55","trueExpression":{"id":15358,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15348,"src":"505:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15354,"id":15361,"nodeType":"Return","src":"490:20:55"}]},"documentation":{"id":15346,"nodeType":"StructuredDocumentation","src":"349:59:55","text":" @dev Returns the largest of two numbers."},"id":15363,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:55","nodeType":"FunctionDefinition","parameters":{"id":15351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15348,"mutability":"mutable","name":"a","nameLocation":"434:1:55","nodeType":"VariableDeclaration","scope":15363,"src":"426:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15347,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15350,"mutability":"mutable","name":"b","nameLocation":"445:1:55","nodeType":"VariableDeclaration","scope":15363,"src":"437:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15349,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:55"},"returnParameters":{"id":15354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15363,"src":"471:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15352,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:55"},"scope":16203,"src":"413:104:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15380,"nodeType":"Block","src":"655:37:55","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15373,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"672:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15374,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15368,"src":"676:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":15377,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15368,"src":"684:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:55","trueExpression":{"id":15376,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15366,"src":"680:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15372,"id":15379,"nodeType":"Return","src":"665:20:55"}]},"documentation":{"id":15364,"nodeType":"StructuredDocumentation","src":"523:60:55","text":" @dev Returns the smallest of two numbers."},"id":15381,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:55","nodeType":"FunctionDefinition","parameters":{"id":15369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15366,"mutability":"mutable","name":"a","nameLocation":"609:1:55","nodeType":"VariableDeclaration","scope":15381,"src":"601:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15365,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15368,"mutability":"mutable","name":"b","nameLocation":"620:1:55","nodeType":"VariableDeclaration","scope":15381,"src":"612:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15367,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:55"},"returnParameters":{"id":15372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15381,"src":"646:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15370,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:55"},"scope":16203,"src":"588:104:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15403,"nodeType":"Block","src":"876:82:55","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15391,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"931:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":15392,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15386,"src":"935:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15394,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15395,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"941:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":15396,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15386,"src":"945:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":15399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15390,"id":15402,"nodeType":"Return","src":"923:28:55"}]},"documentation":{"id":15382,"nodeType":"StructuredDocumentation","src":"698:102:55","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":15404,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:55","nodeType":"FunctionDefinition","parameters":{"id":15387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15384,"mutability":"mutable","name":"a","nameLocation":"830:1:55","nodeType":"VariableDeclaration","scope":15404,"src":"822:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15383,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15386,"mutability":"mutable","name":"b","nameLocation":"841:1:55","nodeType":"VariableDeclaration","scope":15404,"src":"833:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15385,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:55"},"returnParameters":{"id":15390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15389,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15404,"src":"867:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15388,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:55"},"scope":16203,"src":"805:153:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15428,"nodeType":"Block","src":"1228:123:55","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15414,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15407,"src":"1316:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15418,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15407,"src":"1330:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":15419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15421,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15422,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15409,"src":"1339:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:55","trueExpression":{"hexValue":"30","id":15417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15413,"id":15427,"nodeType":"Return","src":"1309:35:55"}]},"documentation":{"id":15405,"nodeType":"StructuredDocumentation","src":"964:188:55","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":15429,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:55","nodeType":"FunctionDefinition","parameters":{"id":15410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15407,"mutability":"mutable","name":"a","nameLocation":"1182:1:55","nodeType":"VariableDeclaration","scope":15429,"src":"1174:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15406,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15409,"mutability":"mutable","name":"b","nameLocation":"1193:1:55","nodeType":"VariableDeclaration","scope":15429,"src":"1185:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15408,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:55"},"returnParameters":{"id":15413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15429,"src":"1219:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:55"},"scope":16203,"src":"1157:194:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15550,"nodeType":"Block","src":"1795:3797:55","statements":[{"id":15549,"nodeType":"UncheckedBlock","src":"1805:3781:55","statements":[{"assignments":[15442],"declarations":[{"constant":false,"id":15442,"mutability":"mutable","name":"prod0","nameLocation":"2134:5:55","nodeType":"VariableDeclaration","scope":15549,"src":"2126:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15441,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15443,"nodeType":"VariableDeclarationStatement","src":"2126:13:55"},{"assignments":[15445],"declarations":[{"constant":false,"id":15445,"mutability":"mutable","name":"prod1","nameLocation":"2206:5:55","nodeType":"VariableDeclaration","scope":15549,"src":"2198:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15444,"name":"uint256","nodeType":"ElementaryTypeName","src":"2198:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15446,"nodeType":"VariableDeclarationStatement","src":"2198:13:55"},{"AST":{"nodeType":"YulBlock","src":"2278:157:55","statements":[{"nodeType":"YulVariableDeclaration","src":"2296:30:55","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2313:1:55"},{"name":"y","nodeType":"YulIdentifier","src":"2316:1:55"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2323:1:55","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2319:3:55"},"nodeType":"YulFunctionCall","src":"2319:6:55"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2306:6:55"},"nodeType":"YulFunctionCall","src":"2306:20:55"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2300:2:55","type":""}]},{"nodeType":"YulAssignment","src":"2343:18:55","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2356:1:55"},{"name":"y","nodeType":"YulIdentifier","src":"2359:1:55"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2352:3:55"},"nodeType":"YulFunctionCall","src":"2352:9:55"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2343:5:55"}]},{"nodeType":"YulAssignment","src":"2378:43:55","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2395:2:55"},{"name":"prod0","nodeType":"YulIdentifier","src":"2399:5:55"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2391:3:55"},"nodeType":"YulFunctionCall","src":"2391:14:55"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2410:2:55"},{"name":"prod0","nodeType":"YulIdentifier","src":"2414:5:55"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2407:2:55"},"nodeType":"YulFunctionCall","src":"2407:13:55"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2387:3:55"},"nodeType":"YulFunctionCall","src":"2387:34:55"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2378:5:55"}]}]},"evmVersion":"london","externalReferences":[{"declaration":15442,"isOffset":false,"isSlot":false,"src":"2343:5:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"2399:5:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"2414:5:55","valueSize":1},{"declaration":15445,"isOffset":false,"isSlot":false,"src":"2378:5:55","valueSize":1},{"declaration":15432,"isOffset":false,"isSlot":false,"src":"2313:1:55","valueSize":1},{"declaration":15432,"isOffset":false,"isSlot":false,"src":"2356:1:55","valueSize":1},{"declaration":15434,"isOffset":false,"isSlot":false,"src":"2316:1:55","valueSize":1},{"declaration":15434,"isOffset":false,"isSlot":false,"src":"2359:1:55","valueSize":1}],"id":15447,"nodeType":"InlineAssembly","src":"2269:166:55"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15448,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"2516:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2525:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2516:10:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15456,"nodeType":"IfStatement","src":"2512:75:55","trueBody":{"id":15455,"nodeType":"Block","src":"2528:59:55","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15451,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15442,"src":"2553:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15452,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"2561:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2553:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15440,"id":15454,"nodeType":"Return","src":"2546:26:55"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15458,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"2697:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":15459,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"2711:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2697:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2689:7:55","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2689:28:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15462,"nodeType":"ExpressionStatement","src":"2689:28:55"},{"assignments":[15464],"declarations":[{"constant":false,"id":15464,"mutability":"mutable","name":"remainder","nameLocation":"2981:9:55","nodeType":"VariableDeclaration","scope":15549,"src":"2973:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15463,"name":"uint256","nodeType":"ElementaryTypeName","src":"2973:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15465,"nodeType":"VariableDeclarationStatement","src":"2973:17:55"},{"AST":{"nodeType":"YulBlock","src":"3013:291:55","statements":[{"nodeType":"YulAssignment","src":"3082:38:55","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3102:1:55"},{"name":"y","nodeType":"YulIdentifier","src":"3105:1:55"},{"name":"denominator","nodeType":"YulIdentifier","src":"3108:11:55"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3095:6:55"},"nodeType":"YulFunctionCall","src":"3095:25:55"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3082:9:55"}]},{"nodeType":"YulAssignment","src":"3202:41:55","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3215:5:55"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3225:9:55"},{"name":"prod0","nodeType":"YulIdentifier","src":"3236:5:55"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3222:2:55"},"nodeType":"YulFunctionCall","src":"3222:20:55"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3211:3:55"},"nodeType":"YulFunctionCall","src":"3211:32:55"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3202:5:55"}]},{"nodeType":"YulAssignment","src":"3260:30:55","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3273:5:55"},{"name":"remainder","nodeType":"YulIdentifier","src":"3280:9:55"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3269:3:55"},"nodeType":"YulFunctionCall","src":"3269:21:55"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3260:5:55"}]}]},"evmVersion":"london","externalReferences":[{"declaration":15436,"isOffset":false,"isSlot":false,"src":"3108:11:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"3236:5:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"3260:5:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"3273:5:55","valueSize":1},{"declaration":15445,"isOffset":false,"isSlot":false,"src":"3202:5:55","valueSize":1},{"declaration":15445,"isOffset":false,"isSlot":false,"src":"3215:5:55","valueSize":1},{"declaration":15464,"isOffset":false,"isSlot":false,"src":"3082:9:55","valueSize":1},{"declaration":15464,"isOffset":false,"isSlot":false,"src":"3225:9:55","valueSize":1},{"declaration":15464,"isOffset":false,"isSlot":false,"src":"3280:9:55","valueSize":1},{"declaration":15432,"isOffset":false,"isSlot":false,"src":"3102:1:55","valueSize":1},{"declaration":15434,"isOffset":false,"isSlot":false,"src":"3105:1:55","valueSize":1}],"id":15466,"nodeType":"InlineAssembly","src":"3004:300:55"},{"assignments":[15468],"declarations":[{"constant":false,"id":15468,"mutability":"mutable","name":"twos","nameLocation":"3619:4:55","nodeType":"VariableDeclaration","scope":15549,"src":"3611:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15467,"name":"uint256","nodeType":"ElementaryTypeName","src":"3611:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15476,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15469,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"3626:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3641:12:55","subExpression":{"id":15470,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"3642:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3656:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3641:16:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3640:18:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3626:32:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3611:47:55"},{"AST":{"nodeType":"YulBlock","src":"3681:362:55","statements":[{"nodeType":"YulAssignment","src":"3746:37:55","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"3765:11:55"},{"name":"twos","nodeType":"YulIdentifier","src":"3778:4:55"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3761:3:55"},"nodeType":"YulFunctionCall","src":"3761:22:55"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"3746:11:55"}]},{"nodeType":"YulAssignment","src":"3850:25:55","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3863:5:55"},{"name":"twos","nodeType":"YulIdentifier","src":"3870:4:55"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3859:3:55"},"nodeType":"YulFunctionCall","src":"3859:16:55"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3850:5:55"}]},{"nodeType":"YulAssignment","src":"3990:39:55","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4010:1:55","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4013:4:55"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4006:3:55"},"nodeType":"YulFunctionCall","src":"4006:12:55"},{"name":"twos","nodeType":"YulIdentifier","src":"4020:4:55"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4002:3:55"},"nodeType":"YulFunctionCall","src":"4002:23:55"},{"kind":"number","nodeType":"YulLiteral","src":"4027:1:55","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:55"},"nodeType":"YulFunctionCall","src":"3998:31:55"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3990:4:55"}]}]},"evmVersion":"london","externalReferences":[{"declaration":15436,"isOffset":false,"isSlot":false,"src":"3746:11:55","valueSize":1},{"declaration":15436,"isOffset":false,"isSlot":false,"src":"3765:11:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"3850:5:55","valueSize":1},{"declaration":15442,"isOffset":false,"isSlot":false,"src":"3863:5:55","valueSize":1},{"declaration":15468,"isOffset":false,"isSlot":false,"src":"3778:4:55","valueSize":1},{"declaration":15468,"isOffset":false,"isSlot":false,"src":"3870:4:55","valueSize":1},{"declaration":15468,"isOffset":false,"isSlot":false,"src":"3990:4:55","valueSize":1},{"declaration":15468,"isOffset":false,"isSlot":false,"src":"4013:4:55","valueSize":1},{"declaration":15468,"isOffset":false,"isSlot":false,"src":"4020:4:55","valueSize":1}],"id":15477,"nodeType":"InlineAssembly","src":"3672:371:55"},{"expression":{"id":15482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15478,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15442,"src":"4109:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15479,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"4118:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15480,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15468,"src":"4126:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4118:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4109:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15483,"nodeType":"ExpressionStatement","src":"4109:21:55"},{"assignments":[15485],"declarations":[{"constant":false,"id":15485,"mutability":"mutable","name":"inverse","nameLocation":"4456:7:55","nodeType":"VariableDeclaration","scope":15549,"src":"4448:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15484,"name":"uint256","nodeType":"ElementaryTypeName","src":"4448:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15492,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":15486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:55","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15487,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4471:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4467:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15489,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4466:17:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":15490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4486:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4466:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4448:39:55"},{"expression":{"id":15499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15493,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4704:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4715:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15495,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4719:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15496,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4733:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4719:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4715:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4704:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15500,"nodeType":"ExpressionStatement","src":"4704:36:55"},{"expression":{"id":15507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15501,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4773:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4784:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15503,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4788:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15504,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4802:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4788:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4784:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4773:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15508,"nodeType":"ExpressionStatement","src":"4773:36:55"},{"expression":{"id":15515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15509,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4843:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4854:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15511,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4858:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15512,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4872:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4858:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4854:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15516,"nodeType":"ExpressionStatement","src":"4843:36:55"},{"expression":{"id":15523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15517,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4913:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4924:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15519,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4928:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15520,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4942:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4928:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4924:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4913:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15524,"nodeType":"ExpressionStatement","src":"4913:36:55"},{"expression":{"id":15531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15525,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"4983:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4994:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15527,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"4998:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15528,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"5012:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4994:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15532,"nodeType":"ExpressionStatement","src":"4983:36:55"},{"expression":{"id":15539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15533,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"5054:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":15534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5065:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15535,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15436,"src":"5069:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15536,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"5083:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5069:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:25:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:36:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15540,"nodeType":"ExpressionStatement","src":"5054:36:55"},{"expression":{"id":15545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15541,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"5524:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15542,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15442,"src":"5533:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15543,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15485,"src":"5541:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5533:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5524:24:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15546,"nodeType":"ExpressionStatement","src":"5524:24:55"},{"expression":{"id":15547,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15439,"src":"5569:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15440,"id":15548,"nodeType":"Return","src":"5562:13:55"}]}]},"documentation":{"id":15430,"nodeType":"StructuredDocumentation","src":"1357:305:55","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":15551,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:55","nodeType":"FunctionDefinition","parameters":{"id":15437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15432,"mutability":"mutable","name":"x","nameLocation":"1700:1:55","nodeType":"VariableDeclaration","scope":15551,"src":"1692:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15431,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15434,"mutability":"mutable","name":"y","nameLocation":"1719:1:55","nodeType":"VariableDeclaration","scope":15551,"src":"1711:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15433,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15436,"mutability":"mutable","name":"denominator","nameLocation":"1738:11:55","nodeType":"VariableDeclaration","scope":15551,"src":"1730:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15435,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:73:55"},"returnParameters":{"id":15440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15439,"mutability":"mutable","name":"result","nameLocation":"1787:6:55","nodeType":"VariableDeclaration","scope":15551,"src":"1779:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1779:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1778:16:55"},"scope":16203,"src":"1667:3925:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15594,"nodeType":"Block","src":"5872:189:55","statements":[{"assignments":[15567],"declarations":[{"constant":false,"id":15567,"mutability":"mutable","name":"result","nameLocation":"5890:6:55","nodeType":"VariableDeclaration","scope":15594,"src":"5882:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15566,"name":"uint256","nodeType":"ElementaryTypeName","src":"5882:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15573,"initialValue":{"arguments":[{"id":15569,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15554,"src":"5906:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15570,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"5909:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15571,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15558,"src":"5912:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15568,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[15551,15595],"referencedDeclaration":15551,"src":"5899:6:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":15572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5899:25:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5882:42:55"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"id":15577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15574,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15561,"src":"5938:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15575,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15345,"src":"5950:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$15345_$","typeString":"type(enum Math.Rounding)"}},"id":15576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5959:2:55","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":15343,"src":"5950:11:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"src":"5938:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15579,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15554,"src":"5972:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15580,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15556,"src":"5975:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15581,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15558,"src":"5978:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15578,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"5965:6:55","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":15582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5965:25:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5993:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5965:29:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5938:56:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15591,"nodeType":"IfStatement","src":"5934:98:55","trueBody":{"id":15590,"nodeType":"Block","src":"5996:36:55","statements":[{"expression":{"id":15588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15586,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15567,"src":"6010:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":15587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6020:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6010:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15589,"nodeType":"ExpressionStatement","src":"6010:11:55"}]}},{"expression":{"id":15592,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15567,"src":"6048:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15565,"id":15593,"nodeType":"Return","src":"6041:13:55"}]},"documentation":{"id":15552,"nodeType":"StructuredDocumentation","src":"5598:121:55","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":15595,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5733:6:55","nodeType":"FunctionDefinition","parameters":{"id":15562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15554,"mutability":"mutable","name":"x","nameLocation":"5757:1:55","nodeType":"VariableDeclaration","scope":15595,"src":"5749:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15553,"name":"uint256","nodeType":"ElementaryTypeName","src":"5749:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15556,"mutability":"mutable","name":"y","nameLocation":"5776:1:55","nodeType":"VariableDeclaration","scope":15595,"src":"5768:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15555,"name":"uint256","nodeType":"ElementaryTypeName","src":"5768:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15558,"mutability":"mutable","name":"denominator","nameLocation":"5795:11:55","nodeType":"VariableDeclaration","scope":15595,"src":"5787:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15557,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15561,"mutability":"mutable","name":"rounding","nameLocation":"5825:8:55","nodeType":"VariableDeclaration","scope":15595,"src":"5816:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"typeName":{"id":15560,"nodeType":"UserDefinedTypeName","pathNode":{"id":15559,"name":"Rounding","nameLocations":["5816:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":15345,"src":"5816:8:55"},"referencedDeclaration":15345,"src":"5816:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"5739:100:55"},"returnParameters":{"id":15565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15595,"src":"5863:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15563,"name":"uint256","nodeType":"ElementaryTypeName","src":"5863:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5862:9:55"},"scope":16203,"src":"5724:337:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15706,"nodeType":"Block","src":"6337:1585:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15603,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"6351:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6356:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6351:6:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15609,"nodeType":"IfStatement","src":"6347:45:55","trueBody":{"id":15608,"nodeType":"Block","src":"6359:33:55","statements":[{"expression":{"hexValue":"30","id":15606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6380:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15602,"id":15607,"nodeType":"Return","src":"6373:8:55"}]}},{"assignments":[15611],"declarations":[{"constant":false,"id":15611,"mutability":"mutable","name":"result","nameLocation":"7079:6:55","nodeType":"VariableDeclaration","scope":15706,"src":"7071:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7071:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15620,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":15612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7088:1:55","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":15617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15614,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7099:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15613,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[15875,15911],"referencedDeclaration":15875,"src":"7094:4:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":15615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7094:7:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7105:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7094:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7093:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7088:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7071:36:55"},{"id":15705,"nodeType":"UncheckedBlock","src":"7508:408:55","statements":[{"expression":{"id":15630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15621,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7532:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15622,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7542:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15623,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7551:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15624,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7555:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7551:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7542:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7541:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7566:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7541:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7532:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15631,"nodeType":"ExpressionStatement","src":"7532:35:55"},{"expression":{"id":15641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15632,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7581:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15633,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7591:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15634,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7600:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15635,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7604:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7600:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7591:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15638,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7590:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7615:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7590:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7581:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15642,"nodeType":"ExpressionStatement","src":"7581:35:55"},{"expression":{"id":15652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15643,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7630:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15644,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7640:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15645,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7649:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15646,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7653:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7649:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7640:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7639:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7664:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7639:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7630:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15653,"nodeType":"ExpressionStatement","src":"7630:35:55"},{"expression":{"id":15663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15654,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7679:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15655,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7689:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15656,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7698:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15657,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7702:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7698:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7689:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7688:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7713:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7688:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15664,"nodeType":"ExpressionStatement","src":"7679:35:55"},{"expression":{"id":15674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15665,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7728:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15666,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7738:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15667,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7747:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15668,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7751:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7747:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7738:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15671,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7737:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7762:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7737:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7728:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15675,"nodeType":"ExpressionStatement","src":"7728:35:55"},{"expression":{"id":15685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15676,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7777:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15677,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7787:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15678,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7796:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15679,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7800:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7796:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7787:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15682,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7786:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7811:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7786:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7777:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15686,"nodeType":"ExpressionStatement","src":"7777:35:55"},{"expression":{"id":15696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15687,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7826:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15688,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7836:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15689,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7845:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15690,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7849:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7845:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7836:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7835:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7860:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7835:26:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7826:35:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15697,"nodeType":"ExpressionStatement","src":"7826:35:55"},{"expression":{"arguments":[{"id":15699,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7886:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15700,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15598,"src":"7894:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15701,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"7898:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7894:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15698,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15381,"src":"7882:3:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7882:23:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15602,"id":15704,"nodeType":"Return","src":"7875:30:55"}]}]},"documentation":{"id":15596,"nodeType":"StructuredDocumentation","src":"6067:208:55","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":15707,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6289:4:55","nodeType":"FunctionDefinition","parameters":{"id":15599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15598,"mutability":"mutable","name":"a","nameLocation":"6302:1:55","nodeType":"VariableDeclaration","scope":15707,"src":"6294:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15597,"name":"uint256","nodeType":"ElementaryTypeName","src":"6294:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6293:11:55"},"returnParameters":{"id":15602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15707,"src":"6328:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15600,"name":"uint256","nodeType":"ElementaryTypeName","src":"6328:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6327:9:55"},"scope":16203,"src":"6280:1642:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15742,"nodeType":"Block","src":"8098:161:55","statements":[{"id":15741,"nodeType":"UncheckedBlock","src":"8108:145:55","statements":[{"assignments":[15719],"declarations":[{"constant":false,"id":15719,"mutability":"mutable","name":"result","nameLocation":"8140:6:55","nodeType":"VariableDeclaration","scope":15741,"src":"8132:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15718,"name":"uint256","nodeType":"ElementaryTypeName","src":"8132:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15723,"initialValue":{"arguments":[{"id":15721,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15710,"src":"8154:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15720,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[15707,15743],"referencedDeclaration":15707,"src":"8149:4:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":15722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8149:7:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8132:24:55"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15724,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"8177:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"id":15728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15725,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15713,"src":"8187:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15726,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15345,"src":"8199:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$15345_$","typeString":"type(enum Math.Rounding)"}},"id":15727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8208:2:55","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":15343,"src":"8199:11:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"src":"8187:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15729,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"8214:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":15730,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15719,"src":"8223:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15732,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15710,"src":"8232:1:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8214:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8187:46:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":15736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":15737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8187:54:55","trueExpression":{"hexValue":"31","id":15735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8236:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":15738,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8186:56:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8177:65:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15717,"id":15740,"nodeType":"Return","src":"8170:72:55"}]}]},"documentation":{"id":15708,"nodeType":"StructuredDocumentation","src":"7928:89:55","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":15743,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8031:4:55","nodeType":"FunctionDefinition","parameters":{"id":15714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15710,"mutability":"mutable","name":"a","nameLocation":"8044:1:55","nodeType":"VariableDeclaration","scope":15743,"src":"8036:9:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15709,"name":"uint256","nodeType":"ElementaryTypeName","src":"8036:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15713,"mutability":"mutable","name":"rounding","nameLocation":"8056:8:55","nodeType":"VariableDeclaration","scope":15743,"src":"8047:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"typeName":{"id":15712,"nodeType":"UserDefinedTypeName","pathNode":{"id":15711,"name":"Rounding","nameLocations":["8047:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":15345,"src":"8047:8:55"},"referencedDeclaration":15345,"src":"8047:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8035:30:55"},"returnParameters":{"id":15717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15716,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15743,"src":"8089:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15715,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8088:9:55"},"scope":16203,"src":"8022:237:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15874,"nodeType":"Block","src":"8444:922:55","statements":[{"assignments":[15752],"declarations":[{"constant":false,"id":15752,"mutability":"mutable","name":"result","nameLocation":"8462:6:55","nodeType":"VariableDeclaration","scope":15874,"src":"8454:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15751,"name":"uint256","nodeType":"ElementaryTypeName","src":"8454:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15754,"initialValue":{"hexValue":"30","id":15753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8454:18:55"},{"id":15871,"nodeType":"UncheckedBlock","src":"8482:855:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8510:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":15756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8519:3:55","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8510:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8525:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8510:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15769,"nodeType":"IfStatement","src":"8506:99:55","trueBody":{"id":15768,"nodeType":"Block","src":"8528:77:55","statements":[{"expression":{"id":15762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15760,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8546:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":15761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8556:3:55","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8546:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15763,"nodeType":"ExpressionStatement","src":"8546:13:55"},{"expression":{"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15764,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"8577:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":15765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8587:3:55","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8577:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15767,"nodeType":"ExpressionStatement","src":"8577:13:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15770,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8622:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":15771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8631:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8622:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8636:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8622:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15784,"nodeType":"IfStatement","src":"8618:96:55","trueBody":{"id":15783,"nodeType":"Block","src":"8639:75:55","statements":[{"expression":{"id":15777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15775,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8657:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":15776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8667:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8657:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15778,"nodeType":"ExpressionStatement","src":"8657:12:55"},{"expression":{"id":15781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15779,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"8687:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":15780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8697:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8687:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15782,"nodeType":"ExpressionStatement","src":"8687:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15785,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8731:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":15786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8740:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8731:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8745:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8731:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15799,"nodeType":"IfStatement","src":"8727:96:55","trueBody":{"id":15798,"nodeType":"Block","src":"8748:75:55","statements":[{"expression":{"id":15792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15790,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8766:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":15791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8776:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8766:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15793,"nodeType":"ExpressionStatement","src":"8766:12:55"},{"expression":{"id":15796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15794,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"8796:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":15795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8796:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15797,"nodeType":"ExpressionStatement","src":"8796:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15800,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8840:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":15801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8849:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8840:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8840:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15814,"nodeType":"IfStatement","src":"8836:96:55","trueBody":{"id":15813,"nodeType":"Block","src":"8857:75:55","statements":[{"expression":{"id":15807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15805,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8875:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":15806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8875:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15808,"nodeType":"ExpressionStatement","src":"8875:12:55"},{"expression":{"id":15811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15809,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"8905:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":15810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"8905:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15812,"nodeType":"ExpressionStatement","src":"8905:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15815,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8949:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":15816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8958:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8949:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8962:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8949:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15829,"nodeType":"IfStatement","src":"8945:93:55","trueBody":{"id":15828,"nodeType":"Block","src":"8965:73:55","statements":[{"expression":{"id":15822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15820,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"8983:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":15821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8993:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"8983:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15823,"nodeType":"ExpressionStatement","src":"8983:11:55"},{"expression":{"id":15826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15824,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"9012:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":15825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9022:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9012:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15827,"nodeType":"ExpressionStatement","src":"9012:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"9055:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":15831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9055:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9068:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9055:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15844,"nodeType":"IfStatement","src":"9051:93:55","trueBody":{"id":15843,"nodeType":"Block","src":"9071:73:55","statements":[{"expression":{"id":15837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15835,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"9089:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":15836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9089:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15838,"nodeType":"ExpressionStatement","src":"9089:11:55"},{"expression":{"id":15841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15839,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"9118:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":15840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9128:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9118:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15842,"nodeType":"ExpressionStatement","src":"9118:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"9161:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":15846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9170:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9161:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9174:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9161:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15859,"nodeType":"IfStatement","src":"9157:93:55","trueBody":{"id":15858,"nodeType":"Block","src":"9177:73:55","statements":[{"expression":{"id":15852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"9195:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":15851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9205:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9195:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15853,"nodeType":"ExpressionStatement","src":"9195:11:55"},{"expression":{"id":15856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15854,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"9224:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":15855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9234:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9224:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15857,"nodeType":"ExpressionStatement","src":"9224:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15860,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15746,"src":"9267:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":15861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9276:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9267:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9280:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9267:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15870,"nodeType":"IfStatement","src":"9263:64:55","trueBody":{"id":15869,"nodeType":"Block","src":"9283:44:55","statements":[{"expression":{"id":15867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15865,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"9301:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":15866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9311:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9301:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15868,"nodeType":"ExpressionStatement","src":"9301:11:55"}]}}]},{"expression":{"id":15872,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"9353:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15750,"id":15873,"nodeType":"Return","src":"9346:13:55"}]},"documentation":{"id":15744,"nodeType":"StructuredDocumentation","src":"8265:113:55","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":15875,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8392:4:55","nodeType":"FunctionDefinition","parameters":{"id":15747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"mutability":"mutable","name":"value","nameLocation":"8405:5:55","nodeType":"VariableDeclaration","scope":15875,"src":"8397:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8397:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8396:15:55"},"returnParameters":{"id":15750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15875,"src":"8435:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15748,"name":"uint256","nodeType":"ElementaryTypeName","src":"8435:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8434:9:55"},"scope":16203,"src":"8383:983:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15910,"nodeType":"Block","src":"9599:165:55","statements":[{"id":15909,"nodeType":"UncheckedBlock","src":"9609:149:55","statements":[{"assignments":[15887],"declarations":[{"constant":false,"id":15887,"mutability":"mutable","name":"result","nameLocation":"9641:6:55","nodeType":"VariableDeclaration","scope":15909,"src":"9633:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15886,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15891,"initialValue":{"arguments":[{"id":15889,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"9655:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15888,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[15875,15911],"referencedDeclaration":15875,"src":"9650:4:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":15890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9650:11:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:28:55"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"9682:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"id":15896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15893,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15881,"src":"9692:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":15894,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15345,"src":"9704:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$15345_$","typeString":"type(enum Math.Rounding)"}},"id":15895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9713:2:55","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":15343,"src":"9704:11:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"src":"9692:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":15897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9719:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":15898,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"9724:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15900,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"9733:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9719:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9692:46:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":15904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9745:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9692:54:55","trueExpression":{"hexValue":"31","id":15903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9741:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":15906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9691:56:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9682:65:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15885,"id":15908,"nodeType":"Return","src":"9675:72:55"}]}]},"documentation":{"id":15876,"nodeType":"StructuredDocumentation","src":"9372:142:55","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":15911,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9528:4:55","nodeType":"FunctionDefinition","parameters":{"id":15882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15878,"mutability":"mutable","name":"value","nameLocation":"9541:5:55","nodeType":"VariableDeclaration","scope":15911,"src":"9533:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15877,"name":"uint256","nodeType":"ElementaryTypeName","src":"9533:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15881,"mutability":"mutable","name":"rounding","nameLocation":"9557:8:55","nodeType":"VariableDeclaration","scope":15911,"src":"9548:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"typeName":{"id":15880,"nodeType":"UserDefinedTypeName","pathNode":{"id":15879,"name":"Rounding","nameLocations":["9548:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":15345,"src":"9548:8:55"},"referencedDeclaration":15345,"src":"9548:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9532:34:55"},"returnParameters":{"id":15885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15911,"src":"9590:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15883,"name":"uint256","nodeType":"ElementaryTypeName","src":"9590:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9589:9:55"},"scope":16203,"src":"9519:245:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16039,"nodeType":"Block","src":"9951:828:55","statements":[{"assignments":[15920],"declarations":[{"constant":false,"id":15920,"mutability":"mutable","name":"result","nameLocation":"9969:6:55","nodeType":"VariableDeclaration","scope":16039,"src":"9961:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15919,"name":"uint256","nodeType":"ElementaryTypeName","src":"9961:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15922,"initialValue":{"hexValue":"30","id":15921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9978:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9961:18:55"},{"id":16036,"nodeType":"UncheckedBlock","src":"9989:761:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15923,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10017:5:55","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":15926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10026:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":15925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10030:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10026:6:55","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10017:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15939,"nodeType":"IfStatement","src":"10013:99:55","trueBody":{"id":15938,"nodeType":"Block","src":"10034:78:55","statements":[{"expression":{"id":15932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15928,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10052:5:55","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":15931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":15930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10065:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10061:6:55","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10052:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15933,"nodeType":"ExpressionStatement","src":"10052:15:55"},{"expression":{"id":15936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15934,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10085:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":15935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10095:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10085:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15937,"nodeType":"ExpressionStatement","src":"10085:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10129:5:55","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":15943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10138:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":15942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10142:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10138:6:55","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10129:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15956,"nodeType":"IfStatement","src":"10125:99:55","trueBody":{"id":15955,"nodeType":"Block","src":"10146:78:55","statements":[{"expression":{"id":15949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15945,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10164:5:55","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":15948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10173:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":15947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10177:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10173:6:55","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10164:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15950,"nodeType":"ExpressionStatement","src":"10164:15:55"},{"expression":{"id":15953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15951,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10197:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":15952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10207:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10197:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15954,"nodeType":"ExpressionStatement","src":"10197:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10241:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":15960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":15959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10254:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10250:6:55","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10241:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15973,"nodeType":"IfStatement","src":"10237:99:55","trueBody":{"id":15972,"nodeType":"Block","src":"10258:78:55","statements":[{"expression":{"id":15966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10276:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":15965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10285:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":15964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10289:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10285:6:55","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10276:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15967,"nodeType":"ExpressionStatement","src":"10276:15:55"},{"expression":{"id":15970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15968,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10309:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":15969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10309:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15971,"nodeType":"ExpressionStatement","src":"10309:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15974,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10353:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":15977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10362:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":15976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10366:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10362:5:55","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10353:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15990,"nodeType":"IfStatement","src":"10349:96:55","trueBody":{"id":15989,"nodeType":"Block","src":"10369:76:55","statements":[{"expression":{"id":15983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10387:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":15982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10396:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":15981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10400:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10396:5:55","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10387:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15984,"nodeType":"ExpressionStatement","src":"10387:14:55"},{"expression":{"id":15987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15985,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10419:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":15986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10419:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15988,"nodeType":"ExpressionStatement","src":"10419:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15991,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10462:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":15994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10471:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":15993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10475:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10471:5:55","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10462:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16007,"nodeType":"IfStatement","src":"10458:96:55","trueBody":{"id":16006,"nodeType":"Block","src":"10478:76:55","statements":[{"expression":{"id":16000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15996,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10496:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":15999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":15997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":15998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10505:5:55","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10496:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16001,"nodeType":"ExpressionStatement","src":"10496:14:55"},{"expression":{"id":16004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16002,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10528:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":16003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10538:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10528:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16005,"nodeType":"ExpressionStatement","src":"10528:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16008,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10571:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":16011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":16009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10580:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":16010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10584:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10580:5:55","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10571:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16024,"nodeType":"IfStatement","src":"10567:96:55","trueBody":{"id":16023,"nodeType":"Block","src":"10587:76:55","statements":[{"expression":{"id":16017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10605:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":16016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":16014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10614:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":16015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10618:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10614:5:55","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10605:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16018,"nodeType":"ExpressionStatement","src":"10605:14:55"},{"expression":{"id":16021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16019,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10637:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":16020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10647:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10637:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16022,"nodeType":"ExpressionStatement","src":"10637:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"10680:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":16028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":16026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10689:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":16027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10693:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10689:5:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10680:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16035,"nodeType":"IfStatement","src":"10676:64:55","trueBody":{"id":16034,"nodeType":"Block","src":"10696:44:55","statements":[{"expression":{"id":16032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16030,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10714:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":16031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10714:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16033,"nodeType":"ExpressionStatement","src":"10714:11:55"}]}}]},{"expression":{"id":16037,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"10766:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15918,"id":16038,"nodeType":"Return","src":"10759:13:55"}]},"documentation":{"id":15912,"nodeType":"StructuredDocumentation","src":"9770:114:55","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":16040,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"9898:5:55","nodeType":"FunctionDefinition","parameters":{"id":15915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15914,"mutability":"mutable","name":"value","nameLocation":"9912:5:55","nodeType":"VariableDeclaration","scope":16040,"src":"9904:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15913,"name":"uint256","nodeType":"ElementaryTypeName","src":"9904:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9903:15:55"},"returnParameters":{"id":15918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16040,"src":"9942:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15916,"name":"uint256","nodeType":"ElementaryTypeName","src":"9942:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9941:9:55"},"scope":16203,"src":"9889:890:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16075,"nodeType":"Block","src":"11014:165:55","statements":[{"id":16074,"nodeType":"UncheckedBlock","src":"11024:149:55","statements":[{"assignments":[16052],"declarations":[{"constant":false,"id":16052,"mutability":"mutable","name":"result","nameLocation":"11056:6:55","nodeType":"VariableDeclaration","scope":16074,"src":"11048:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16051,"name":"uint256","nodeType":"ElementaryTypeName","src":"11048:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16056,"initialValue":{"arguments":[{"id":16054,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16043,"src":"11071:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16053,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[16040,16076],"referencedDeclaration":16040,"src":"11065:5:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":16055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11065:12:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11048:29:55"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16052,"src":"11098:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"id":16061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16058,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"11108:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16059,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15345,"src":"11120:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$15345_$","typeString":"type(enum Math.Rounding)"}},"id":16060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11129:2:55","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":15343,"src":"11120:11:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"src":"11108:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":16062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11135:2:55","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":16063,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16052,"src":"11139:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16043,"src":"11148:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11135:18:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11108:45:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":16069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11160:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":16070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11108:53:55","trueExpression":{"hexValue":"31","id":16068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11156:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":16071,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11107:55:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11098:64:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16050,"id":16073,"nodeType":"Return","src":"11091:71:55"}]}]},"documentation":{"id":16041,"nodeType":"StructuredDocumentation","src":"10785:143:55","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":16076,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10942:5:55","nodeType":"FunctionDefinition","parameters":{"id":16047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16043,"mutability":"mutable","name":"value","nameLocation":"10956:5:55","nodeType":"VariableDeclaration","scope":16076,"src":"10948:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16042,"name":"uint256","nodeType":"ElementaryTypeName","src":"10948:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16046,"mutability":"mutable","name":"rounding","nameLocation":"10972:8:55","nodeType":"VariableDeclaration","scope":16076,"src":"10963:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"typeName":{"id":16045,"nodeType":"UserDefinedTypeName","pathNode":{"id":16044,"name":"Rounding","nameLocations":["10963:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":15345,"src":"10963:8:55"},"referencedDeclaration":15345,"src":"10963:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10947:34:55"},"returnParameters":{"id":16050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16076,"src":"11005:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16048,"name":"uint256","nodeType":"ElementaryTypeName","src":"11005:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11004:9:55"},"scope":16203,"src":"10933:246:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16162,"nodeType":"Block","src":"11493:600:55","statements":[{"assignments":[16085],"declarations":[{"constant":false,"id":16085,"mutability":"mutable","name":"result","nameLocation":"11511:6:55","nodeType":"VariableDeclaration","scope":16162,"src":"11503:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16084,"name":"uint256","nodeType":"ElementaryTypeName","src":"11503:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16087,"initialValue":{"hexValue":"30","id":16086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11520:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11503:18:55"},{"id":16159,"nodeType":"UncheckedBlock","src":"11531:533:55","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11559:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":16089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11568:3:55","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11559:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11574:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11559:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16102,"nodeType":"IfStatement","src":"11555:98:55","trueBody":{"id":16101,"nodeType":"Block","src":"11577:76:55","statements":[{"expression":{"id":16095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11595:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":16094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11605:3:55","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11595:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16096,"nodeType":"ExpressionStatement","src":"11595:13:55"},{"expression":{"id":16099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16097,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"11626:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":16098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11636:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11626:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16100,"nodeType":"ExpressionStatement","src":"11626:12:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16103,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11670:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":16104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11679:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11670:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11684:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11670:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16117,"nodeType":"IfStatement","src":"11666:95:55","trueBody":{"id":16116,"nodeType":"Block","src":"11687:74:55","statements":[{"expression":{"id":16110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16108,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11705:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":16109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11715:2:55","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11705:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16111,"nodeType":"ExpressionStatement","src":"11705:12:55"},{"expression":{"id":16114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16112,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"11735:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":16113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11745:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11735:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16115,"nodeType":"ExpressionStatement","src":"11735:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11778:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":16119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11787:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11778:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11792:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11778:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16132,"nodeType":"IfStatement","src":"11774:95:55","trueBody":{"id":16131,"nodeType":"Block","src":"11795:74:55","statements":[{"expression":{"id":16125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11813:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":16124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11823:2:55","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11813:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16126,"nodeType":"ExpressionStatement","src":"11813:12:55"},{"expression":{"id":16129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16127,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"11843:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":16128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11853:1:55","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11843:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16130,"nodeType":"ExpressionStatement","src":"11843:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16133,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11886:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":16134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11895:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11886:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11900:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11886:15:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16147,"nodeType":"IfStatement","src":"11882:95:55","trueBody":{"id":16146,"nodeType":"Block","src":"11903:74:55","statements":[{"expression":{"id":16140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16138,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11921:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":16139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:2:55","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11921:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16141,"nodeType":"ExpressionStatement","src":"11921:12:55"},{"expression":{"id":16144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16142,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"11951:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":16143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11961:1:55","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11951:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16145,"nodeType":"ExpressionStatement","src":"11951:11:55"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16148,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16079,"src":"11994:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":16149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12003:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11994:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12007:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11994:14:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16158,"nodeType":"IfStatement","src":"11990:64:55","trueBody":{"id":16157,"nodeType":"Block","src":"12010:44:55","statements":[{"expression":{"id":16155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16153,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"12028:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":16154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12028:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16156,"nodeType":"ExpressionStatement","src":"12028:11:55"}]}}]},{"expression":{"id":16160,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16085,"src":"12080:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16083,"id":16161,"nodeType":"Return","src":"12073:13:55"}]},"documentation":{"id":16077,"nodeType":"StructuredDocumentation","src":"11185:240:55","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":16163,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11439:6:55","nodeType":"FunctionDefinition","parameters":{"id":16080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16079,"mutability":"mutable","name":"value","nameLocation":"11454:5:55","nodeType":"VariableDeclaration","scope":16163,"src":"11446:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16078,"name":"uint256","nodeType":"ElementaryTypeName","src":"11446:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11445:15:55"},"returnParameters":{"id":16083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16163,"src":"11484:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16081,"name":"uint256","nodeType":"ElementaryTypeName","src":"11484:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11483:9:55"},"scope":16203,"src":"11430:663:55","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16201,"nodeType":"Block","src":"12329:173:55","statements":[{"id":16200,"nodeType":"UncheckedBlock","src":"12339:157:55","statements":[{"assignments":[16175],"declarations":[{"constant":false,"id":16175,"mutability":"mutable","name":"result","nameLocation":"12371:6:55","nodeType":"VariableDeclaration","scope":16200,"src":"12363:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16174,"name":"uint256","nodeType":"ElementaryTypeName","src":"12363:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16179,"initialValue":{"arguments":[{"id":16177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16166,"src":"12387:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16176,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[16163,16202],"referencedDeclaration":16163,"src":"12380:6:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":16178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12380:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12363:30:55"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16180,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16175,"src":"12414:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"id":16184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16181,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16169,"src":"12424:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16182,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15345,"src":"12436:8:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$15345_$","typeString":"type(enum Math.Rounding)"}},"id":16183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12445:2:55","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":15343,"src":"12436:11:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"src":"12424:23:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":16185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451:1:55","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":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16186,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16175,"src":"12457:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":16187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12466:1:55","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12457:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16189,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12456:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:17:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16166,"src":"12471:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:25:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12424:52:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":16195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12483:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":16196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12424:60:55","trueExpression":{"hexValue":"31","id":16194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12479:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":16197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12423:62:55","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12414:71:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16173,"id":16199,"nodeType":"Return","src":"12407:78:55"}]}]},"documentation":{"id":16164,"nodeType":"StructuredDocumentation","src":"12099:143:55","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":16202,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12256:6:55","nodeType":"FunctionDefinition","parameters":{"id":16170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16166,"mutability":"mutable","name":"value","nameLocation":"12271:5:55","nodeType":"VariableDeclaration","scope":16202,"src":"12263:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16165,"name":"uint256","nodeType":"ElementaryTypeName","src":"12263:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16169,"mutability":"mutable","name":"rounding","nameLocation":"12287:8:55","nodeType":"VariableDeclaration","scope":16202,"src":"12278:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"},"typeName":{"id":16168,"nodeType":"UserDefinedTypeName","pathNode":{"id":16167,"name":"Rounding","nameLocations":["12278:8:55"],"nodeType":"IdentifierPath","referencedDeclaration":15345,"src":"12278:8:55"},"referencedDeclaration":15345,"src":"12278:8:55","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$15345","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12262:34:55"},"returnParameters":{"id":16173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16202,"src":"12320:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16171,"name":"uint256","nodeType":"ElementaryTypeName","src":"12320:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12319:9:55"},"scope":16203,"src":"12247:255:55","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":16204,"src":"202:12302:55","usedErrors":[]}],"src":"103:12402:55"},"id":55},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[17744]},"id":17745,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":16205,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"192:23:56"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":16206,"nodeType":"StructuredDocumentation","src":"217:709:56","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":17744,"linearizedBaseContracts":[17744],"name":"SafeCast","nameLocation":"935:8:56","nodeType":"ContractDefinition","nodes":[{"body":{"id":16230,"nodeType":"Block","src":"1339:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16215,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"1357:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":16217,"name":"uint248","nodeType":"ElementaryTypeName","src":"1371:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":16216,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1366:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":16220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1380:3:56","memberName":"max","nodeType":"MemberAccess","src":"1366:17:56","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1357:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":16222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1385:41:56","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":16214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1349:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16224,"nodeType":"ExpressionStatement","src":"1349:78:56"},{"expression":{"arguments":[{"id":16227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16209,"src":"1452:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1444:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":16225,"name":"uint248","nodeType":"ElementaryTypeName","src":"1444:7:56","typeDescriptions":{}}},"id":16228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1444:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":16213,"id":16229,"nodeType":"Return","src":"1437:21:56"}]},"documentation":{"id":16207,"nodeType":"StructuredDocumentation","src":"950:318:56","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":16231,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1282:9:56","nodeType":"FunctionDefinition","parameters":{"id":16210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16209,"mutability":"mutable","name":"value","nameLocation":"1300:5:56","nodeType":"VariableDeclaration","scope":16231,"src":"1292:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16208,"name":"uint256","nodeType":"ElementaryTypeName","src":"1292:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1291:15:56"},"returnParameters":{"id":16213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16231,"src":"1330:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":16211,"name":"uint248","nodeType":"ElementaryTypeName","src":"1330:7:56","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1329:9:56"},"scope":17744,"src":"1273:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16255,"nodeType":"Block","src":"1860:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"1878:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1892:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":16242,"name":"uint240","nodeType":"ElementaryTypeName","src":"1892:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":16241,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1887:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":16245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1901:3:56","memberName":"max","nodeType":"MemberAccess","src":"1887:17:56","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"1878:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":16247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1906:41:56","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":16239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1870:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16249,"nodeType":"ExpressionStatement","src":"1870:78:56"},{"expression":{"arguments":[{"id":16252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"1973:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1965:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":16250,"name":"uint240","nodeType":"ElementaryTypeName","src":"1965:7:56","typeDescriptions":{}}},"id":16253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1965:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":16238,"id":16254,"nodeType":"Return","src":"1958:21:56"}]},"documentation":{"id":16232,"nodeType":"StructuredDocumentation","src":"1471:318:56","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":16256,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"1803:9:56","nodeType":"FunctionDefinition","parameters":{"id":16235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16234,"mutability":"mutable","name":"value","nameLocation":"1821:5:56","nodeType":"VariableDeclaration","scope":16256,"src":"1813:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:15:56"},"returnParameters":{"id":16238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16256,"src":"1851:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":16236,"name":"uint240","nodeType":"ElementaryTypeName","src":"1851:7:56","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"1850:9:56"},"scope":17744,"src":"1794:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16280,"nodeType":"Block","src":"2381:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16259,"src":"2399:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2413:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":16267,"name":"uint232","nodeType":"ElementaryTypeName","src":"2413:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":16266,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2408:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2408:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":16270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2422:3:56","memberName":"max","nodeType":"MemberAccess","src":"2408:17:56","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2399:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":16272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2427:41:56","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":16264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2391:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16274,"nodeType":"ExpressionStatement","src":"2391:78:56"},{"expression":{"arguments":[{"id":16277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16259,"src":"2494:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2486:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":16275,"name":"uint232","nodeType":"ElementaryTypeName","src":"2486:7:56","typeDescriptions":{}}},"id":16278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2486:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":16263,"id":16279,"nodeType":"Return","src":"2479:21:56"}]},"documentation":{"id":16257,"nodeType":"StructuredDocumentation","src":"1992:318:56","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":16281,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2324:9:56","nodeType":"FunctionDefinition","parameters":{"id":16260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16259,"mutability":"mutable","name":"value","nameLocation":"2342:5:56","nodeType":"VariableDeclaration","scope":16281,"src":"2334:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16258,"name":"uint256","nodeType":"ElementaryTypeName","src":"2334:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2333:15:56"},"returnParameters":{"id":16263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16281,"src":"2372:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":16261,"name":"uint232","nodeType":"ElementaryTypeName","src":"2372:7:56","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2371:9:56"},"scope":17744,"src":"2315:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16305,"nodeType":"Block","src":"2902:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16290,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"2920:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2934:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":16292,"name":"uint224","nodeType":"ElementaryTypeName","src":"2934:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":16291,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2929:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2929:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":16295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2943:3:56","memberName":"max","nodeType":"MemberAccess","src":"2929:17:56","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"2920:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":16297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2948:41:56","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":16289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2912:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16299,"nodeType":"ExpressionStatement","src":"2912:78:56"},{"expression":{"arguments":[{"id":16302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"3015:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3007:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":16300,"name":"uint224","nodeType":"ElementaryTypeName","src":"3007:7:56","typeDescriptions":{}}},"id":16303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":16288,"id":16304,"nodeType":"Return","src":"3000:21:56"}]},"documentation":{"id":16282,"nodeType":"StructuredDocumentation","src":"2513:318:56","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":16306,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"2845:9:56","nodeType":"FunctionDefinition","parameters":{"id":16285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16284,"mutability":"mutable","name":"value","nameLocation":"2863:5:56","nodeType":"VariableDeclaration","scope":16306,"src":"2855:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16283,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2854:15:56"},"returnParameters":{"id":16288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16306,"src":"2893:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":16286,"name":"uint224","nodeType":"ElementaryTypeName","src":"2893:7:56","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"2892:9:56"},"scope":17744,"src":"2836:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16330,"nodeType":"Block","src":"3423:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16315,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16309,"src":"3441:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3455:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":16317,"name":"uint216","nodeType":"ElementaryTypeName","src":"3455:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":16316,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3450:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":16320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3464:3:56","memberName":"max","nodeType":"MemberAccess","src":"3450:17:56","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3441:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":16322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3469:41:56","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":16314,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3433:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16324,"nodeType":"ExpressionStatement","src":"3433:78:56"},{"expression":{"arguments":[{"id":16327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16309,"src":"3536:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3528:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":16325,"name":"uint216","nodeType":"ElementaryTypeName","src":"3528:7:56","typeDescriptions":{}}},"id":16328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3528:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":16313,"id":16329,"nodeType":"Return","src":"3521:21:56"}]},"documentation":{"id":16307,"nodeType":"StructuredDocumentation","src":"3034:318:56","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":16331,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3366:9:56","nodeType":"FunctionDefinition","parameters":{"id":16310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16309,"mutability":"mutable","name":"value","nameLocation":"3384:5:56","nodeType":"VariableDeclaration","scope":16331,"src":"3376:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:15:56"},"returnParameters":{"id":16313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16331,"src":"3414:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":16311,"name":"uint216","nodeType":"ElementaryTypeName","src":"3414:7:56","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3413:9:56"},"scope":17744,"src":"3357:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16355,"nodeType":"Block","src":"3944:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16340,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"3962:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":16342,"name":"uint208","nodeType":"ElementaryTypeName","src":"3976:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":16341,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3971:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":16345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3985:3:56","memberName":"max","nodeType":"MemberAccess","src":"3971:17:56","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"3962:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":16347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3990:41:56","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":16339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3954:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16349,"nodeType":"ExpressionStatement","src":"3954:78:56"},{"expression":{"arguments":[{"id":16352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"4057:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4049:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":16350,"name":"uint208","nodeType":"ElementaryTypeName","src":"4049:7:56","typeDescriptions":{}}},"id":16353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":16338,"id":16354,"nodeType":"Return","src":"4042:21:56"}]},"documentation":{"id":16332,"nodeType":"StructuredDocumentation","src":"3555:318:56","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":16356,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"3887:9:56","nodeType":"FunctionDefinition","parameters":{"id":16335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16334,"mutability":"mutable","name":"value","nameLocation":"3905:5:56","nodeType":"VariableDeclaration","scope":16356,"src":"3897:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16333,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:15:56"},"returnParameters":{"id":16338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16356,"src":"3935:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":16336,"name":"uint208","nodeType":"ElementaryTypeName","src":"3935:7:56","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"3934:9:56"},"scope":17744,"src":"3878:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16380,"nodeType":"Block","src":"4465:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"4483:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4497:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":16367,"name":"uint200","nodeType":"ElementaryTypeName","src":"4497:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":16366,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4492:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":16370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4506:3:56","memberName":"max","nodeType":"MemberAccess","src":"4492:17:56","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4483:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":16372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4511:41:56","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":16364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4475:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4475:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16374,"nodeType":"ExpressionStatement","src":"4475:78:56"},{"expression":{"arguments":[{"id":16377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"4578:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4570:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":16375,"name":"uint200","nodeType":"ElementaryTypeName","src":"4570:7:56","typeDescriptions":{}}},"id":16378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":16363,"id":16379,"nodeType":"Return","src":"4563:21:56"}]},"documentation":{"id":16357,"nodeType":"StructuredDocumentation","src":"4076:318:56","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":16381,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4408:9:56","nodeType":"FunctionDefinition","parameters":{"id":16360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16359,"mutability":"mutable","name":"value","nameLocation":"4426:5:56","nodeType":"VariableDeclaration","scope":16381,"src":"4418:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16358,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:15:56"},"returnParameters":{"id":16363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16381,"src":"4456:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":16361,"name":"uint200","nodeType":"ElementaryTypeName","src":"4456:7:56","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4455:9:56"},"scope":17744,"src":"4399:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16405,"nodeType":"Block","src":"4986:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16384,"src":"5004:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5018:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":16392,"name":"uint192","nodeType":"ElementaryTypeName","src":"5018:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":16391,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5013:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5013:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":16395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5027:3:56","memberName":"max","nodeType":"MemberAccess","src":"5013:17:56","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5004:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":16397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5032:41:56","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":16389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4996:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4996:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16399,"nodeType":"ExpressionStatement","src":"4996:78:56"},{"expression":{"arguments":[{"id":16402,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16384,"src":"5099:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5091:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":16400,"name":"uint192","nodeType":"ElementaryTypeName","src":"5091:7:56","typeDescriptions":{}}},"id":16403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":16388,"id":16404,"nodeType":"Return","src":"5084:21:56"}]},"documentation":{"id":16382,"nodeType":"StructuredDocumentation","src":"4597:318:56","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":16406,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"4929:9:56","nodeType":"FunctionDefinition","parameters":{"id":16385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16384,"mutability":"mutable","name":"value","nameLocation":"4947:5:56","nodeType":"VariableDeclaration","scope":16406,"src":"4939:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16383,"name":"uint256","nodeType":"ElementaryTypeName","src":"4939:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4938:15:56"},"returnParameters":{"id":16388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16406,"src":"4977:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":16386,"name":"uint192","nodeType":"ElementaryTypeName","src":"4977:7:56","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"4976:9:56"},"scope":17744,"src":"4920:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16430,"nodeType":"Block","src":"5507:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16415,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16409,"src":"5525:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5539:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":16417,"name":"uint184","nodeType":"ElementaryTypeName","src":"5539:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":16416,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5534:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5534:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":16420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5548:3:56","memberName":"max","nodeType":"MemberAccess","src":"5534:17:56","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5525:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":16422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5553:41:56","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":16414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5517:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5517:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16424,"nodeType":"ExpressionStatement","src":"5517:78:56"},{"expression":{"arguments":[{"id":16427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16409,"src":"5620:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5612:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":16425,"name":"uint184","nodeType":"ElementaryTypeName","src":"5612:7:56","typeDescriptions":{}}},"id":16428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5612:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":16413,"id":16429,"nodeType":"Return","src":"5605:21:56"}]},"documentation":{"id":16407,"nodeType":"StructuredDocumentation","src":"5118:318:56","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":16431,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5450:9:56","nodeType":"FunctionDefinition","parameters":{"id":16410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16409,"mutability":"mutable","name":"value","nameLocation":"5468:5:56","nodeType":"VariableDeclaration","scope":16431,"src":"5460:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16408,"name":"uint256","nodeType":"ElementaryTypeName","src":"5460:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5459:15:56"},"returnParameters":{"id":16413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16412,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16431,"src":"5498:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":16411,"name":"uint184","nodeType":"ElementaryTypeName","src":"5498:7:56","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5497:9:56"},"scope":17744,"src":"5441:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16455,"nodeType":"Block","src":"6028:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"6046:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6060:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":16442,"name":"uint176","nodeType":"ElementaryTypeName","src":"6060:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":16441,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6055:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":16445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6069:3:56","memberName":"max","nodeType":"MemberAccess","src":"6055:17:56","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6046:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":16447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6074:41:56","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":16439,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6038:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16449,"nodeType":"ExpressionStatement","src":"6038:78:56"},{"expression":{"arguments":[{"id":16452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"6141:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6133:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":16450,"name":"uint176","nodeType":"ElementaryTypeName","src":"6133:7:56","typeDescriptions":{}}},"id":16453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6133:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":16438,"id":16454,"nodeType":"Return","src":"6126:21:56"}]},"documentation":{"id":16432,"nodeType":"StructuredDocumentation","src":"5639:318:56","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":16456,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"5971:9:56","nodeType":"FunctionDefinition","parameters":{"id":16435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16434,"mutability":"mutable","name":"value","nameLocation":"5989:5:56","nodeType":"VariableDeclaration","scope":16456,"src":"5981:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16433,"name":"uint256","nodeType":"ElementaryTypeName","src":"5981:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5980:15:56"},"returnParameters":{"id":16438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16456,"src":"6019:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":16436,"name":"uint176","nodeType":"ElementaryTypeName","src":"6019:7:56","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6018:9:56"},"scope":17744,"src":"5962:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16480,"nodeType":"Block","src":"6549:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16459,"src":"6567:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6581:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":16467,"name":"uint168","nodeType":"ElementaryTypeName","src":"6581:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":16466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6576:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6576:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":16470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6590:3:56","memberName":"max","nodeType":"MemberAccess","src":"6576:17:56","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6567:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":16472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6595:41:56","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":16464,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6559:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6559:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16474,"nodeType":"ExpressionStatement","src":"6559:78:56"},{"expression":{"arguments":[{"id":16477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16459,"src":"6662:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6654:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":16475,"name":"uint168","nodeType":"ElementaryTypeName","src":"6654:7:56","typeDescriptions":{}}},"id":16478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6654:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":16463,"id":16479,"nodeType":"Return","src":"6647:21:56"}]},"documentation":{"id":16457,"nodeType":"StructuredDocumentation","src":"6160:318:56","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":16481,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6492:9:56","nodeType":"FunctionDefinition","parameters":{"id":16460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16459,"mutability":"mutable","name":"value","nameLocation":"6510:5:56","nodeType":"VariableDeclaration","scope":16481,"src":"6502:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16458,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6501:15:56"},"returnParameters":{"id":16463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16481,"src":"6540:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":16461,"name":"uint168","nodeType":"ElementaryTypeName","src":"6540:7:56","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6539:9:56"},"scope":17744,"src":"6483:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16505,"nodeType":"Block","src":"7070:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"7088:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7102:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":16492,"name":"uint160","nodeType":"ElementaryTypeName","src":"7102:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":16491,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7097:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7097:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":16495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7111:3:56","memberName":"max","nodeType":"MemberAccess","src":"7097:17:56","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7088:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":16497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:41:56","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":16489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7080:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16499,"nodeType":"ExpressionStatement","src":"7080:78:56"},{"expression":{"arguments":[{"id":16502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"7183:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7175:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":16500,"name":"uint160","nodeType":"ElementaryTypeName","src":"7175:7:56","typeDescriptions":{}}},"id":16503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7175:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":16488,"id":16504,"nodeType":"Return","src":"7168:21:56"}]},"documentation":{"id":16482,"nodeType":"StructuredDocumentation","src":"6681:318:56","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":16506,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7013:9:56","nodeType":"FunctionDefinition","parameters":{"id":16485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16484,"mutability":"mutable","name":"value","nameLocation":"7031:5:56","nodeType":"VariableDeclaration","scope":16506,"src":"7023:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16483,"name":"uint256","nodeType":"ElementaryTypeName","src":"7023:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7022:15:56"},"returnParameters":{"id":16488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16506,"src":"7061:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":16486,"name":"uint160","nodeType":"ElementaryTypeName","src":"7061:7:56","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7060:9:56"},"scope":17744,"src":"7004:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16530,"nodeType":"Block","src":"7591:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16509,"src":"7609:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7623:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":16517,"name":"uint152","nodeType":"ElementaryTypeName","src":"7623:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":16516,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7618:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":16520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7632:3:56","memberName":"max","nodeType":"MemberAccess","src":"7618:17:56","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7609:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":16522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7637:41:56","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":16514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7601:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7601:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16524,"nodeType":"ExpressionStatement","src":"7601:78:56"},{"expression":{"arguments":[{"id":16527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16509,"src":"7704:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7696:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":16525,"name":"uint152","nodeType":"ElementaryTypeName","src":"7696:7:56","typeDescriptions":{}}},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7696:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":16513,"id":16529,"nodeType":"Return","src":"7689:21:56"}]},"documentation":{"id":16507,"nodeType":"StructuredDocumentation","src":"7202:318:56","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":16531,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7534:9:56","nodeType":"FunctionDefinition","parameters":{"id":16510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16509,"mutability":"mutable","name":"value","nameLocation":"7552:5:56","nodeType":"VariableDeclaration","scope":16531,"src":"7544:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16508,"name":"uint256","nodeType":"ElementaryTypeName","src":"7544:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7543:15:56"},"returnParameters":{"id":16513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16531,"src":"7582:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":16511,"name":"uint152","nodeType":"ElementaryTypeName","src":"7582:7:56","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7581:9:56"},"scope":17744,"src":"7525:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16555,"nodeType":"Block","src":"8112:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16540,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"8130:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8144:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":16542,"name":"uint144","nodeType":"ElementaryTypeName","src":"8144:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":16541,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8139:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8139:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8153:3:56","memberName":"max","nodeType":"MemberAccess","src":"8139:17:56","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8130:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":16547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8158:41:56","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":16539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8122:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8122:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16549,"nodeType":"ExpressionStatement","src":"8122:78:56"},{"expression":{"arguments":[{"id":16552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16534,"src":"8225:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8217:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":16550,"name":"uint144","nodeType":"ElementaryTypeName","src":"8217:7:56","typeDescriptions":{}}},"id":16553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8217:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":16538,"id":16554,"nodeType":"Return","src":"8210:21:56"}]},"documentation":{"id":16532,"nodeType":"StructuredDocumentation","src":"7723:318:56","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":16556,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8055:9:56","nodeType":"FunctionDefinition","parameters":{"id":16535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16534,"mutability":"mutable","name":"value","nameLocation":"8073:5:56","nodeType":"VariableDeclaration","scope":16556,"src":"8065:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16533,"name":"uint256","nodeType":"ElementaryTypeName","src":"8065:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8064:15:56"},"returnParameters":{"id":16538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16556,"src":"8103:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":16536,"name":"uint144","nodeType":"ElementaryTypeName","src":"8103:7:56","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8102:9:56"},"scope":17744,"src":"8046:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16580,"nodeType":"Block","src":"8633:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"8651:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8665:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":16567,"name":"uint136","nodeType":"ElementaryTypeName","src":"8665:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":16566,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8660:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8660:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":16570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8674:3:56","memberName":"max","nodeType":"MemberAccess","src":"8660:17:56","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8651:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":16572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8679:41:56","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":16564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8643:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8643:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16574,"nodeType":"ExpressionStatement","src":"8643:78:56"},{"expression":{"arguments":[{"id":16577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16559,"src":"8746:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8738:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":16575,"name":"uint136","nodeType":"ElementaryTypeName","src":"8738:7:56","typeDescriptions":{}}},"id":16578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8738:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":16563,"id":16579,"nodeType":"Return","src":"8731:21:56"}]},"documentation":{"id":16557,"nodeType":"StructuredDocumentation","src":"8244:318:56","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":16581,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8576:9:56","nodeType":"FunctionDefinition","parameters":{"id":16560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16559,"mutability":"mutable","name":"value","nameLocation":"8594:5:56","nodeType":"VariableDeclaration","scope":16581,"src":"8586:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16558,"name":"uint256","nodeType":"ElementaryTypeName","src":"8586:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8585:15:56"},"returnParameters":{"id":16563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16581,"src":"8624:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":16561,"name":"uint136","nodeType":"ElementaryTypeName","src":"8624:7:56","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8623:9:56"},"scope":17744,"src":"8567:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16605,"nodeType":"Block","src":"9154:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16584,"src":"9172:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9186:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":16592,"name":"uint128","nodeType":"ElementaryTypeName","src":"9186:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":16591,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9181:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9181:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":16595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9195:3:56","memberName":"max","nodeType":"MemberAccess","src":"9181:17:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9172:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":16597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9200:41:56","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":16589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9164:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9164:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16599,"nodeType":"ExpressionStatement","src":"9164:78:56"},{"expression":{"arguments":[{"id":16602,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16584,"src":"9267:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9259:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":16600,"name":"uint128","nodeType":"ElementaryTypeName","src":"9259:7:56","typeDescriptions":{}}},"id":16603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9259:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":16588,"id":16604,"nodeType":"Return","src":"9252:21:56"}]},"documentation":{"id":16582,"nodeType":"StructuredDocumentation","src":"8765:318:56","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":16606,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9097:9:56","nodeType":"FunctionDefinition","parameters":{"id":16585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16584,"mutability":"mutable","name":"value","nameLocation":"9115:5:56","nodeType":"VariableDeclaration","scope":16606,"src":"9107:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16583,"name":"uint256","nodeType":"ElementaryTypeName","src":"9107:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9106:15:56"},"returnParameters":{"id":16588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16606,"src":"9145:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":16586,"name":"uint128","nodeType":"ElementaryTypeName","src":"9145:7:56","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9144:9:56"},"scope":17744,"src":"9088:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16630,"nodeType":"Block","src":"9675:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16609,"src":"9693:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9707:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":16617,"name":"uint120","nodeType":"ElementaryTypeName","src":"9707:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":16616,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9702:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":16620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9716:3:56","memberName":"max","nodeType":"MemberAccess","src":"9702:17:56","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9693:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":16622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9721:41:56","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":16614,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9685:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9685:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16624,"nodeType":"ExpressionStatement","src":"9685:78:56"},{"expression":{"arguments":[{"id":16627,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16609,"src":"9788:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9780:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":16625,"name":"uint120","nodeType":"ElementaryTypeName","src":"9780:7:56","typeDescriptions":{}}},"id":16628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9780:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":16613,"id":16629,"nodeType":"Return","src":"9773:21:56"}]},"documentation":{"id":16607,"nodeType":"StructuredDocumentation","src":"9286:318:56","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":16631,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9618:9:56","nodeType":"FunctionDefinition","parameters":{"id":16610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16609,"mutability":"mutable","name":"value","nameLocation":"9636:5:56","nodeType":"VariableDeclaration","scope":16631,"src":"9628:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16608,"name":"uint256","nodeType":"ElementaryTypeName","src":"9628:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9627:15:56"},"returnParameters":{"id":16613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16631,"src":"9666:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":16611,"name":"uint120","nodeType":"ElementaryTypeName","src":"9666:7:56","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9665:9:56"},"scope":17744,"src":"9609:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16655,"nodeType":"Block","src":"10196:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16634,"src":"10214:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10228:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":16642,"name":"uint112","nodeType":"ElementaryTypeName","src":"10228:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":16641,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10223:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":16645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10237:3:56","memberName":"max","nodeType":"MemberAccess","src":"10223:17:56","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10214:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":16647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10242:41:56","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":16639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10206:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10206:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16649,"nodeType":"ExpressionStatement","src":"10206:78:56"},{"expression":{"arguments":[{"id":16652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16634,"src":"10309:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10301:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":16650,"name":"uint112","nodeType":"ElementaryTypeName","src":"10301:7:56","typeDescriptions":{}}},"id":16653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10301:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":16638,"id":16654,"nodeType":"Return","src":"10294:21:56"}]},"documentation":{"id":16632,"nodeType":"StructuredDocumentation","src":"9807:318:56","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":16656,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10139:9:56","nodeType":"FunctionDefinition","parameters":{"id":16635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16634,"mutability":"mutable","name":"value","nameLocation":"10157:5:56","nodeType":"VariableDeclaration","scope":16656,"src":"10149:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16633,"name":"uint256","nodeType":"ElementaryTypeName","src":"10149:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10148:15:56"},"returnParameters":{"id":16638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16656,"src":"10187:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":16636,"name":"uint112","nodeType":"ElementaryTypeName","src":"10187:7:56","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10186:9:56"},"scope":17744,"src":"10130:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16680,"nodeType":"Block","src":"10717:126:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16665,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16659,"src":"10735:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10749:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":16667,"name":"uint104","nodeType":"ElementaryTypeName","src":"10749:7:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":16666,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10744:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10744:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":16670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10758:3:56","memberName":"max","nodeType":"MemberAccess","src":"10744:17:56","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10735:26:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":16672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10763:41:56","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":16664,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10727:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10727:78:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16674,"nodeType":"ExpressionStatement","src":"10727:78:56"},{"expression":{"arguments":[{"id":16677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16659,"src":"10830:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10822:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":16675,"name":"uint104","nodeType":"ElementaryTypeName","src":"10822:7:56","typeDescriptions":{}}},"id":16678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10822:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":16663,"id":16679,"nodeType":"Return","src":"10815:21:56"}]},"documentation":{"id":16657,"nodeType":"StructuredDocumentation","src":"10328:318:56","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":16681,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10660:9:56","nodeType":"FunctionDefinition","parameters":{"id":16660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16659,"mutability":"mutable","name":"value","nameLocation":"10678:5:56","nodeType":"VariableDeclaration","scope":16681,"src":"10670:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16658,"name":"uint256","nodeType":"ElementaryTypeName","src":"10670:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10669:15:56"},"returnParameters":{"id":16663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16662,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16681,"src":"10708:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":16661,"name":"uint104","nodeType":"ElementaryTypeName","src":"10708:7:56","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10707:9:56"},"scope":17744,"src":"10651:192:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16705,"nodeType":"Block","src":"11232:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16690,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"11250:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11264:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16692,"name":"uint96","nodeType":"ElementaryTypeName","src":"11264:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":16691,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11259:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11259:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":16695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11272:3:56","memberName":"max","nodeType":"MemberAccess","src":"11259:16:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11250:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":16697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11277:40:56","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":16689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11242:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11242:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16699,"nodeType":"ExpressionStatement","src":"11242:76:56"},{"expression":{"arguments":[{"id":16702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"11342:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11335:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":16700,"name":"uint96","nodeType":"ElementaryTypeName","src":"11335:6:56","typeDescriptions":{}}},"id":16703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11335:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":16688,"id":16704,"nodeType":"Return","src":"11328:20:56"}]},"documentation":{"id":16682,"nodeType":"StructuredDocumentation","src":"10849:314:56","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":16706,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11177:8:56","nodeType":"FunctionDefinition","parameters":{"id":16685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16684,"mutability":"mutable","name":"value","nameLocation":"11194:5:56","nodeType":"VariableDeclaration","scope":16706,"src":"11186:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16683,"name":"uint256","nodeType":"ElementaryTypeName","src":"11186:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11185:15:56"},"returnParameters":{"id":16688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16706,"src":"11224:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":16686,"name":"uint96","nodeType":"ElementaryTypeName","src":"11224:6:56","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11223:8:56"},"scope":17744,"src":"11168:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16730,"nodeType":"Block","src":"11744:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16709,"src":"11762:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11776:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":16717,"name":"uint88","nodeType":"ElementaryTypeName","src":"11776:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":16716,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11771:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11771:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":16720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11784:3:56","memberName":"max","nodeType":"MemberAccess","src":"11771:16:56","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11762:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":16722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11789:40:56","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":16714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11754:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11754:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16724,"nodeType":"ExpressionStatement","src":"11754:76:56"},{"expression":{"arguments":[{"id":16727,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16709,"src":"11854:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":16725,"name":"uint88","nodeType":"ElementaryTypeName","src":"11847:6:56","typeDescriptions":{}}},"id":16728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11847:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":16713,"id":16729,"nodeType":"Return","src":"11840:20:56"}]},"documentation":{"id":16707,"nodeType":"StructuredDocumentation","src":"11361:314:56","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":16731,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11689:8:56","nodeType":"FunctionDefinition","parameters":{"id":16710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16709,"mutability":"mutable","name":"value","nameLocation":"11706:5:56","nodeType":"VariableDeclaration","scope":16731,"src":"11698:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16708,"name":"uint256","nodeType":"ElementaryTypeName","src":"11698:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11697:15:56"},"returnParameters":{"id":16713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16731,"src":"11736:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":16711,"name":"uint88","nodeType":"ElementaryTypeName","src":"11736:6:56","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11735:8:56"},"scope":17744,"src":"11680:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16755,"nodeType":"Block","src":"12256:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16740,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16734,"src":"12274:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12288:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":16742,"name":"uint80","nodeType":"ElementaryTypeName","src":"12288:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":16741,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12283:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12283:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":16745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12296:3:56","memberName":"max","nodeType":"MemberAccess","src":"12283:16:56","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12274:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":16747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12301:40:56","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":16739,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12266:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12266:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16749,"nodeType":"ExpressionStatement","src":"12266:76:56"},{"expression":{"arguments":[{"id":16752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16734,"src":"12366:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12359:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":16750,"name":"uint80","nodeType":"ElementaryTypeName","src":"12359:6:56","typeDescriptions":{}}},"id":16753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12359:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":16738,"id":16754,"nodeType":"Return","src":"12352:20:56"}]},"documentation":{"id":16732,"nodeType":"StructuredDocumentation","src":"11873:314:56","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":16756,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12201:8:56","nodeType":"FunctionDefinition","parameters":{"id":16735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16734,"mutability":"mutable","name":"value","nameLocation":"12218:5:56","nodeType":"VariableDeclaration","scope":16756,"src":"12210:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16733,"name":"uint256","nodeType":"ElementaryTypeName","src":"12210:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12209:15:56"},"returnParameters":{"id":16738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16756,"src":"12248:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":16736,"name":"uint80","nodeType":"ElementaryTypeName","src":"12248:6:56","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12247:8:56"},"scope":17744,"src":"12192:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16780,"nodeType":"Block","src":"12768:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16765,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16759,"src":"12786:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12800:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":16767,"name":"uint72","nodeType":"ElementaryTypeName","src":"12800:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":16766,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12795:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12795:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":16770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12808:3:56","memberName":"max","nodeType":"MemberAccess","src":"12795:16:56","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12786:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":16772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12813:40:56","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":16764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12778:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12778:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16774,"nodeType":"ExpressionStatement","src":"12778:76:56"},{"expression":{"arguments":[{"id":16777,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16759,"src":"12878:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12871:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":16775,"name":"uint72","nodeType":"ElementaryTypeName","src":"12871:6:56","typeDescriptions":{}}},"id":16778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12871:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":16763,"id":16779,"nodeType":"Return","src":"12864:20:56"}]},"documentation":{"id":16757,"nodeType":"StructuredDocumentation","src":"12385:314:56","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":16781,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12713:8:56","nodeType":"FunctionDefinition","parameters":{"id":16760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16759,"mutability":"mutable","name":"value","nameLocation":"12730:5:56","nodeType":"VariableDeclaration","scope":16781,"src":"12722:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16758,"name":"uint256","nodeType":"ElementaryTypeName","src":"12722:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12721:15:56"},"returnParameters":{"id":16763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16781,"src":"12760:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":16761,"name":"uint72","nodeType":"ElementaryTypeName","src":"12760:6:56","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12759:8:56"},"scope":17744,"src":"12704:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16805,"nodeType":"Block","src":"13280:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16790,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16784,"src":"13298:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13312:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":16792,"name":"uint64","nodeType":"ElementaryTypeName","src":"13312:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":16791,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13307:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13307:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":16795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13320:3:56","memberName":"max","nodeType":"MemberAccess","src":"13307:16:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13298:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":16797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13325:40:56","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":16789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13290:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13290:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16799,"nodeType":"ExpressionStatement","src":"13290:76:56"},{"expression":{"arguments":[{"id":16802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16784,"src":"13390:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13383:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":16800,"name":"uint64","nodeType":"ElementaryTypeName","src":"13383:6:56","typeDescriptions":{}}},"id":16803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13383:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":16788,"id":16804,"nodeType":"Return","src":"13376:20:56"}]},"documentation":{"id":16782,"nodeType":"StructuredDocumentation","src":"12897:314:56","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":16806,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13225:8:56","nodeType":"FunctionDefinition","parameters":{"id":16785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16784,"mutability":"mutable","name":"value","nameLocation":"13242:5:56","nodeType":"VariableDeclaration","scope":16806,"src":"13234:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16783,"name":"uint256","nodeType":"ElementaryTypeName","src":"13234:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13233:15:56"},"returnParameters":{"id":16788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16787,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16806,"src":"13272:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":16786,"name":"uint64","nodeType":"ElementaryTypeName","src":"13272:6:56","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13271:8:56"},"scope":17744,"src":"13216:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16830,"nodeType":"Block","src":"13792:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16815,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16809,"src":"13810:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13824:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":16817,"name":"uint56","nodeType":"ElementaryTypeName","src":"13824:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":16816,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13819:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13819:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":16820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13832:3:56","memberName":"max","nodeType":"MemberAccess","src":"13819:16:56","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13810:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":16822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13837:40:56","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":16814,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13802:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16824,"nodeType":"ExpressionStatement","src":"13802:76:56"},{"expression":{"arguments":[{"id":16827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16809,"src":"13902:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13895:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":16825,"name":"uint56","nodeType":"ElementaryTypeName","src":"13895:6:56","typeDescriptions":{}}},"id":16828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13895:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":16813,"id":16829,"nodeType":"Return","src":"13888:20:56"}]},"documentation":{"id":16807,"nodeType":"StructuredDocumentation","src":"13409:314:56","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":16831,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13737:8:56","nodeType":"FunctionDefinition","parameters":{"id":16810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16809,"mutability":"mutable","name":"value","nameLocation":"13754:5:56","nodeType":"VariableDeclaration","scope":16831,"src":"13746:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16808,"name":"uint256","nodeType":"ElementaryTypeName","src":"13746:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13745:15:56"},"returnParameters":{"id":16813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16831,"src":"13784:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":16811,"name":"uint56","nodeType":"ElementaryTypeName","src":"13784:6:56","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13783:8:56"},"scope":17744,"src":"13728:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16855,"nodeType":"Block","src":"14304:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16840,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16834,"src":"14322:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14336:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":16842,"name":"uint48","nodeType":"ElementaryTypeName","src":"14336:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":16841,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14331:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14331:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":16845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14344:3:56","memberName":"max","nodeType":"MemberAccess","src":"14331:16:56","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14322:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":16847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14349:40:56","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":16839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14314:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14314:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16849,"nodeType":"ExpressionStatement","src":"14314:76:56"},{"expression":{"arguments":[{"id":16852,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16834,"src":"14414:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14407:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":16850,"name":"uint48","nodeType":"ElementaryTypeName","src":"14407:6:56","typeDescriptions":{}}},"id":16853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14407:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":16838,"id":16854,"nodeType":"Return","src":"14400:20:56"}]},"documentation":{"id":16832,"nodeType":"StructuredDocumentation","src":"13921:314:56","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":16856,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14249:8:56","nodeType":"FunctionDefinition","parameters":{"id":16835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16834,"mutability":"mutable","name":"value","nameLocation":"14266:5:56","nodeType":"VariableDeclaration","scope":16856,"src":"14258:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16833,"name":"uint256","nodeType":"ElementaryTypeName","src":"14258:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14257:15:56"},"returnParameters":{"id":16838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16856,"src":"14296:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":16836,"name":"uint48","nodeType":"ElementaryTypeName","src":"14296:6:56","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14295:8:56"},"scope":17744,"src":"14240:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16880,"nodeType":"Block","src":"14816:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16865,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"14834:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14848:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16867,"name":"uint40","nodeType":"ElementaryTypeName","src":"14848:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":16866,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14843:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14843:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":16870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14856:3:56","memberName":"max","nodeType":"MemberAccess","src":"14843:16:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14834:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":16872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14861:40:56","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":16864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14826:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14826:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16874,"nodeType":"ExpressionStatement","src":"14826:76:56"},{"expression":{"arguments":[{"id":16877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"14926:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":16875,"name":"uint40","nodeType":"ElementaryTypeName","src":"14919:6:56","typeDescriptions":{}}},"id":16878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14919:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":16863,"id":16879,"nodeType":"Return","src":"14912:20:56"}]},"documentation":{"id":16857,"nodeType":"StructuredDocumentation","src":"14433:314:56","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":16881,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14761:8:56","nodeType":"FunctionDefinition","parameters":{"id":16860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16859,"mutability":"mutable","name":"value","nameLocation":"14778:5:56","nodeType":"VariableDeclaration","scope":16881,"src":"14770:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16858,"name":"uint256","nodeType":"ElementaryTypeName","src":"14770:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14769:15:56"},"returnParameters":{"id":16863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16881,"src":"14808:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":16861,"name":"uint40","nodeType":"ElementaryTypeName","src":"14808:6:56","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14807:8:56"},"scope":17744,"src":"14752:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16905,"nodeType":"Block","src":"15328:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16884,"src":"15346:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15360:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":16892,"name":"uint32","nodeType":"ElementaryTypeName","src":"15360:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":16891,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15355:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15355:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":16895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15368:3:56","memberName":"max","nodeType":"MemberAccess","src":"15355:16:56","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15346:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":16897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15373:40:56","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":16889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15338:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16899,"nodeType":"ExpressionStatement","src":"15338:76:56"},{"expression":{"arguments":[{"id":16902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16884,"src":"15438:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15431:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":16900,"name":"uint32","nodeType":"ElementaryTypeName","src":"15431:6:56","typeDescriptions":{}}},"id":16903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15431:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":16888,"id":16904,"nodeType":"Return","src":"15424:20:56"}]},"documentation":{"id":16882,"nodeType":"StructuredDocumentation","src":"14945:314:56","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":16906,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15273:8:56","nodeType":"FunctionDefinition","parameters":{"id":16885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16884,"mutability":"mutable","name":"value","nameLocation":"15290:5:56","nodeType":"VariableDeclaration","scope":16906,"src":"15282:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16883,"name":"uint256","nodeType":"ElementaryTypeName","src":"15282:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15281:15:56"},"returnParameters":{"id":16888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16906,"src":"15320:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":16886,"name":"uint32","nodeType":"ElementaryTypeName","src":"15320:6:56","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15319:8:56"},"scope":17744,"src":"15264:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16930,"nodeType":"Block","src":"15840:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16915,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"15858:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15872:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":16917,"name":"uint24","nodeType":"ElementaryTypeName","src":"15872:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":16916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15867:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15867:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":16920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15880:3:56","memberName":"max","nodeType":"MemberAccess","src":"15867:16:56","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15858:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":16922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15885:40:56","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":16914,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15850:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15850:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16924,"nodeType":"ExpressionStatement","src":"15850:76:56"},{"expression":{"arguments":[{"id":16927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"15950:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15943:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":16925,"name":"uint24","nodeType":"ElementaryTypeName","src":"15943:6:56","typeDescriptions":{}}},"id":16928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15943:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":16913,"id":16929,"nodeType":"Return","src":"15936:20:56"}]},"documentation":{"id":16907,"nodeType":"StructuredDocumentation","src":"15457:314:56","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":16931,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15785:8:56","nodeType":"FunctionDefinition","parameters":{"id":16910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16909,"mutability":"mutable","name":"value","nameLocation":"15802:5:56","nodeType":"VariableDeclaration","scope":16931,"src":"15794:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16908,"name":"uint256","nodeType":"ElementaryTypeName","src":"15794:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15793:15:56"},"returnParameters":{"id":16913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16912,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16931,"src":"15832:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":16911,"name":"uint24","nodeType":"ElementaryTypeName","src":"15832:6:56","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15831:8:56"},"scope":17744,"src":"15776:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16955,"nodeType":"Block","src":"16352:123:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16940,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16934,"src":"16370:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16384:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":16942,"name":"uint16","nodeType":"ElementaryTypeName","src":"16384:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":16941,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16379:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16379:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":16945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16392:3:56","memberName":"max","nodeType":"MemberAccess","src":"16379:16:56","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16370:25:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":16947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16397:40:56","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":16939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16362:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16362:76:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16949,"nodeType":"ExpressionStatement","src":"16362:76:56"},{"expression":{"arguments":[{"id":16952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16934,"src":"16462:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16455:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":16950,"name":"uint16","nodeType":"ElementaryTypeName","src":"16455:6:56","typeDescriptions":{}}},"id":16953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16455:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":16938,"id":16954,"nodeType":"Return","src":"16448:20:56"}]},"documentation":{"id":16932,"nodeType":"StructuredDocumentation","src":"15969:314:56","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":16956,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16297:8:56","nodeType":"FunctionDefinition","parameters":{"id":16935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16934,"mutability":"mutable","name":"value","nameLocation":"16314:5:56","nodeType":"VariableDeclaration","scope":16956,"src":"16306:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16933,"name":"uint256","nodeType":"ElementaryTypeName","src":"16306:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16305:15:56"},"returnParameters":{"id":16938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16956,"src":"16344:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":16936,"name":"uint16","nodeType":"ElementaryTypeName","src":"16344:6:56","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16343:8:56"},"scope":17744,"src":"16288:187:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":16980,"nodeType":"Block","src":"16858:120:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16959,"src":"16876:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"arguments":[{"id":16968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16890:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":16967,"name":"uint8","nodeType":"ElementaryTypeName","src":"16890:5:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":16966,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16885:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16885:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":16970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16897:3:56","memberName":"max","nodeType":"MemberAccess","src":"16885:15:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16876:24:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":16972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16902:39:56","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":16964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16868:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16868:74:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16974,"nodeType":"ExpressionStatement","src":"16868:74:56"},{"expression":{"arguments":[{"id":16977,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16959,"src":"16965:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16959:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":16975,"name":"uint8","nodeType":"ElementaryTypeName","src":"16959:5:56","typeDescriptions":{}}},"id":16978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":16963,"id":16979,"nodeType":"Return","src":"16952:19:56"}]},"documentation":{"id":16957,"nodeType":"StructuredDocumentation","src":"16481:310:56","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":16981,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16805:7:56","nodeType":"FunctionDefinition","parameters":{"id":16960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16959,"mutability":"mutable","name":"value","nameLocation":"16821:5:56","nodeType":"VariableDeclaration","scope":16981,"src":"16813:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16958,"name":"uint256","nodeType":"ElementaryTypeName","src":"16813:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16812:15:56"},"returnParameters":{"id":16963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16981,"src":"16851:5:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":16961,"name":"uint8","nodeType":"ElementaryTypeName","src":"16851:5:56","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16850:7:56"},"scope":17744,"src":"16796:182:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17001,"nodeType":"Block","src":"17252:103:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":16992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16984,"src":"17270:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":16991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17279:1:56","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17270:10:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c7565206d75737420626520706f736974697665","id":16993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17282:34:56","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":16989,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17262:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17262:55:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16995,"nodeType":"ExpressionStatement","src":"17262:55:56"},{"expression":{"arguments":[{"id":16998,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16984,"src":"17342:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":16997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17334:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16996,"name":"uint256","nodeType":"ElementaryTypeName","src":"17334:7:56","typeDescriptions":{}}},"id":16999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17334:14:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16988,"id":17000,"nodeType":"Return","src":"17327:21:56"}]},"documentation":{"id":16982,"nodeType":"StructuredDocumentation","src":"16984:198:56","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":17002,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17196:9:56","nodeType":"FunctionDefinition","parameters":{"id":16985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16984,"mutability":"mutable","name":"value","nameLocation":"17213:5:56","nodeType":"VariableDeclaration","scope":17002,"src":"17206:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":16983,"name":"int256","nodeType":"ElementaryTypeName","src":"17206:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17205:14:56"},"returnParameters":{"id":16988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16987,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17002,"src":"17243:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16986,"name":"uint256","nodeType":"ElementaryTypeName","src":"17243:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17242:9:56"},"scope":17744,"src":"17187:168:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17024,"nodeType":"Block","src":"17790:124:56","statements":[{"expression":{"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17010,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17008,"src":"17800:10:56","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17005,"src":"17820:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17813:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":17011,"name":"int248","nodeType":"ElementaryTypeName","src":"17813:6:56","typeDescriptions":{}}},"id":17014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17813:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17800:26:56","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":17016,"nodeType":"ExpressionStatement","src":"17800:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17018,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17008,"src":"17844:10:56","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17005,"src":"17858:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17844:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234382062697473","id":17021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17865:41:56","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":17017,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"17836:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17836:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17023,"nodeType":"ExpressionStatement","src":"17836:71:56"}]},"documentation":{"id":17003,"nodeType":"StructuredDocumentation","src":"17361:350:56","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":17025,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17725:8:56","nodeType":"FunctionDefinition","parameters":{"id":17006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17005,"mutability":"mutable","name":"value","nameLocation":"17741:5:56","nodeType":"VariableDeclaration","scope":17025,"src":"17734:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17004,"name":"int256","nodeType":"ElementaryTypeName","src":"17734:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17733:14:56"},"returnParameters":{"id":17009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17008,"mutability":"mutable","name":"downcasted","nameLocation":"17778:10:56","nodeType":"VariableDeclaration","scope":17025,"src":"17771:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":17007,"name":"int248","nodeType":"ElementaryTypeName","src":"17771:6:56","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17770:19:56"},"scope":17744,"src":"17716:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17047,"nodeType":"Block","src":"18349:124:56","statements":[{"expression":{"id":17038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17033,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17031,"src":"18359:10:56","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17036,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"18379:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18372:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":17034,"name":"int240","nodeType":"ElementaryTypeName","src":"18372:6:56","typeDescriptions":{}}},"id":17037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18372:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18359:26:56","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":17039,"nodeType":"ExpressionStatement","src":"18359:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17041,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17031,"src":"18403:10:56","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17042,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"18417:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18403:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203234302062697473","id":17044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18424:41:56","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":17040,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18395:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18395:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17046,"nodeType":"ExpressionStatement","src":"18395:71:56"}]},"documentation":{"id":17026,"nodeType":"StructuredDocumentation","src":"17920:350:56","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":17048,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18284:8:56","nodeType":"FunctionDefinition","parameters":{"id":17029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17028,"mutability":"mutable","name":"value","nameLocation":"18300:5:56","nodeType":"VariableDeclaration","scope":17048,"src":"18293:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17027,"name":"int256","nodeType":"ElementaryTypeName","src":"18293:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18292:14:56"},"returnParameters":{"id":17032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17031,"mutability":"mutable","name":"downcasted","nameLocation":"18337:10:56","nodeType":"VariableDeclaration","scope":17048,"src":"18330:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":17030,"name":"int240","nodeType":"ElementaryTypeName","src":"18330:6:56","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18329:19:56"},"scope":17744,"src":"18275:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17070,"nodeType":"Block","src":"18908:124:56","statements":[{"expression":{"id":17061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17056,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"18918:10:56","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17051,"src":"18938:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18931:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":17057,"name":"int232","nodeType":"ElementaryTypeName","src":"18931:6:56","typeDescriptions":{}}},"id":17060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18931:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18918:26:56","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":17062,"nodeType":"ExpressionStatement","src":"18918:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17064,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"18962:10:56","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17065,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17051,"src":"18976:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18962:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203233322062697473","id":17067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18983:41:56","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":17063,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18954:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18954:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17069,"nodeType":"ExpressionStatement","src":"18954:71:56"}]},"documentation":{"id":17049,"nodeType":"StructuredDocumentation","src":"18479:350:56","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":17071,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18843:8:56","nodeType":"FunctionDefinition","parameters":{"id":17052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17051,"mutability":"mutable","name":"value","nameLocation":"18859:5:56","nodeType":"VariableDeclaration","scope":17071,"src":"18852:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17050,"name":"int256","nodeType":"ElementaryTypeName","src":"18852:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18851:14:56"},"returnParameters":{"id":17055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17054,"mutability":"mutable","name":"downcasted","nameLocation":"18896:10:56","nodeType":"VariableDeclaration","scope":17071,"src":"18889:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":17053,"name":"int232","nodeType":"ElementaryTypeName","src":"18889:6:56","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18888:19:56"},"scope":17744,"src":"18834:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17093,"nodeType":"Block","src":"19467:124:56","statements":[{"expression":{"id":17084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17079,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17077,"src":"19477:10:56","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17074,"src":"19497:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19490:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":17080,"name":"int224","nodeType":"ElementaryTypeName","src":"19490:6:56","typeDescriptions":{}}},"id":17083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19490:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19477:26:56","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":17085,"nodeType":"ExpressionStatement","src":"19477:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17087,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17077,"src":"19521:10:56","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17074,"src":"19535:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19521:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203232342062697473","id":17090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19542:41:56","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":17086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19513:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19513:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17092,"nodeType":"ExpressionStatement","src":"19513:71:56"}]},"documentation":{"id":17072,"nodeType":"StructuredDocumentation","src":"19038:350:56","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":17094,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19402:8:56","nodeType":"FunctionDefinition","parameters":{"id":17075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17074,"mutability":"mutable","name":"value","nameLocation":"19418:5:56","nodeType":"VariableDeclaration","scope":17094,"src":"19411:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17073,"name":"int256","nodeType":"ElementaryTypeName","src":"19411:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19410:14:56"},"returnParameters":{"id":17078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17077,"mutability":"mutable","name":"downcasted","nameLocation":"19455:10:56","nodeType":"VariableDeclaration","scope":17094,"src":"19448:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":17076,"name":"int224","nodeType":"ElementaryTypeName","src":"19448:6:56","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19447:19:56"},"scope":17744,"src":"19393:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17116,"nodeType":"Block","src":"20026:124:56","statements":[{"expression":{"id":17107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17102,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17100,"src":"20036:10:56","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"20056:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20049:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":17103,"name":"int216","nodeType":"ElementaryTypeName","src":"20049:6:56","typeDescriptions":{}}},"id":17106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20049:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"20036:26:56","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":17108,"nodeType":"ExpressionStatement","src":"20036:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17110,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17100,"src":"20080:10:56","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17097,"src":"20094:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20080:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203231362062697473","id":17113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20101:41:56","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":17109,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20072:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20072:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17115,"nodeType":"ExpressionStatement","src":"20072:71:56"}]},"documentation":{"id":17095,"nodeType":"StructuredDocumentation","src":"19597:350:56","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":17117,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19961:8:56","nodeType":"FunctionDefinition","parameters":{"id":17098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17097,"mutability":"mutable","name":"value","nameLocation":"19977:5:56","nodeType":"VariableDeclaration","scope":17117,"src":"19970:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17096,"name":"int256","nodeType":"ElementaryTypeName","src":"19970:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19969:14:56"},"returnParameters":{"id":17101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17100,"mutability":"mutable","name":"downcasted","nameLocation":"20014:10:56","nodeType":"VariableDeclaration","scope":17117,"src":"20007:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":17099,"name":"int216","nodeType":"ElementaryTypeName","src":"20007:6:56","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"20006:19:56"},"scope":17744,"src":"19952:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17139,"nodeType":"Block","src":"20585:124:56","statements":[{"expression":{"id":17130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17125,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"20595:10:56","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17128,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17120,"src":"20615:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20608:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":17126,"name":"int208","nodeType":"ElementaryTypeName","src":"20608:6:56","typeDescriptions":{}}},"id":17129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20608:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20595:26:56","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":17131,"nodeType":"ExpressionStatement","src":"20595:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17133,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17123,"src":"20639:10:56","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17120,"src":"20653:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20639:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230382062697473","id":17136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20660:41:56","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":17132,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"20631:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20631:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17138,"nodeType":"ExpressionStatement","src":"20631:71:56"}]},"documentation":{"id":17118,"nodeType":"StructuredDocumentation","src":"20156:350:56","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":17140,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20520:8:56","nodeType":"FunctionDefinition","parameters":{"id":17121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17120,"mutability":"mutable","name":"value","nameLocation":"20536:5:56","nodeType":"VariableDeclaration","scope":17140,"src":"20529:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17119,"name":"int256","nodeType":"ElementaryTypeName","src":"20529:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20528:14:56"},"returnParameters":{"id":17124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17123,"mutability":"mutable","name":"downcasted","nameLocation":"20573:10:56","nodeType":"VariableDeclaration","scope":17140,"src":"20566:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":17122,"name":"int208","nodeType":"ElementaryTypeName","src":"20566:6:56","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20565:19:56"},"scope":17744,"src":"20511:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17162,"nodeType":"Block","src":"21144:124:56","statements":[{"expression":{"id":17153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17148,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17146,"src":"21154:10:56","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17143,"src":"21174:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21167:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":17149,"name":"int200","nodeType":"ElementaryTypeName","src":"21167:6:56","typeDescriptions":{}}},"id":17152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21167:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21154:26:56","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":17154,"nodeType":"ExpressionStatement","src":"21154:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17156,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17146,"src":"21198:10:56","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17143,"src":"21212:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21198:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203230302062697473","id":17159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21219:41:56","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":17155,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21190:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21190:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17161,"nodeType":"ExpressionStatement","src":"21190:71:56"}]},"documentation":{"id":17141,"nodeType":"StructuredDocumentation","src":"20715:350:56","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":17163,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"21079:8:56","nodeType":"FunctionDefinition","parameters":{"id":17144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17143,"mutability":"mutable","name":"value","nameLocation":"21095:5:56","nodeType":"VariableDeclaration","scope":17163,"src":"21088:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17142,"name":"int256","nodeType":"ElementaryTypeName","src":"21088:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21087:14:56"},"returnParameters":{"id":17147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17146,"mutability":"mutable","name":"downcasted","nameLocation":"21132:10:56","nodeType":"VariableDeclaration","scope":17163,"src":"21125:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":17145,"name":"int200","nodeType":"ElementaryTypeName","src":"21125:6:56","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21124:19:56"},"scope":17744,"src":"21070:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17185,"nodeType":"Block","src":"21703:124:56","statements":[{"expression":{"id":17176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17171,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17169,"src":"21713:10:56","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17166,"src":"21733:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21726:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":17172,"name":"int192","nodeType":"ElementaryTypeName","src":"21726:6:56","typeDescriptions":{}}},"id":17175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21726:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21713:26:56","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":17177,"nodeType":"ExpressionStatement","src":"21713:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17179,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17169,"src":"21757:10:56","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17180,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17166,"src":"21771:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21757:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203139322062697473","id":17182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21778:41:56","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":17178,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21749:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21749:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17184,"nodeType":"ExpressionStatement","src":"21749:71:56"}]},"documentation":{"id":17164,"nodeType":"StructuredDocumentation","src":"21274:350:56","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":17186,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21638:8:56","nodeType":"FunctionDefinition","parameters":{"id":17167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17166,"mutability":"mutable","name":"value","nameLocation":"21654:5:56","nodeType":"VariableDeclaration","scope":17186,"src":"21647:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17165,"name":"int256","nodeType":"ElementaryTypeName","src":"21647:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21646:14:56"},"returnParameters":{"id":17170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17169,"mutability":"mutable","name":"downcasted","nameLocation":"21691:10:56","nodeType":"VariableDeclaration","scope":17186,"src":"21684:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":17168,"name":"int192","nodeType":"ElementaryTypeName","src":"21684:6:56","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21683:19:56"},"scope":17744,"src":"21629:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17208,"nodeType":"Block","src":"22262:124:56","statements":[{"expression":{"id":17199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17194,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17192,"src":"22272:10:56","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17197,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"22292:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22285:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":17195,"name":"int184","nodeType":"ElementaryTypeName","src":"22285:6:56","typeDescriptions":{}}},"id":17198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22285:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22272:26:56","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":17200,"nodeType":"ExpressionStatement","src":"22272:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17202,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17192,"src":"22316:10:56","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17189,"src":"22330:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22316:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203138342062697473","id":17205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22337:41:56","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":17201,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22308:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22308:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17207,"nodeType":"ExpressionStatement","src":"22308:71:56"}]},"documentation":{"id":17187,"nodeType":"StructuredDocumentation","src":"21833:350:56","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":17209,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22197:8:56","nodeType":"FunctionDefinition","parameters":{"id":17190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17189,"mutability":"mutable","name":"value","nameLocation":"22213:5:56","nodeType":"VariableDeclaration","scope":17209,"src":"22206:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17188,"name":"int256","nodeType":"ElementaryTypeName","src":"22206:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22205:14:56"},"returnParameters":{"id":17193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17192,"mutability":"mutable","name":"downcasted","nameLocation":"22250:10:56","nodeType":"VariableDeclaration","scope":17209,"src":"22243:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":17191,"name":"int184","nodeType":"ElementaryTypeName","src":"22243:6:56","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22242:19:56"},"scope":17744,"src":"22188:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17231,"nodeType":"Block","src":"22821:124:56","statements":[{"expression":{"id":17222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17217,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"22831:10:56","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17220,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"22851:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22844:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":17218,"name":"int176","nodeType":"ElementaryTypeName","src":"22844:6:56","typeDescriptions":{}}},"id":17221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22844:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22831:26:56","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":17223,"nodeType":"ExpressionStatement","src":"22831:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17225,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17215,"src":"22875:10:56","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"22889:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22875:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203137362062697473","id":17228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22896:41:56","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":17224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"22867:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22867:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17230,"nodeType":"ExpressionStatement","src":"22867:71:56"}]},"documentation":{"id":17210,"nodeType":"StructuredDocumentation","src":"22392:350:56","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":17232,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22756:8:56","nodeType":"FunctionDefinition","parameters":{"id":17213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17212,"mutability":"mutable","name":"value","nameLocation":"22772:5:56","nodeType":"VariableDeclaration","scope":17232,"src":"22765:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17211,"name":"int256","nodeType":"ElementaryTypeName","src":"22765:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22764:14:56"},"returnParameters":{"id":17216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17215,"mutability":"mutable","name":"downcasted","nameLocation":"22809:10:56","nodeType":"VariableDeclaration","scope":17232,"src":"22802:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":17214,"name":"int176","nodeType":"ElementaryTypeName","src":"22802:6:56","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22801:19:56"},"scope":17744,"src":"22747:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17254,"nodeType":"Block","src":"23380:124:56","statements":[{"expression":{"id":17245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17240,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17238,"src":"23390:10:56","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17243,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17235,"src":"23410:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23403:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":17241,"name":"int168","nodeType":"ElementaryTypeName","src":"23403:6:56","typeDescriptions":{}}},"id":17244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23403:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23390:26:56","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":17246,"nodeType":"ExpressionStatement","src":"23390:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17248,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17238,"src":"23434:10:56","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17235,"src":"23448:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23434:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136382062697473","id":17251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23455:41:56","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":17247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23426:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23426:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17253,"nodeType":"ExpressionStatement","src":"23426:71:56"}]},"documentation":{"id":17233,"nodeType":"StructuredDocumentation","src":"22951:350:56","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":17255,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23315:8:56","nodeType":"FunctionDefinition","parameters":{"id":17236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17235,"mutability":"mutable","name":"value","nameLocation":"23331:5:56","nodeType":"VariableDeclaration","scope":17255,"src":"23324:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17234,"name":"int256","nodeType":"ElementaryTypeName","src":"23324:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23323:14:56"},"returnParameters":{"id":17239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17238,"mutability":"mutable","name":"downcasted","nameLocation":"23368:10:56","nodeType":"VariableDeclaration","scope":17255,"src":"23361:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":17237,"name":"int168","nodeType":"ElementaryTypeName","src":"23361:6:56","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23360:19:56"},"scope":17744,"src":"23306:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17277,"nodeType":"Block","src":"23939:124:56","statements":[{"expression":{"id":17268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17263,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17261,"src":"23949:10:56","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17266,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"23969:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23962:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":17264,"name":"int160","nodeType":"ElementaryTypeName","src":"23962:6:56","typeDescriptions":{}}},"id":17267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23962:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23949:26:56","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":17269,"nodeType":"ExpressionStatement","src":"23949:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17271,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17261,"src":"23993:10:56","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17272,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"24007:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23993:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203136302062697473","id":17274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24014:41:56","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":17270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"23985:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23985:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17276,"nodeType":"ExpressionStatement","src":"23985:71:56"}]},"documentation":{"id":17256,"nodeType":"StructuredDocumentation","src":"23510:350:56","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":17278,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23874:8:56","nodeType":"FunctionDefinition","parameters":{"id":17259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17258,"mutability":"mutable","name":"value","nameLocation":"23890:5:56","nodeType":"VariableDeclaration","scope":17278,"src":"23883:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17257,"name":"int256","nodeType":"ElementaryTypeName","src":"23883:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23882:14:56"},"returnParameters":{"id":17262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17261,"mutability":"mutable","name":"downcasted","nameLocation":"23927:10:56","nodeType":"VariableDeclaration","scope":17278,"src":"23920:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":17260,"name":"int160","nodeType":"ElementaryTypeName","src":"23920:6:56","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23919:19:56"},"scope":17744,"src":"23865:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17300,"nodeType":"Block","src":"24498:124:56","statements":[{"expression":{"id":17291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17286,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"24508:10:56","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17281,"src":"24528:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24521:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":17287,"name":"int152","nodeType":"ElementaryTypeName","src":"24521:6:56","typeDescriptions":{}}},"id":17290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24521:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24508:26:56","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":17292,"nodeType":"ExpressionStatement","src":"24508:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17294,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17284,"src":"24552:10:56","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17295,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17281,"src":"24566:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24552:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203135322062697473","id":17297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24573:41:56","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":17293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"24544:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24544:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17299,"nodeType":"ExpressionStatement","src":"24544:71:56"}]},"documentation":{"id":17279,"nodeType":"StructuredDocumentation","src":"24069:350:56","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":17301,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24433:8:56","nodeType":"FunctionDefinition","parameters":{"id":17282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17281,"mutability":"mutable","name":"value","nameLocation":"24449:5:56","nodeType":"VariableDeclaration","scope":17301,"src":"24442:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17280,"name":"int256","nodeType":"ElementaryTypeName","src":"24442:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24441:14:56"},"returnParameters":{"id":17285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17284,"mutability":"mutable","name":"downcasted","nameLocation":"24486:10:56","nodeType":"VariableDeclaration","scope":17301,"src":"24479:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":17283,"name":"int152","nodeType":"ElementaryTypeName","src":"24479:6:56","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24478:19:56"},"scope":17744,"src":"24424:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17323,"nodeType":"Block","src":"25057:124:56","statements":[{"expression":{"id":17314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17309,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17307,"src":"25067:10:56","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17312,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17304,"src":"25087:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25080:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":17310,"name":"int144","nodeType":"ElementaryTypeName","src":"25080:6:56","typeDescriptions":{}}},"id":17313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25080:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"25067:26:56","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":17315,"nodeType":"ExpressionStatement","src":"25067:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17317,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17307,"src":"25111:10:56","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17304,"src":"25125:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25111:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203134342062697473","id":17320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25132:41:56","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":17316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25103:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25103:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17322,"nodeType":"ExpressionStatement","src":"25103:71:56"}]},"documentation":{"id":17302,"nodeType":"StructuredDocumentation","src":"24628:350:56","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":17324,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24992:8:56","nodeType":"FunctionDefinition","parameters":{"id":17305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17304,"mutability":"mutable","name":"value","nameLocation":"25008:5:56","nodeType":"VariableDeclaration","scope":17324,"src":"25001:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17303,"name":"int256","nodeType":"ElementaryTypeName","src":"25001:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25000:14:56"},"returnParameters":{"id":17308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17307,"mutability":"mutable","name":"downcasted","nameLocation":"25045:10:56","nodeType":"VariableDeclaration","scope":17324,"src":"25038:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":17306,"name":"int144","nodeType":"ElementaryTypeName","src":"25038:6:56","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"25037:19:56"},"scope":17744,"src":"24983:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17346,"nodeType":"Block","src":"25616:124:56","statements":[{"expression":{"id":17337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17332,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"25626:10:56","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17335,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"25646:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25639:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":17333,"name":"int136","nodeType":"ElementaryTypeName","src":"25639:6:56","typeDescriptions":{}}},"id":17336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25639:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25626:26:56","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":17338,"nodeType":"ExpressionStatement","src":"25626:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17340,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"25670:10:56","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17341,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"25684:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25670:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203133362062697473","id":17343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25691:41:56","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":17339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"25662:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25662:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17345,"nodeType":"ExpressionStatement","src":"25662:71:56"}]},"documentation":{"id":17325,"nodeType":"StructuredDocumentation","src":"25187:350:56","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":17347,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25551:8:56","nodeType":"FunctionDefinition","parameters":{"id":17328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17327,"mutability":"mutable","name":"value","nameLocation":"25567:5:56","nodeType":"VariableDeclaration","scope":17347,"src":"25560:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17326,"name":"int256","nodeType":"ElementaryTypeName","src":"25560:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25559:14:56"},"returnParameters":{"id":17331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17330,"mutability":"mutable","name":"downcasted","nameLocation":"25604:10:56","nodeType":"VariableDeclaration","scope":17347,"src":"25597:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":17329,"name":"int136","nodeType":"ElementaryTypeName","src":"25597:6:56","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25596:19:56"},"scope":17744,"src":"25542:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17369,"nodeType":"Block","src":"26175:124:56","statements":[{"expression":{"id":17360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17355,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17353,"src":"26185:10:56","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"26205:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26198:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":17356,"name":"int128","nodeType":"ElementaryTypeName","src":"26198:6:56","typeDescriptions":{}}},"id":17359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26198:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"26185:26:56","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17361,"nodeType":"ExpressionStatement","src":"26185:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17363,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17353,"src":"26229:10:56","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17364,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"26243:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26229:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473","id":17366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26250:41:56","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":17362,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26221:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26221:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17368,"nodeType":"ExpressionStatement","src":"26221:71:56"}]},"documentation":{"id":17348,"nodeType":"StructuredDocumentation","src":"25746:350:56","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":17370,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"26110:8:56","nodeType":"FunctionDefinition","parameters":{"id":17351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17350,"mutability":"mutable","name":"value","nameLocation":"26126:5:56","nodeType":"VariableDeclaration","scope":17370,"src":"26119:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17349,"name":"int256","nodeType":"ElementaryTypeName","src":"26119:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26118:14:56"},"returnParameters":{"id":17354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17353,"mutability":"mutable","name":"downcasted","nameLocation":"26163:10:56","nodeType":"VariableDeclaration","scope":17370,"src":"26156:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17352,"name":"int128","nodeType":"ElementaryTypeName","src":"26156:6:56","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"26155:19:56"},"scope":17744,"src":"26101:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17392,"nodeType":"Block","src":"26734:124:56","statements":[{"expression":{"id":17383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17378,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17376,"src":"26744:10:56","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17373,"src":"26764:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26757:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":17379,"name":"int120","nodeType":"ElementaryTypeName","src":"26757:6:56","typeDescriptions":{}}},"id":17382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26757:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26744:26:56","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":17384,"nodeType":"ExpressionStatement","src":"26744:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17386,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17376,"src":"26788:10:56","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17387,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17373,"src":"26802:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26788:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203132302062697473","id":17389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26809:41:56","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":17385,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"26780:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26780:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17391,"nodeType":"ExpressionStatement","src":"26780:71:56"}]},"documentation":{"id":17371,"nodeType":"StructuredDocumentation","src":"26305:350:56","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":17393,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26669:8:56","nodeType":"FunctionDefinition","parameters":{"id":17374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17373,"mutability":"mutable","name":"value","nameLocation":"26685:5:56","nodeType":"VariableDeclaration","scope":17393,"src":"26678:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17372,"name":"int256","nodeType":"ElementaryTypeName","src":"26678:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26677:14:56"},"returnParameters":{"id":17377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17376,"mutability":"mutable","name":"downcasted","nameLocation":"26722:10:56","nodeType":"VariableDeclaration","scope":17393,"src":"26715:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":17375,"name":"int120","nodeType":"ElementaryTypeName","src":"26715:6:56","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26714:19:56"},"scope":17744,"src":"26660:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17415,"nodeType":"Block","src":"27293:124:56","statements":[{"expression":{"id":17406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17401,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17399,"src":"27303:10:56","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17396,"src":"27323:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27316:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":17402,"name":"int112","nodeType":"ElementaryTypeName","src":"27316:6:56","typeDescriptions":{}}},"id":17405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27316:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27303:26:56","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":17407,"nodeType":"ExpressionStatement","src":"27303:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17409,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17399,"src":"27347:10:56","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17410,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17396,"src":"27361:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27347:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203131322062697473","id":17412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27368:41:56","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":17408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27339:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27339:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17414,"nodeType":"ExpressionStatement","src":"27339:71:56"}]},"documentation":{"id":17394,"nodeType":"StructuredDocumentation","src":"26864:350:56","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":17416,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"27228:8:56","nodeType":"FunctionDefinition","parameters":{"id":17397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17396,"mutability":"mutable","name":"value","nameLocation":"27244:5:56","nodeType":"VariableDeclaration","scope":17416,"src":"27237:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17395,"name":"int256","nodeType":"ElementaryTypeName","src":"27237:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27236:14:56"},"returnParameters":{"id":17400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17399,"mutability":"mutable","name":"downcasted","nameLocation":"27281:10:56","nodeType":"VariableDeclaration","scope":17416,"src":"27274:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":17398,"name":"int112","nodeType":"ElementaryTypeName","src":"27274:6:56","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27273:19:56"},"scope":17744,"src":"27219:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17438,"nodeType":"Block","src":"27852:124:56","statements":[{"expression":{"id":17429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17424,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"27862:10:56","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17427,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"27882:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27875:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":17425,"name":"int104","nodeType":"ElementaryTypeName","src":"27875:6:56","typeDescriptions":{}}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27875:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27862:26:56","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":17430,"nodeType":"ExpressionStatement","src":"27862:26:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17432,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"27906:10:56","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17419,"src":"27920:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27906:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e203130342062697473","id":17435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27927:41:56","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":17431,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"27898:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27898:71:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17437,"nodeType":"ExpressionStatement","src":"27898:71:56"}]},"documentation":{"id":17417,"nodeType":"StructuredDocumentation","src":"27423:350:56","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":17439,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27787:8:56","nodeType":"FunctionDefinition","parameters":{"id":17420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17419,"mutability":"mutable","name":"value","nameLocation":"27803:5:56","nodeType":"VariableDeclaration","scope":17439,"src":"27796:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17418,"name":"int256","nodeType":"ElementaryTypeName","src":"27796:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27795:14:56"},"returnParameters":{"id":17423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17422,"mutability":"mutable","name":"downcasted","nameLocation":"27840:10:56","nodeType":"VariableDeclaration","scope":17439,"src":"27833:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":17421,"name":"int104","nodeType":"ElementaryTypeName","src":"27833:6:56","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27832:19:56"},"scope":17744,"src":"27778:198:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17461,"nodeType":"Block","src":"28404:122:56","statements":[{"expression":{"id":17452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17447,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17445,"src":"28414:10:56","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17450,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17442,"src":"28433:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28427:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":17448,"name":"int96","nodeType":"ElementaryTypeName","src":"28427:5:56","typeDescriptions":{}}},"id":17451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28427:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28414:25:56","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":17453,"nodeType":"ExpressionStatement","src":"28414:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17455,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17445,"src":"28457:10:56","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17456,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17442,"src":"28471:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28457:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2039362062697473","id":17458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28478:40:56","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":17454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28449:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28449:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17460,"nodeType":"ExpressionStatement","src":"28449:70:56"}]},"documentation":{"id":17440,"nodeType":"StructuredDocumentation","src":"27982:345:56","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":17462,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28341:7:56","nodeType":"FunctionDefinition","parameters":{"id":17443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17442,"mutability":"mutable","name":"value","nameLocation":"28356:5:56","nodeType":"VariableDeclaration","scope":17462,"src":"28349:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17441,"name":"int256","nodeType":"ElementaryTypeName","src":"28349:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28348:14:56"},"returnParameters":{"id":17446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17445,"mutability":"mutable","name":"downcasted","nameLocation":"28392:10:56","nodeType":"VariableDeclaration","scope":17462,"src":"28386:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":17444,"name":"int96","nodeType":"ElementaryTypeName","src":"28386:5:56","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28385:18:56"},"scope":17744,"src":"28332:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17484,"nodeType":"Block","src":"28954:122:56","statements":[{"expression":{"id":17475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17470,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"28964:10:56","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17473,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17465,"src":"28983:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28977:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":17471,"name":"int88","nodeType":"ElementaryTypeName","src":"28977:5:56","typeDescriptions":{}}},"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28977:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28964:25:56","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":17476,"nodeType":"ExpressionStatement","src":"28964:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17478,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"29007:10:56","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17465,"src":"29021:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29007:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038382062697473","id":17481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29028:40:56","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":17477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28999:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28999:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17483,"nodeType":"ExpressionStatement","src":"28999:70:56"}]},"documentation":{"id":17463,"nodeType":"StructuredDocumentation","src":"28532:345:56","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":17485,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28891:7:56","nodeType":"FunctionDefinition","parameters":{"id":17466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17465,"mutability":"mutable","name":"value","nameLocation":"28906:5:56","nodeType":"VariableDeclaration","scope":17485,"src":"28899:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17464,"name":"int256","nodeType":"ElementaryTypeName","src":"28899:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28898:14:56"},"returnParameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"downcasted","nameLocation":"28942:10:56","nodeType":"VariableDeclaration","scope":17485,"src":"28936:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":17467,"name":"int88","nodeType":"ElementaryTypeName","src":"28936:5:56","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28935:18:56"},"scope":17744,"src":"28882:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17507,"nodeType":"Block","src":"29504:122:56","statements":[{"expression":{"id":17498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17493,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17491,"src":"29514:10:56","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17488,"src":"29533:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29527:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":17494,"name":"int80","nodeType":"ElementaryTypeName","src":"29527:5:56","typeDescriptions":{}}},"id":17497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29527:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29514:25:56","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":17499,"nodeType":"ExpressionStatement","src":"29514:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17501,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17491,"src":"29557:10:56","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17488,"src":"29571:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29557:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2038302062697473","id":17504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29578:40:56","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":17500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29549:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"29549:70:56"}]},"documentation":{"id":17486,"nodeType":"StructuredDocumentation","src":"29082:345:56","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":17508,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29441:7:56","nodeType":"FunctionDefinition","parameters":{"id":17489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17488,"mutability":"mutable","name":"value","nameLocation":"29456:5:56","nodeType":"VariableDeclaration","scope":17508,"src":"29449:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17487,"name":"int256","nodeType":"ElementaryTypeName","src":"29449:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29448:14:56"},"returnParameters":{"id":17492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17491,"mutability":"mutable","name":"downcasted","nameLocation":"29492:10:56","nodeType":"VariableDeclaration","scope":17508,"src":"29486:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":17490,"name":"int80","nodeType":"ElementaryTypeName","src":"29486:5:56","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29485:18:56"},"scope":17744,"src":"29432:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17530,"nodeType":"Block","src":"30054:122:56","statements":[{"expression":{"id":17521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17516,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17514,"src":"30064:10:56","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17519,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17511,"src":"30083:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30077:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":17517,"name":"int72","nodeType":"ElementaryTypeName","src":"30077:5:56","typeDescriptions":{}}},"id":17520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30077:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"30064:25:56","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":17522,"nodeType":"ExpressionStatement","src":"30064:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17524,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17514,"src":"30107:10:56","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17525,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17511,"src":"30121:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30107:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2037322062697473","id":17527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30128:40:56","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":17523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30099:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30099:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17529,"nodeType":"ExpressionStatement","src":"30099:70:56"}]},"documentation":{"id":17509,"nodeType":"StructuredDocumentation","src":"29632:345:56","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":17531,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29991:7:56","nodeType":"FunctionDefinition","parameters":{"id":17512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17511,"mutability":"mutable","name":"value","nameLocation":"30006:5:56","nodeType":"VariableDeclaration","scope":17531,"src":"29999:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17510,"name":"int256","nodeType":"ElementaryTypeName","src":"29999:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29998:14:56"},"returnParameters":{"id":17515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17514,"mutability":"mutable","name":"downcasted","nameLocation":"30042:10:56","nodeType":"VariableDeclaration","scope":17531,"src":"30036:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":17513,"name":"int72","nodeType":"ElementaryTypeName","src":"30036:5:56","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"30035:18:56"},"scope":17744,"src":"29982:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17553,"nodeType":"Block","src":"30604:122:56","statements":[{"expression":{"id":17544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17539,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17537,"src":"30614:10:56","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17534,"src":"30633:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30627:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":17540,"name":"int64","nodeType":"ElementaryTypeName","src":"30627:5:56","typeDescriptions":{}}},"id":17543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30627:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30614:25:56","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":17545,"nodeType":"ExpressionStatement","src":"30614:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17547,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17537,"src":"30657:10:56","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17534,"src":"30671:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30657:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036342062697473","id":17550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30678:40:56","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":17546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30649:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30649:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17552,"nodeType":"ExpressionStatement","src":"30649:70:56"}]},"documentation":{"id":17532,"nodeType":"StructuredDocumentation","src":"30182:345:56","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":17554,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30541:7:56","nodeType":"FunctionDefinition","parameters":{"id":17535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17534,"mutability":"mutable","name":"value","nameLocation":"30556:5:56","nodeType":"VariableDeclaration","scope":17554,"src":"30549:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17533,"name":"int256","nodeType":"ElementaryTypeName","src":"30549:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30548:14:56"},"returnParameters":{"id":17538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17537,"mutability":"mutable","name":"downcasted","nameLocation":"30592:10:56","nodeType":"VariableDeclaration","scope":17554,"src":"30586:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":17536,"name":"int64","nodeType":"ElementaryTypeName","src":"30586:5:56","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30585:18:56"},"scope":17744,"src":"30532:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17576,"nodeType":"Block","src":"31154:122:56","statements":[{"expression":{"id":17567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17562,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17560,"src":"31164:10:56","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17557,"src":"31183:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31177:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":17563,"name":"int56","nodeType":"ElementaryTypeName","src":"31177:5:56","typeDescriptions":{}}},"id":17566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31177:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"31164:25:56","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":17568,"nodeType":"ExpressionStatement","src":"31164:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17570,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17560,"src":"31207:10:56","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17571,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17557,"src":"31221:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31207:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2035362062697473","id":17573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31228:40:56","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":17569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31199:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31199:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17575,"nodeType":"ExpressionStatement","src":"31199:70:56"}]},"documentation":{"id":17555,"nodeType":"StructuredDocumentation","src":"30732:345:56","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":17577,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"31091:7:56","nodeType":"FunctionDefinition","parameters":{"id":17558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17557,"mutability":"mutable","name":"value","nameLocation":"31106:5:56","nodeType":"VariableDeclaration","scope":17577,"src":"31099:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17556,"name":"int256","nodeType":"ElementaryTypeName","src":"31099:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31098:14:56"},"returnParameters":{"id":17561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17560,"mutability":"mutable","name":"downcasted","nameLocation":"31142:10:56","nodeType":"VariableDeclaration","scope":17577,"src":"31136:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":17559,"name":"int56","nodeType":"ElementaryTypeName","src":"31136:5:56","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"31135:18:56"},"scope":17744,"src":"31082:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17599,"nodeType":"Block","src":"31704:122:56","statements":[{"expression":{"id":17590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17585,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17583,"src":"31714:10:56","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17580,"src":"31733:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31727:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":17586,"name":"int48","nodeType":"ElementaryTypeName","src":"31727:5:56","typeDescriptions":{}}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31727:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31714:25:56","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":17591,"nodeType":"ExpressionStatement","src":"31714:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17593,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17583,"src":"31757:10:56","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17594,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17580,"src":"31771:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31757:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034382062697473","id":17596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31778:40:56","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":17592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"31749:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31749:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17598,"nodeType":"ExpressionStatement","src":"31749:70:56"}]},"documentation":{"id":17578,"nodeType":"StructuredDocumentation","src":"31282:345:56","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":17600,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31641:7:56","nodeType":"FunctionDefinition","parameters":{"id":17581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17580,"mutability":"mutable","name":"value","nameLocation":"31656:5:56","nodeType":"VariableDeclaration","scope":17600,"src":"31649:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17579,"name":"int256","nodeType":"ElementaryTypeName","src":"31649:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31648:14:56"},"returnParameters":{"id":17584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17583,"mutability":"mutable","name":"downcasted","nameLocation":"31692:10:56","nodeType":"VariableDeclaration","scope":17600,"src":"31686:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":17582,"name":"int48","nodeType":"ElementaryTypeName","src":"31686:5:56","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31685:18:56"},"scope":17744,"src":"31632:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17622,"nodeType":"Block","src":"32254:122:56","statements":[{"expression":{"id":17613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17608,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17606,"src":"32264:10:56","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17603,"src":"32283:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32277:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":17609,"name":"int40","nodeType":"ElementaryTypeName","src":"32277:5:56","typeDescriptions":{}}},"id":17612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32277:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"32264:25:56","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":17614,"nodeType":"ExpressionStatement","src":"32264:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17616,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17606,"src":"32307:10:56","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17603,"src":"32321:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32307:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2034302062697473","id":17619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32328:40:56","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":17615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32299:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32299:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17621,"nodeType":"ExpressionStatement","src":"32299:70:56"}]},"documentation":{"id":17601,"nodeType":"StructuredDocumentation","src":"31832:345:56","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":17623,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"32191:7:56","nodeType":"FunctionDefinition","parameters":{"id":17604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17603,"mutability":"mutable","name":"value","nameLocation":"32206:5:56","nodeType":"VariableDeclaration","scope":17623,"src":"32199:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17602,"name":"int256","nodeType":"ElementaryTypeName","src":"32199:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32198:14:56"},"returnParameters":{"id":17607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17606,"mutability":"mutable","name":"downcasted","nameLocation":"32242:10:56","nodeType":"VariableDeclaration","scope":17623,"src":"32236:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":17605,"name":"int40","nodeType":"ElementaryTypeName","src":"32236:5:56","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"32235:18:56"},"scope":17744,"src":"32182:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17645,"nodeType":"Block","src":"32804:122:56","statements":[{"expression":{"id":17636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17631,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17629,"src":"32814:10:56","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17634,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"32833:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32827:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":17632,"name":"int32","nodeType":"ElementaryTypeName","src":"32827:5:56","typeDescriptions":{}}},"id":17635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32827:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32814:25:56","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":17637,"nodeType":"ExpressionStatement","src":"32814:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17639,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17629,"src":"32857:10:56","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"32871:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32857:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033322062697473","id":17642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32878:40:56","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":17638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"32849:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32849:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17644,"nodeType":"ExpressionStatement","src":"32849:70:56"}]},"documentation":{"id":17624,"nodeType":"StructuredDocumentation","src":"32382:345:56","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":17646,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32741:7:56","nodeType":"FunctionDefinition","parameters":{"id":17627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17626,"mutability":"mutable","name":"value","nameLocation":"32756:5:56","nodeType":"VariableDeclaration","scope":17646,"src":"32749:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17625,"name":"int256","nodeType":"ElementaryTypeName","src":"32749:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32748:14:56"},"returnParameters":{"id":17630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17629,"mutability":"mutable","name":"downcasted","nameLocation":"32792:10:56","nodeType":"VariableDeclaration","scope":17646,"src":"32786:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":17628,"name":"int32","nodeType":"ElementaryTypeName","src":"32786:5:56","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32785:18:56"},"scope":17744,"src":"32732:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17668,"nodeType":"Block","src":"33354:122:56","statements":[{"expression":{"id":17659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17654,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"33364:10:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17657,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"33383:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33377:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":17655,"name":"int24","nodeType":"ElementaryTypeName","src":"33377:5:56","typeDescriptions":{}}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33377:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"33364:25:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":17660,"nodeType":"ExpressionStatement","src":"33364:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17662,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"33407:10:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17649,"src":"33421:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33407:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032342062697473","id":17665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33428:40:56","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":17661,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33399:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33399:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17667,"nodeType":"ExpressionStatement","src":"33399:70:56"}]},"documentation":{"id":17647,"nodeType":"StructuredDocumentation","src":"32932:345:56","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":17669,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"33291:7:56","nodeType":"FunctionDefinition","parameters":{"id":17650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17649,"mutability":"mutable","name":"value","nameLocation":"33306:5:56","nodeType":"VariableDeclaration","scope":17669,"src":"33299:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17648,"name":"int256","nodeType":"ElementaryTypeName","src":"33299:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33298:14:56"},"returnParameters":{"id":17653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17652,"mutability":"mutable","name":"downcasted","nameLocation":"33342:10:56","nodeType":"VariableDeclaration","scope":17669,"src":"33336:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":17651,"name":"int24","nodeType":"ElementaryTypeName","src":"33336:5:56","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"33335:18:56"},"scope":17744,"src":"33282:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17691,"nodeType":"Block","src":"33904:122:56","statements":[{"expression":{"id":17682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17677,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17675,"src":"33914:10:56","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17680,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17672,"src":"33933:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33927:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":17678,"name":"int16","nodeType":"ElementaryTypeName","src":"33927:5:56","typeDescriptions":{}}},"id":17681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33927:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33914:25:56","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":17683,"nodeType":"ExpressionStatement","src":"33914:25:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17685,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17675,"src":"33957:10:56","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17672,"src":"33971:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33957:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473","id":17688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33978:40:56","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":17684,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"33949:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33949:70:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17690,"nodeType":"ExpressionStatement","src":"33949:70:56"}]},"documentation":{"id":17670,"nodeType":"StructuredDocumentation","src":"33482:345:56","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":17692,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33841:7:56","nodeType":"FunctionDefinition","parameters":{"id":17673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17672,"mutability":"mutable","name":"value","nameLocation":"33856:5:56","nodeType":"VariableDeclaration","scope":17692,"src":"33849:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17671,"name":"int256","nodeType":"ElementaryTypeName","src":"33849:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33848:14:56"},"returnParameters":{"id":17676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17675,"mutability":"mutable","name":"downcasted","nameLocation":"33892:10:56","nodeType":"VariableDeclaration","scope":17692,"src":"33886:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":17674,"name":"int16","nodeType":"ElementaryTypeName","src":"33886:5:56","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33885:18:56"},"scope":17744,"src":"33832:194:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17714,"nodeType":"Block","src":"34447:120:56","statements":[{"expression":{"id":17705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17700,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17698,"src":"34457:10:56","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17695,"src":"34475:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34470:4:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":17701,"name":"int8","nodeType":"ElementaryTypeName","src":"34470:4:56","typeDescriptions":{}}},"id":17704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34470:11:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34457:24:56","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":17706,"nodeType":"ExpressionStatement","src":"34457:24:56"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":17710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17708,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17698,"src":"34499:10:56","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":17709,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17695,"src":"34513:5:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34499:19:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20382062697473","id":17711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34520:39:56","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":17707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34491:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34491:69:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17713,"nodeType":"ExpressionStatement","src":"34491:69:56"}]},"documentation":{"id":17693,"nodeType":"StructuredDocumentation","src":"34032:340:56","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":17715,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"34386:6:56","nodeType":"FunctionDefinition","parameters":{"id":17696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17695,"mutability":"mutable","name":"value","nameLocation":"34400:5:56","nodeType":"VariableDeclaration","scope":17715,"src":"34393:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17694,"name":"int256","nodeType":"ElementaryTypeName","src":"34393:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34392:14:56"},"returnParameters":{"id":17699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17698,"mutability":"mutable","name":"downcasted","nameLocation":"34435:10:56","nodeType":"VariableDeclaration","scope":17715,"src":"34430:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":17697,"name":"int8","nodeType":"ElementaryTypeName","src":"34430:4:56","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34429:17:56"},"scope":17744,"src":"34377:190:56","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":17742,"nodeType":"Block","src":"34845:233:56","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17718,"src":"34962:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":17729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34984:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17728,"name":"int256","nodeType":"ElementaryTypeName","src":"34984:6:56","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":17727,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34979:4:56","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34979:12:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":17731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34992:3:56","memberName":"max","nodeType":"MemberAccess","src":"34979:16:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":17726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34971:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":17725,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:56","typeDescriptions":{}}},"id":17732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34971:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34962:34:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e20616e20696e74323536","id":17734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34998:42:56","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":17723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"34954:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34954:87:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17736,"nodeType":"ExpressionStatement","src":"34954:87:56"},{"expression":{"arguments":[{"id":17739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17718,"src":"35065:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35058:6:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17737,"name":"int256","nodeType":"ElementaryTypeName","src":"35058:6:56","typeDescriptions":{}}},"id":17740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35058:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":17722,"id":17741,"nodeType":"Return","src":"35051:20:56"}]},"documentation":{"id":17716,"nodeType":"StructuredDocumentation","src":"34573:203:56","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":17743,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34790:8:56","nodeType":"FunctionDefinition","parameters":{"id":17719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17718,"mutability":"mutable","name":"value","nameLocation":"34807:5:56","nodeType":"VariableDeclaration","scope":17743,"src":"34799:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17717,"name":"uint256","nodeType":"ElementaryTypeName","src":"34799:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34798:15:56"},"returnParameters":{"id":17722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17743,"src":"34837:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":17720,"name":"int256","nodeType":"ElementaryTypeName","src":"34837:6:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34836:8:56"},"scope":17744,"src":"34781:297:56","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":17745,"src":"927:34153:56","usedErrors":[]}],"src":"192:34889:56"},"id":56},"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol","exportedSymbols":{"DoubleEndedQueue":[18085],"SafeCast":[17744]},"id":18086,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":17746,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"117:23:57"},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../math/SafeCast.sol","id":17747,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18086,"sourceUnit":17745,"src":"142:30:57","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"DoubleEndedQueue","contractDependencies":[],"contractKind":"library","documentation":{"id":17748,"nodeType":"StructuredDocumentation","src":"174:660:57","text":" @dev A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of\n the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and\n FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that\n the existing queue contents are left in storage.\n The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be\n used in storage, and not in memory.\n ```\n DoubleEndedQueue.Bytes32Deque queue;\n ```\n _Available since v4.6._"},"fullyImplemented":true,"id":18085,"linearizedBaseContracts":[18085],"name":"DoubleEndedQueue","nameLocation":"843:16:57","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":17749,"nodeType":"StructuredDocumentation","src":"866:103:57","text":" @dev An operation (e.g. {front}) couldn't be completed due to the queue being empty."},"errorSelector":"3db2a12a","id":17751,"name":"Empty","nameLocation":"980:5:57","nodeType":"ErrorDefinition","parameters":{"id":17750,"nodeType":"ParameterList","parameters":[],"src":"985:2:57"},"src":"974:14:57"},{"documentation":{"id":17752,"nodeType":"StructuredDocumentation","src":"994:107:57","text":" @dev An operation (e.g. {at}) couldn't be completed due to an index being out of bounds."},"errorSelector":"b4120f14","id":17754,"name":"OutOfBounds","nameLocation":"1112:11:57","nodeType":"ErrorDefinition","parameters":{"id":17753,"nodeType":"ParameterList","parameters":[],"src":"1123:2:57"},"src":"1106:20:57"},{"canonicalName":"DoubleEndedQueue.Bytes32Deque","id":17763,"members":[{"constant":false,"id":17756,"mutability":"mutable","name":"_begin","nameLocation":"1937:6:57","nodeType":"VariableDeclaration","scope":17763,"src":"1930:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17755,"name":"int128","nodeType":"ElementaryTypeName","src":"1930:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":17758,"mutability":"mutable","name":"_end","nameLocation":"1960:4:57","nodeType":"VariableDeclaration","scope":17763,"src":"1953:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17757,"name":"int128","nodeType":"ElementaryTypeName","src":"1953:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":17762,"mutability":"mutable","name":"_data","nameLocation":"2001:5:57","nodeType":"VariableDeclaration","scope":17763,"src":"1974:32:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"},"typeName":{"id":17761,"keyType":{"id":17759,"name":"int128","nodeType":"ElementaryTypeName","src":"1982:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Mapping","src":"1974:26:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"},"valueType":{"id":17760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"}],"name":"Bytes32Deque","nameLocation":"1907:12:57","nodeType":"StructDefinition","scope":18085,"src":"1900:113:57","visibility":"public"},{"body":{"id":17794,"nodeType":"Block","src":"2158:156:57","statements":[{"assignments":[17773],"declarations":[{"constant":false,"id":17773,"mutability":"mutable","name":"backIndex","nameLocation":"2175:9:57","nodeType":"VariableDeclaration","scope":17794,"src":"2168:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17772,"name":"int128","nodeType":"ElementaryTypeName","src":"2168:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17776,"initialValue":{"expression":{"id":17774,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17767,"src":"2187:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2193:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"2187:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"2168:29:57"},{"expression":{"id":17783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17777,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17767,"src":"2207:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2213:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"2207:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17781,"indexExpression":{"id":17779,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17773,"src":"2219:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2207:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17769,"src":"2232:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2207:30:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17784,"nodeType":"ExpressionStatement","src":"2207:30:57"},{"id":17793,"nodeType":"UncheckedBlock","src":"2247:61:57","statements":[{"expression":{"id":17791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17785,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17767,"src":"2271:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17787,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2277:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"2271:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17788,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17773,"src":"2284:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":17789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2296:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2284:13:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2271:26:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17792,"nodeType":"ExpressionStatement","src":"2271:26:57"}]}]},"documentation":{"id":17764,"nodeType":"StructuredDocumentation","src":"2019:64:57","text":" @dev Inserts an item at the end of the queue."},"id":17795,"implemented":true,"kind":"function","modifiers":[],"name":"pushBack","nameLocation":"2097:8:57","nodeType":"FunctionDefinition","parameters":{"id":17770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17767,"mutability":"mutable","name":"deque","nameLocation":"2127:5:57","nodeType":"VariableDeclaration","scope":17795,"src":"2106:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17766,"nodeType":"UserDefinedTypeName","pathNode":{"id":17765,"name":"Bytes32Deque","nameLocations":["2106:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"2106:12:57"},"referencedDeclaration":17763,"src":"2106:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":17769,"mutability":"mutable","name":"value","nameLocation":"2142:5:57","nodeType":"VariableDeclaration","scope":17795,"src":"2134:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2134:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2105:43:57"},"returnParameters":{"id":17771,"nodeType":"ParameterList","parameters":[],"src":"2158:0:57"},"scope":18085,"src":"2088:226:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17841,"nodeType":"Block","src":"2541:256:57","statements":[{"condition":{"arguments":[{"id":17805,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"2561:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":17804,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"2555:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":17806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2555:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17810,"nodeType":"IfStatement","src":"2551:32:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17807,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"2576:5:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2576:7:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17809,"nodeType":"RevertStatement","src":"2569:14:57"}},{"assignments":[17812],"declarations":[{"constant":false,"id":17812,"mutability":"mutable","name":"backIndex","nameLocation":"2600:9:57","nodeType":"VariableDeclaration","scope":17841,"src":"2593:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17811,"name":"int128","nodeType":"ElementaryTypeName","src":"2593:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17813,"nodeType":"VariableDeclarationStatement","src":"2593:16:57"},{"id":17821,"nodeType":"UncheckedBlock","src":"2619:61:57","statements":[{"expression":{"id":17819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17814,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"2643:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17815,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"2655:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2661:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"2655:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2668:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2655:14:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2643:26:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17820,"nodeType":"ExpressionStatement","src":"2643:26:57"}]},{"expression":{"id":17827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17822,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17802,"src":"2689:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":17823,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"2697:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2703:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"2697:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17826,"indexExpression":{"id":17825,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"2709:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2697:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2689:30:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17828,"nodeType":"ExpressionStatement","src":"2689:30:57"},{"expression":{"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2729:29:57","subExpression":{"baseExpression":{"expression":{"id":17829,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"2736:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2742:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"2736:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17832,"indexExpression":{"id":17831,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"2748:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2736:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17834,"nodeType":"ExpressionStatement","src":"2729:29:57"},{"expression":{"id":17839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17835,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17799,"src":"2768:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2774:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"2768:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17838,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"2781:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"2768:22:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17840,"nodeType":"ExpressionStatement","src":"2768:22:57"}]},"documentation":{"id":17796,"nodeType":"StructuredDocumentation","src":"2320:138:57","text":" @dev Removes the item at the end of the queue and returns it.\n Reverts with `Empty` if the queue is empty."},"id":17842,"implemented":true,"kind":"function","modifiers":[],"name":"popBack","nameLocation":"2472:7:57","nodeType":"FunctionDefinition","parameters":{"id":17800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17799,"mutability":"mutable","name":"deque","nameLocation":"2501:5:57","nodeType":"VariableDeclaration","scope":17842,"src":"2480:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17798,"nodeType":"UserDefinedTypeName","pathNode":{"id":17797,"name":"Bytes32Deque","nameLocations":["2480:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"2480:12:57"},"referencedDeclaration":17763,"src":"2480:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"2479:28:57"},"returnParameters":{"id":17803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17802,"mutability":"mutable","name":"value","nameLocation":"2534:5:57","nodeType":"VariableDeclaration","scope":17842,"src":"2526:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2526:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2525:15:57"},"scope":18085,"src":"2463:334:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17876,"nodeType":"Block","src":"2949:183:57","statements":[{"assignments":[17852],"declarations":[{"constant":false,"id":17852,"mutability":"mutable","name":"frontIndex","nameLocation":"2966:10:57","nodeType":"VariableDeclaration","scope":17876,"src":"2959:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17851,"name":"int128","nodeType":"ElementaryTypeName","src":"2959:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17853,"nodeType":"VariableDeclarationStatement","src":"2959:17:57"},{"id":17861,"nodeType":"UncheckedBlock","src":"2986:64:57","statements":[{"expression":{"id":17859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17854,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"3010:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17855,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17846,"src":"3023:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3029:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"3023:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3023:16:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3010:29:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17860,"nodeType":"ExpressionStatement","src":"3010:29:57"}]},{"expression":{"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":17862,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17846,"src":"3059:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3065:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"3059:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17866,"indexExpression":{"id":17864,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"3071:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3059:23:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17867,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17848,"src":"3085:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3059:31:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17869,"nodeType":"ExpressionStatement","src":"3059:31:57"},{"expression":{"id":17874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17870,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17846,"src":"3100:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3106:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"3100:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17873,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"3115:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3100:25:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17875,"nodeType":"ExpressionStatement","src":"3100:25:57"}]},"documentation":{"id":17843,"nodeType":"StructuredDocumentation","src":"2803:70:57","text":" @dev Inserts an item at the beginning of the queue."},"id":17877,"implemented":true,"kind":"function","modifiers":[],"name":"pushFront","nameLocation":"2887:9:57","nodeType":"FunctionDefinition","parameters":{"id":17849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17846,"mutability":"mutable","name":"deque","nameLocation":"2918:5:57","nodeType":"VariableDeclaration","scope":17877,"src":"2897:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17845,"nodeType":"UserDefinedTypeName","pathNode":{"id":17844,"name":"Bytes32Deque","nameLocations":["2897:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"2897:12:57"},"referencedDeclaration":17763,"src":"2897:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":17848,"mutability":"mutable","name":"value","nameLocation":"2933:5:57","nodeType":"VariableDeclaration","scope":17877,"src":"2925:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2925:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2896:43:57"},"returnParameters":{"id":17850,"nodeType":"ParameterList","parameters":[],"src":"2949:0:57"},"scope":18085,"src":"2878:254:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17920,"nodeType":"Block","src":"3366:245:57","statements":[{"condition":{"arguments":[{"id":17887,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17881,"src":"3386:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":17886,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"3380:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":17888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3380:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17892,"nodeType":"IfStatement","src":"3376:32:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17889,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"3401:5:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3401:7:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17891,"nodeType":"RevertStatement","src":"3394:14:57"}},{"assignments":[17894],"declarations":[{"constant":false,"id":17894,"mutability":"mutable","name":"frontIndex","nameLocation":"3425:10:57","nodeType":"VariableDeclaration","scope":17920,"src":"3418:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17893,"name":"int128","nodeType":"ElementaryTypeName","src":"3418:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17897,"initialValue":{"expression":{"id":17895,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17881,"src":"3438:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3444:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"3438:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3418:32:57"},{"expression":{"id":17903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17898,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17884,"src":"3460:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"id":17899,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17881,"src":"3468:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3474:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"3468:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17902,"indexExpression":{"id":17901,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17894,"src":"3480:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3468:23:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3460:31:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17904,"nodeType":"ExpressionStatement","src":"3460:31:57"},{"expression":{"id":17909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3501:30:57","subExpression":{"baseExpression":{"expression":{"id":17905,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17881,"src":"3508:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3514:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"3508:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17908,"indexExpression":{"id":17907,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17894,"src":"3520:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3508:23:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17910,"nodeType":"ExpressionStatement","src":"3501:30:57"},{"id":17919,"nodeType":"UncheckedBlock","src":"3541:64:57","statements":[{"expression":{"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":17911,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17881,"src":"3565:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3571:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"3565:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17914,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17894,"src":"3580:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":17915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3593:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3580:14:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"3565:29:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17918,"nodeType":"ExpressionStatement","src":"3565:29:57"}]}]},"documentation":{"id":17878,"nodeType":"StructuredDocumentation","src":"3138:144:57","text":" @dev Removes the item at the beginning of the queue and returns it.\n Reverts with `Empty` if the queue is empty."},"id":17921,"implemented":true,"kind":"function","modifiers":[],"name":"popFront","nameLocation":"3296:8:57","nodeType":"FunctionDefinition","parameters":{"id":17882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17881,"mutability":"mutable","name":"deque","nameLocation":"3326:5:57","nodeType":"VariableDeclaration","scope":17921,"src":"3305:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17880,"nodeType":"UserDefinedTypeName","pathNode":{"id":17879,"name":"Bytes32Deque","nameLocations":["3305:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"3305:12:57"},"referencedDeclaration":17763,"src":"3305:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"3304:28:57"},"returnParameters":{"id":17885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17884,"mutability":"mutable","name":"value","nameLocation":"3359:5:57","nodeType":"VariableDeclaration","scope":17921,"src":"3351:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3351:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3350:15:57"},"scope":18085,"src":"3287:324:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17947,"nodeType":"Block","src":"3832:131:57","statements":[{"condition":{"arguments":[{"id":17931,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"3852:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":17930,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"3846:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":17932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17936,"nodeType":"IfStatement","src":"3842:32:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17933,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"3867:5:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:7:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17935,"nodeType":"RevertStatement","src":"3860:14:57"}},{"assignments":[17938],"declarations":[{"constant":false,"id":17938,"mutability":"mutable","name":"frontIndex","nameLocation":"3891:10:57","nodeType":"VariableDeclaration","scope":17947,"src":"3884:17:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17937,"name":"int128","nodeType":"ElementaryTypeName","src":"3884:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17941,"initialValue":{"expression":{"id":17939,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"3904:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3910:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"3904:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"3884:32:57"},{"expression":{"baseExpression":{"expression":{"id":17942,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"3933:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3939:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"3933:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17945,"indexExpression":{"id":17944,"name":"frontIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17938,"src":"3945:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3933:23:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17929,"id":17946,"nodeType":"Return","src":"3926:30:57"}]},"documentation":{"id":17922,"nodeType":"StructuredDocumentation","src":"3617:129:57","text":" @dev Returns the item at the beginning of the queue.\n Reverts with `Empty` if the queue is empty."},"id":17948,"implemented":true,"kind":"function","modifiers":[],"name":"front","nameLocation":"3760:5:57","nodeType":"FunctionDefinition","parameters":{"id":17926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17925,"mutability":"mutable","name":"deque","nameLocation":"3787:5:57","nodeType":"VariableDeclaration","scope":17948,"src":"3766:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17924,"nodeType":"UserDefinedTypeName","pathNode":{"id":17923,"name":"Bytes32Deque","nameLocations":["3766:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"3766:12:57"},"referencedDeclaration":17763,"src":"3766:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"3765:28:57"},"returnParameters":{"id":17929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17928,"mutability":"mutable","name":"value","nameLocation":"3825:5:57","nodeType":"VariableDeclaration","scope":17948,"src":"3817:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3817:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3816:15:57"},"scope":18085,"src":"3751:212:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17980,"nodeType":"Block","src":"4177:184:57","statements":[{"condition":{"arguments":[{"id":17958,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17952,"src":"4197:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}],"id":17957,"name":"empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"4191:5:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Deque_$17763_storage_ptr_$returns$_t_bool_$","typeString":"function (struct DoubleEndedQueue.Bytes32Deque storage pointer) view returns (bool)"}},"id":17959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:12:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17963,"nodeType":"IfStatement","src":"4187:32:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17960,"name":"Empty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17751,"src":"4212:5:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":17961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4212:7:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17962,"nodeType":"RevertStatement","src":"4205:14:57"}},{"assignments":[17965],"declarations":[{"constant":false,"id":17965,"mutability":"mutable","name":"backIndex","nameLocation":"4236:9:57","nodeType":"VariableDeclaration","scope":17980,"src":"4229:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17964,"name":"int128","nodeType":"ElementaryTypeName","src":"4229:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":17966,"nodeType":"VariableDeclarationStatement","src":"4229:16:57"},{"id":17974,"nodeType":"UncheckedBlock","src":"4255:61:57","statements":[{"expression":{"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17967,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17965,"src":"4279:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":17971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17968,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17952,"src":"4291:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4297:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"4291:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":17970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4304:1:57","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4291:14:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"4279:26:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":17973,"nodeType":"ExpressionStatement","src":"4279:26:57"}]},{"expression":{"baseExpression":{"expression":{"id":17975,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17952,"src":"4332:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4338:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"4332:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":17978,"indexExpression":{"id":17977,"name":"backIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17965,"src":"4344:9:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4332:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17956,"id":17979,"nodeType":"Return","src":"4325:29:57"}]},"documentation":{"id":17949,"nodeType":"StructuredDocumentation","src":"3969:123:57","text":" @dev Returns the item at the end of the queue.\n Reverts with `Empty` if the queue is empty."},"id":17981,"implemented":true,"kind":"function","modifiers":[],"name":"back","nameLocation":"4106:4:57","nodeType":"FunctionDefinition","parameters":{"id":17953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17952,"mutability":"mutable","name":"deque","nameLocation":"4132:5:57","nodeType":"VariableDeclaration","scope":17981,"src":"4111:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17951,"nodeType":"UserDefinedTypeName","pathNode":{"id":17950,"name":"Bytes32Deque","nameLocations":["4111:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"4111:12:57"},"referencedDeclaration":17763,"src":"4111:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"4110:28:57"},"returnParameters":{"id":17956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17955,"mutability":"mutable","name":"value","nameLocation":"4170:5:57","nodeType":"VariableDeclaration","scope":17981,"src":"4162:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:15:57"},"scope":18085,"src":"4097:264:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18021,"nodeType":"Block","src":"4691:231:57","statements":[{"assignments":[17993],"declarations":[{"constant":false,"id":17993,"mutability":"mutable","name":"idx","nameLocation":"4757:3:57","nodeType":"VariableDeclaration","scope":18021,"src":"4750:10:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":17992,"name":"int128","nodeType":"ElementaryTypeName","src":"4750:6:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"id":18007,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":17998,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17985,"src":"4788:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":17999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4794:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"4788:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":17997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4781:6:57","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":17996,"name":"int256","nodeType":"ElementaryTypeName","src":"4781:6:57","typeDescriptions":{}}},"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4781:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":18003,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17987,"src":"4822:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18001,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"4804:8:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":18002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4813:8:57","memberName":"toInt256","nodeType":"MemberAccess","referencedDeclaration":17743,"src":"4804:17:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_int256_$","typeString":"function (uint256) pure returns (int256)"}},"id":18004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4804:24:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4781:47:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":17994,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17744,"src":"4763:8:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$17744_$","typeString":"type(library SafeCast)"}},"id":17995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4772:8:57","memberName":"toInt128","nodeType":"MemberAccess","referencedDeclaration":17370,"src":"4763:17:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_int128_$","typeString":"function (int256) pure returns (int128)"}},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4763:66:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"VariableDeclarationStatement","src":"4750:79:57"},{"condition":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18008,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17993,"src":"4843:3:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":18009,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17985,"src":"4850:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4856:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"4850:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"4843:17:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18015,"nodeType":"IfStatement","src":"4839:43:57","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18012,"name":"OutOfBounds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17754,"src":"4869:11:57","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":18013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4869:13:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18014,"nodeType":"RevertStatement","src":"4862:20:57"}},{"expression":{"baseExpression":{"expression":{"id":18016,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17985,"src":"4899:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4905:5:57","memberName":"_data","nodeType":"MemberAccess","referencedDeclaration":17762,"src":"4899:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_int128_$_t_bytes32_$","typeString":"mapping(int128 => bytes32)"}},"id":18019,"indexExpression":{"id":18018,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17993,"src":"4911:3:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4899:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17991,"id":18020,"nodeType":"Return","src":"4892:23:57"}]},"documentation":{"id":17982,"nodeType":"StructuredDocumentation","src":"4367:226:57","text":" @dev Return the item at a position in the queue given by `index`, with the first item at 0 and last item at\n `length(deque) - 1`.\n Reverts with `OutOfBounds` if the index is out of bounds."},"id":18022,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"4607:2:57","nodeType":"FunctionDefinition","parameters":{"id":17988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17985,"mutability":"mutable","name":"deque","nameLocation":"4631:5:57","nodeType":"VariableDeclaration","scope":18022,"src":"4610:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":17984,"nodeType":"UserDefinedTypeName","pathNode":{"id":17983,"name":"Bytes32Deque","nameLocations":["4610:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"4610:12:57"},"referencedDeclaration":17763,"src":"4610:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"},{"constant":false,"id":17987,"mutability":"mutable","name":"index","nameLocation":"4646:5:57","nodeType":"VariableDeclaration","scope":18022,"src":"4638:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17986,"name":"uint256","nodeType":"ElementaryTypeName","src":"4638:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4609:43:57"},"returnParameters":{"id":17991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17990,"mutability":"mutable","name":"value","nameLocation":"4684:5:57","nodeType":"VariableDeclaration","scope":18022,"src":"4676:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4676:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4675:15:57"},"scope":18085,"src":"4598:324:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18041,"nodeType":"Block","src":"5211:57:57","statements":[{"expression":{"id":18033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18029,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18026,"src":"5221:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5227:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"5221:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":18032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5236:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5221:16:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":18034,"nodeType":"ExpressionStatement","src":"5221:16:57"},{"expression":{"id":18039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18035,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18026,"src":"5247:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5253:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"5247:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":18038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5260:1:57","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5247:14:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":18040,"nodeType":"ExpressionStatement","src":"5247:14:57"}]},"documentation":{"id":18023,"nodeType":"StructuredDocumentation","src":"4928:226:57","text":" @dev Resets the queue back to being empty.\n NOTE: The current items are left behind in storage. This does not affect the functioning of the queue, but misses\n out on potential gas refunds."},"id":18042,"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"5168:5:57","nodeType":"FunctionDefinition","parameters":{"id":18027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18026,"mutability":"mutable","name":"deque","nameLocation":"5195:5:57","nodeType":"VariableDeclaration","scope":18042,"src":"5174:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":18025,"nodeType":"UserDefinedTypeName","pathNode":{"id":18024,"name":"Bytes32Deque","nameLocations":["5174:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"5174:12:57"},"referencedDeclaration":17763,"src":"5174:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5173:28:57"},"returnParameters":{"id":18028,"nodeType":"ParameterList","parameters":[],"src":"5211:0:57"},"scope":18085,"src":"5159:109:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18067,"nodeType":"Block","src":"5420:287:57","statements":[{"id":18066,"nodeType":"UncheckedBlock","src":"5609:92:57","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":18055,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18046,"src":"5655:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5661:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"5655:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":18054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5648:6:57","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18053,"name":"int256","nodeType":"ElementaryTypeName","src":"5648:6:57","typeDescriptions":{}}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5648:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"expression":{"id":18060,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18046,"src":"5676:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5682:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"5676:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int128","typeString":"int128"}],"id":18059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5669:6:57","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":18058,"name":"int256","nodeType":"ElementaryTypeName","src":"5669:6:57","typeDescriptions":{}}},"id":18062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:20:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"5648:41:57","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5640:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18051,"name":"uint256","nodeType":"ElementaryTypeName","src":"5640:7:57","typeDescriptions":{}}},"id":18064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5640:50:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18050,"id":18065,"nodeType":"Return","src":"5633:57:57"}]}]},"documentation":{"id":18043,"nodeType":"StructuredDocumentation","src":"5274:65:57","text":" @dev Returns the number of items in the queue."},"id":18068,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"5353:6:57","nodeType":"FunctionDefinition","parameters":{"id":18047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18046,"mutability":"mutable","name":"deque","nameLocation":"5381:5:57","nodeType":"VariableDeclaration","scope":18068,"src":"5360:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":18045,"nodeType":"UserDefinedTypeName","pathNode":{"id":18044,"name":"Bytes32Deque","nameLocations":["5360:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"5360:12:57"},"referencedDeclaration":17763,"src":"5360:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5359:28:57"},"returnParameters":{"id":18050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18068,"src":"5411:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18048,"name":"uint256","nodeType":"ElementaryTypeName","src":"5411:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5410:9:57"},"scope":18085,"src":"5344:363:57","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18083,"nodeType":"Block","src":"5849:50:57","statements":[{"expression":{"commonType":{"typeIdentifier":"t_int128","typeString":"int128"},"id":18081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18077,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18072,"src":"5866:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5872:4:57","memberName":"_end","nodeType":"MemberAccess","referencedDeclaration":17758,"src":"5866:10:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18079,"name":"deque","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18072,"src":"5880:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque storage pointer"}},"id":18080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5886:6:57","memberName":"_begin","nodeType":"MemberAccess","referencedDeclaration":17756,"src":"5880:12:57","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"5866:26:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18076,"id":18082,"nodeType":"Return","src":"5859:33:57"}]},"documentation":{"id":18069,"nodeType":"StructuredDocumentation","src":"5713:59:57","text":" @dev Returns true if the queue is empty."},"id":18084,"implemented":true,"kind":"function","modifiers":[],"name":"empty","nameLocation":"5786:5:57","nodeType":"FunctionDefinition","parameters":{"id":18073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18072,"mutability":"mutable","name":"deque","nameLocation":"5813:5:57","nodeType":"VariableDeclaration","scope":18084,"src":"5792:26:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"},"typeName":{"id":18071,"nodeType":"UserDefinedTypeName","pathNode":{"id":18070,"name":"Bytes32Deque","nameLocations":["5792:12:57"],"nodeType":"IdentifierPath","referencedDeclaration":17763,"src":"5792:12:57"},"referencedDeclaration":17763,"src":"5792:12:57","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Deque_$17763_storage_ptr","typeString":"struct DoubleEndedQueue.Bytes32Deque"}},"visibility":"internal"}],"src":"5791:28:57"},"returnParameters":{"id":18076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18084,"src":"5843:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18074,"name":"bool","nodeType":"ElementaryTypeName","src":"5843:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5842:6:57"},"scope":18085,"src":"5777:122:57","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":18086,"src":"835:5066:57","usedErrors":[17751,17754]}],"src":"117:5785:57"},"id":57},"@openzeppelin/contracts/utils/structs/EnumerableMap.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","exportedSymbols":{"EnumerableMap":[19207],"EnumerableSet":[19820]},"id":19208,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18087,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:58"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"./EnumerableSet.sol","id":18088,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19208,"sourceUnit":19821,"src":"230:29:58","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableMap","contractDependencies":[],"contractKind":"library","documentation":{"id":18089,"nodeType":"StructuredDocumentation","src":"261:1359:58","text":" @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableMap for EnumerableMap.UintToAddressMap;\n     // Declare a set state variable\n     EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n The following map types are supported:\n - `uint256 -> address` (`UintToAddressMap`) since v3.0.0\n - `address -> uint256` (`AddressToUintMap`) since v4.6.0\n - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0\n - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0\n - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0\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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableMap.\n ===="},"fullyImplemented":true,"id":19207,"linearizedBaseContracts":[19207],"name":"EnumerableMap","nameLocation":"1629:13:58","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18093,"libraryName":{"id":18090,"name":"EnumerableSet","nameLocations":["1655:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":19820,"src":"1655:13:58"},"nodeType":"UsingForDirective","src":"1649:49:58","typeName":{"id":18092,"nodeType":"UserDefinedTypeName","pathNode":{"id":18091,"name":"EnumerableSet.Bytes32Set","nameLocations":["1673:13:58","1687:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"1673:24:58"},"referencedDeclaration":19412,"src":"1673:24:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"canonicalName":"EnumerableMap.Bytes32ToBytes32Map","id":18101,"members":[{"constant":false,"id":18096,"mutability":"mutable","name":"_keys","nameLocation":"2251:5:58","nodeType":"VariableDeclaration","scope":18101,"src":"2226:30:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":18095,"nodeType":"UserDefinedTypeName","pathNode":{"id":18094,"name":"EnumerableSet.Bytes32Set","nameLocations":["2226:13:58","2240:10:58"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"2226:24:58"},"referencedDeclaration":19412,"src":"2226:24:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":18100,"mutability":"mutable","name":"_values","nameLocation":"2294:7:58","nodeType":"VariableDeclaration","scope":18101,"src":"2266:35:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":18099,"keyType":{"id":18097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2274:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2266:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueType":{"id":18098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2285:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"}],"name":"Bytes32ToBytes32Map","nameLocation":"2169:19:58","nodeType":"StructDefinition","scope":19207,"src":"2162:146:58","visibility":"public"},{"body":{"id":18128,"nodeType":"Block","src":"2663:76:58","statements":[{"expression":{"id":18120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":18114,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"2673:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2677:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"2673:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18118,"indexExpression":{"id":18116,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2685:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2673:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18109,"src":"2692:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2673:24:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":18121,"nodeType":"ExpressionStatement","src":"2673:24:58"},{"expression":{"arguments":[{"id":18125,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2728:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":18122,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"2714:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2718:5:58","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"2714:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":18124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2724:3:58","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19430,"src":"2714:13:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$19412_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$19412_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":18126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2714:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18113,"id":18127,"nodeType":"Return","src":"2707:25:58"}]},"documentation":{"id":18102,"nodeType":"StructuredDocumentation","src":"2314:216:58","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":18129,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"2544:3:58","nodeType":"FunctionDefinition","parameters":{"id":18110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18105,"mutability":"mutable","name":"map","nameLocation":"2585:3:58","nodeType":"VariableDeclaration","scope":18129,"src":"2557:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18104,"nodeType":"UserDefinedTypeName","pathNode":{"id":18103,"name":"Bytes32ToBytes32Map","nameLocations":["2557:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"2557:19:58"},"referencedDeclaration":18101,"src":"2557:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18107,"mutability":"mutable","name":"key","nameLocation":"2606:3:58","nodeType":"VariableDeclaration","scope":18129,"src":"2598:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2598:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18109,"mutability":"mutable","name":"value","nameLocation":"2627:5:58","nodeType":"VariableDeclaration","scope":18129,"src":"2619:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2619:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2547:91:58"},"returnParameters":{"id":18113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18129,"src":"2657:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18111,"name":"bool","nodeType":"ElementaryTypeName","src":"2657:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2656:6:58"},"scope":19207,"src":"2535:204:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18152,"nodeType":"Block","src":"2993:78:58","statements":[{"expression":{"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3003:23:58","subExpression":{"baseExpression":{"expression":{"id":18140,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18133,"src":"3010:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3014:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"3010:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18143,"indexExpression":{"id":18142,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18135,"src":"3022:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3010:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18145,"nodeType":"ExpressionStatement","src":"3003:23:58"},{"expression":{"arguments":[{"id":18149,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18135,"src":"3060:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":18146,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18133,"src":"3043:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3047:5:58","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"3043:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":18148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3053:6:58","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19448,"src":"3043:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$19412_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$19412_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":18150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3043:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18139,"id":18151,"nodeType":"Return","src":"3036:28:58"}]},"documentation":{"id":18130,"nodeType":"StructuredDocumentation","src":"2745:157:58","text":" @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":18153,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"2916:6:58","nodeType":"FunctionDefinition","parameters":{"id":18136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18133,"mutability":"mutable","name":"map","nameLocation":"2951:3:58","nodeType":"VariableDeclaration","scope":18153,"src":"2923:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18132,"nodeType":"UserDefinedTypeName","pathNode":{"id":18131,"name":"Bytes32ToBytes32Map","nameLocations":["2923:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"2923:19:58"},"referencedDeclaration":18101,"src":"2923:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18135,"mutability":"mutable","name":"key","nameLocation":"2964:3:58","nodeType":"VariableDeclaration","scope":18153,"src":"2956:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2956:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2922:46:58"},"returnParameters":{"id":18139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18153,"src":"2987:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18137,"name":"bool","nodeType":"ElementaryTypeName","src":"2987:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2986:6:58"},"scope":19207,"src":"2907:164:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18170,"nodeType":"Block","src":"3243:47:58","statements":[{"expression":{"arguments":[{"id":18167,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18159,"src":"3279:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":18164,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18157,"src":"3260:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3264:5:58","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"3260:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":18166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3270:8:58","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19466,"src":"3260:18:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$19412_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes32Set_$19412_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3260:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18163,"id":18169,"nodeType":"Return","src":"3253:30:58"}]},"documentation":{"id":18154,"nodeType":"StructuredDocumentation","src":"3077:68:58","text":" @dev Returns true if the key is in the map. O(1)."},"id":18171,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"3159:8:58","nodeType":"FunctionDefinition","parameters":{"id":18160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18157,"mutability":"mutable","name":"map","nameLocation":"3196:3:58","nodeType":"VariableDeclaration","scope":18171,"src":"3168:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18156,"nodeType":"UserDefinedTypeName","pathNode":{"id":18155,"name":"Bytes32ToBytes32Map","nameLocations":["3168:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"3168:19:58"},"referencedDeclaration":18101,"src":"3168:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18159,"mutability":"mutable","name":"key","nameLocation":"3209:3:58","nodeType":"VariableDeclaration","scope":18171,"src":"3201:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3201:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3167:46:58"},"returnParameters":{"id":18163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18171,"src":"3237:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18161,"name":"bool","nodeType":"ElementaryTypeName","src":"3237:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3236:6:58"},"scope":19207,"src":"3150:140:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18185,"nodeType":"Block","src":"3461:42:58","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":18180,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18175,"src":"3478:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3482:5:58","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"3478:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":18182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3488:6:58","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19481,"src":"3478:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$19412_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Bytes32Set_$19412_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":18183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3478:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18179,"id":18184,"nodeType":"Return","src":"3471:25:58"}]},"documentation":{"id":18172,"nodeType":"StructuredDocumentation","src":"3296:79:58","text":" @dev Returns the number of key-value pairs in the map. O(1)."},"id":18186,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"3389:6:58","nodeType":"FunctionDefinition","parameters":{"id":18176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18175,"mutability":"mutable","name":"map","nameLocation":"3424:3:58","nodeType":"VariableDeclaration","scope":18186,"src":"3396:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18174,"nodeType":"UserDefinedTypeName","pathNode":{"id":18173,"name":"Bytes32ToBytes32Map","nameLocations":["3396:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"3396:19:58"},"referencedDeclaration":18101,"src":"3396:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"}],"src":"3395:33:58"},"returnParameters":{"id":18179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18186,"src":"3452:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18177,"name":"uint256","nodeType":"ElementaryTypeName","src":"3452:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3451:9:58"},"scope":19207,"src":"3380:123:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18214,"nodeType":"Block","src":"3957:90:58","statements":[{"assignments":[18200],"declarations":[{"constant":false,"id":18200,"mutability":"mutable","name":"key","nameLocation":"3975:3:58","nodeType":"VariableDeclaration","scope":18214,"src":"3967:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3967:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18206,"initialValue":{"arguments":[{"id":18204,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18192,"src":"3994:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":18201,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18190,"src":"3981:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3985:5:58","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"3981:9:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},"id":18203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3991:2:58","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19499,"src":"3981:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$19412_storage_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_struct$_Bytes32Set_$19412_storage_ptr_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":18205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3981:19:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3967:33:58"},{"expression":{"components":[{"id":18207,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"4018:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"expression":{"id":18208,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18190,"src":"4023:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4027:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"4023:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18211,"indexExpression":{"id":18210,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18200,"src":"4035:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4023:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4017:23:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"functionReturnParameters":18198,"id":18213,"nodeType":"Return","src":"4010:30:58"}]},"documentation":{"id":18187,"nodeType":"StructuredDocumentation","src":"3509:342:58","text":" @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":18215,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"3865:2:58","nodeType":"FunctionDefinition","parameters":{"id":18193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18190,"mutability":"mutable","name":"map","nameLocation":"3896:3:58","nodeType":"VariableDeclaration","scope":18215,"src":"3868:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18189,"nodeType":"UserDefinedTypeName","pathNode":{"id":18188,"name":"Bytes32ToBytes32Map","nameLocations":["3868:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"3868:19:58"},"referencedDeclaration":18101,"src":"3868:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18192,"mutability":"mutable","name":"index","nameLocation":"3909:5:58","nodeType":"VariableDeclaration","scope":18215,"src":"3901:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18191,"name":"uint256","nodeType":"ElementaryTypeName","src":"3901:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3867:48:58"},"returnParameters":{"id":18198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18215,"src":"3939:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3939:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18215,"src":"3948:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3948:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3938:18:58"},"scope":19207,"src":"3856:191:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18258,"nodeType":"Block","src":"4288:198:58","statements":[{"assignments":[18229],"declarations":[{"constant":false,"id":18229,"mutability":"mutable","name":"value","nameLocation":"4306:5:58","nodeType":"VariableDeclaration","scope":18258,"src":"4298:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4298:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18234,"initialValue":{"baseExpression":{"expression":{"id":18230,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18219,"src":"4314:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4318:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"4314:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18233,"indexExpression":{"id":18232,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18221,"src":"4326:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4314:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4298:32:58"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":18240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18229,"src":"4344:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":18238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4361:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4353:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4353:7:58","typeDescriptions":{}}},"id":18239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4353:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4344:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18256,"nodeType":"Block","src":"4435:45:58","statements":[{"expression":{"components":[{"hexValue":"74727565","id":18252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4457:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":18253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18229,"src":"4463:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4456:13:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":18227,"id":18255,"nodeType":"Return","src":"4449:20:58"}]},"id":18257,"nodeType":"IfStatement","src":"4340:140:58","trueBody":{"id":18251,"nodeType":"Block","src":"4365:64:58","statements":[{"expression":{"components":[{"arguments":[{"id":18242,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18219,"src":"4396:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},{"id":18243,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18221,"src":"4401:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18241,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"4387:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4387:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"30","id":18247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4415:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4407:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4407:7:58","typeDescriptions":{}}},"id":18248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4407:10:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4386:32:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":18227,"id":18250,"nodeType":"Return","src":"4379:39:58"}]}}]},"documentation":{"id":18216,"nodeType":"StructuredDocumentation","src":"4053:130:58","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":18259,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"4197:6:58","nodeType":"FunctionDefinition","parameters":{"id":18222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18219,"mutability":"mutable","name":"map","nameLocation":"4232:3:58","nodeType":"VariableDeclaration","scope":18259,"src":"4204:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18218,"nodeType":"UserDefinedTypeName","pathNode":{"id":18217,"name":"Bytes32ToBytes32Map","nameLocations":["4204:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"4204:19:58"},"referencedDeclaration":18101,"src":"4204:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18221,"mutability":"mutable","name":"key","nameLocation":"4245:3:58","nodeType":"VariableDeclaration","scope":18259,"src":"4237:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4237:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4203:46:58"},"returnParameters":{"id":18227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18259,"src":"4273:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18223,"name":"bool","nodeType":"ElementaryTypeName","src":"4273:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18259,"src":"4279:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4279:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4272:15:58"},"scope":19207,"src":"4188:298:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18291,"nodeType":"Block","src":"4728:156:58","statements":[{"assignments":[18271],"declarations":[{"constant":false,"id":18271,"mutability":"mutable","name":"value","nameLocation":"4746:5:58","nodeType":"VariableDeclaration","scope":18291,"src":"4738:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4738:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18276,"initialValue":{"baseExpression":{"expression":{"id":18272,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18263,"src":"4754:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4758:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"4754:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18275,"indexExpression":{"id":18274,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18265,"src":"4766:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4754:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4738:32:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":18280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18271,"src":"4788:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4797:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4788:10:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18282,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18263,"src":"4811:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},{"id":18283,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18265,"src":"4816:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18281,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"4802:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4802:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4788:32:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579","id":18286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4822:32:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072","typeString":"literal_string \"EnumerableMap: nonexistent key\""},"value":"EnumerableMap: nonexistent key"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072","typeString":"literal_string \"EnumerableMap: nonexistent key\""}],"id":18277,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4780:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:75:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18288,"nodeType":"ExpressionStatement","src":"4780:75:58"},{"expression":{"id":18289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18271,"src":"4872:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":18269,"id":18290,"nodeType":"Return","src":"4865:12:58"}]},"documentation":{"id":18260,"nodeType":"StructuredDocumentation","src":"4492:140:58","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":18292,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"4646:3:58","nodeType":"FunctionDefinition","parameters":{"id":18266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18263,"mutability":"mutable","name":"map","nameLocation":"4678:3:58","nodeType":"VariableDeclaration","scope":18292,"src":"4650:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18262,"nodeType":"UserDefinedTypeName","pathNode":{"id":18261,"name":"Bytes32ToBytes32Map","nameLocations":["4650:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"4650:19:58"},"referencedDeclaration":18101,"src":"4650:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18265,"mutability":"mutable","name":"key","nameLocation":"4691:3:58","nodeType":"VariableDeclaration","scope":18292,"src":"4683:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4683:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4649:46:58"},"returnParameters":{"id":18269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18268,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18292,"src":"4719:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4719:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4718:9:58"},"scope":19207,"src":"4637:247:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18326,"nodeType":"Block","src":"5313:136:58","statements":[{"assignments":[18306],"declarations":[{"constant":false,"id":18306,"mutability":"mutable","name":"value","nameLocation":"5331:5:58","nodeType":"VariableDeclaration","scope":18326,"src":"5323:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5323:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18311,"initialValue":{"baseExpression":{"expression":{"id":18307,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18296,"src":"5339:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},"id":18308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5343:7:58","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":18100,"src":"5339:11:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":18310,"indexExpression":{"id":18309,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18298,"src":"5351:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5339:16:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5323:32:58"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":18315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18313,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18306,"src":"5373:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5382:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5373:10:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18317,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18296,"src":"5396:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"}},{"id":18318,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18298,"src":"5401:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18316,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"5387:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5387:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5373:32:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18321,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18300,"src":"5407:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:55:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18323,"nodeType":"ExpressionStatement","src":"5365:55:58"},{"expression":{"id":18324,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18306,"src":"5437:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":18304,"id":18325,"nodeType":"Return","src":"5430:12:58"}]},"documentation":{"id":18293,"nodeType":"StructuredDocumentation","src":"4890:269:58","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":18327,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"5173:3:58","nodeType":"FunctionDefinition","parameters":{"id":18301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18296,"mutability":"mutable","name":"map","nameLocation":"5214:3:58","nodeType":"VariableDeclaration","scope":18327,"src":"5186:31:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18295,"nodeType":"UserDefinedTypeName","pathNode":{"id":18294,"name":"Bytes32ToBytes32Map","nameLocations":["5186:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"5186:19:58"},"referencedDeclaration":18101,"src":"5186:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"},{"constant":false,"id":18298,"mutability":"mutable","name":"key","nameLocation":"5235:3:58","nodeType":"VariableDeclaration","scope":18327,"src":"5227:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18300,"mutability":"mutable","name":"errorMessage","nameLocation":"5262:12:58","nodeType":"VariableDeclaration","scope":18327,"src":"5248:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18299,"name":"string","nodeType":"ElementaryTypeName","src":"5248:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5176:104:58"},"returnParameters":{"id":18304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18327,"src":"5304:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5304:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5303:9:58"},"scope":19207,"src":"5164:285:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMap.UintToUintMap","id":18331,"members":[{"constant":false,"id":18330,"mutability":"mutable","name":"_inner","nameLocation":"5528:6:58","nodeType":"VariableDeclaration","scope":18331,"src":"5508:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18329,"nodeType":"UserDefinedTypeName","pathNode":{"id":18328,"name":"Bytes32ToBytes32Map","nameLocations":["5508:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"5508:19:58"},"referencedDeclaration":18101,"src":"5508:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"UintToUintMap","nameLocation":"5484:13:58","nodeType":"StructDefinition","scope":19207,"src":"5477:64:58","visibility":"public"},{"body":{"id":18357,"nodeType":"Block","src":"5890:69:58","statements":[{"expression":{"arguments":[{"expression":{"id":18345,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18335,"src":"5911:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5915:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"5911:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18349,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18337,"src":"5931:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5923:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5923:7:58","typeDescriptions":{}}},"id":18350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5923:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":18353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"5945:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5937:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5937:7:58","typeDescriptions":{}}},"id":18354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5937:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18344,"name":"set","nodeType":"Identifier","overloadedDeclarations":[18129,18358,18571,18808,19048],"referencedDeclaration":18129,"src":"5907:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":18355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:45:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18343,"id":18356,"nodeType":"Return","src":"5900:52:58"}]},"documentation":{"id":18332,"nodeType":"StructuredDocumentation","src":"5547:216:58","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":18358,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"5777:3:58","nodeType":"FunctionDefinition","parameters":{"id":18340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18335,"mutability":"mutable","name":"map","nameLocation":"5812:3:58","nodeType":"VariableDeclaration","scope":18358,"src":"5790:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18334,"nodeType":"UserDefinedTypeName","pathNode":{"id":18333,"name":"UintToUintMap","nameLocations":["5790:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"5790:13:58"},"referencedDeclaration":18331,"src":"5790:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18337,"mutability":"mutable","name":"key","nameLocation":"5833:3:58","nodeType":"VariableDeclaration","scope":18358,"src":"5825:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18336,"name":"uint256","nodeType":"ElementaryTypeName","src":"5825:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18339,"mutability":"mutable","name":"value","nameLocation":"5854:5:58","nodeType":"VariableDeclaration","scope":18358,"src":"5846:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18338,"name":"uint256","nodeType":"ElementaryTypeName","src":"5846:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5780:85:58"},"returnParameters":{"id":18343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18358,"src":"5884:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18341,"name":"bool","nodeType":"ElementaryTypeName","src":"5884:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5883:6:58"},"scope":19207,"src":"5768:191:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18378,"nodeType":"Block","src":"6198:56:58","statements":[{"expression":{"arguments":[{"expression":{"id":18370,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18362,"src":"6222:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6226:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"6222:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18374,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18364,"src":"6242:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6234:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6234:7:58","typeDescriptions":{}}},"id":18375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6234:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18369,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[18153,18379,18592,18835,19066],"referencedDeclaration":18153,"src":"6215:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":18376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18368,"id":18377,"nodeType":"Return","src":"6208:39:58"}]},"documentation":{"id":18359,"nodeType":"StructuredDocumentation","src":"5965:148:58","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":18379,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6127:6:58","nodeType":"FunctionDefinition","parameters":{"id":18365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18362,"mutability":"mutable","name":"map","nameLocation":"6156:3:58","nodeType":"VariableDeclaration","scope":18379,"src":"6134:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18361,"nodeType":"UserDefinedTypeName","pathNode":{"id":18360,"name":"UintToUintMap","nameLocations":["6134:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"6134:13:58"},"referencedDeclaration":18331,"src":"6134:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18364,"mutability":"mutable","name":"key","nameLocation":"6169:3:58","nodeType":"VariableDeclaration","scope":18379,"src":"6161:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18363,"name":"uint256","nodeType":"ElementaryTypeName","src":"6161:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6133:40:58"},"returnParameters":{"id":18368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18379,"src":"6192:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18366,"name":"bool","nodeType":"ElementaryTypeName","src":"6192:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6191:6:58"},"scope":19207,"src":"6118:136:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18399,"nodeType":"Block","src":"6420:58:58","statements":[{"expression":{"arguments":[{"expression":{"id":18391,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18383,"src":"6446:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"6446:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18395,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"6466:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6458:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6458:7:58","typeDescriptions":{}}},"id":18396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6458:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18390,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"6437:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6437:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18389,"id":18398,"nodeType":"Return","src":"6430:41:58"}]},"documentation":{"id":18380,"nodeType":"StructuredDocumentation","src":"6260:68:58","text":" @dev Returns true if the key is in the map. O(1)."},"id":18400,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6342:8:58","nodeType":"FunctionDefinition","parameters":{"id":18386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18383,"mutability":"mutable","name":"map","nameLocation":"6373:3:58","nodeType":"VariableDeclaration","scope":18400,"src":"6351:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18382,"nodeType":"UserDefinedTypeName","pathNode":{"id":18381,"name":"UintToUintMap","nameLocations":["6351:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"6351:13:58"},"referencedDeclaration":18331,"src":"6351:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18385,"mutability":"mutable","name":"key","nameLocation":"6386:3:58","nodeType":"VariableDeclaration","scope":18400,"src":"6378:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18384,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6350:40:58"},"returnParameters":{"id":18389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18388,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18400,"src":"6414:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18387,"name":"bool","nodeType":"ElementaryTypeName","src":"6414:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6413:6:58"},"scope":19207,"src":"6333:145:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18414,"nodeType":"Block","src":"6636:42:58","statements":[{"expression":{"arguments":[{"expression":{"id":18410,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18404,"src":"6660:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6664:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"6660:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}],"id":18409,"name":"length","nodeType":"Identifier","overloadedDeclarations":[18186,18415,18628,18877,19099],"referencedDeclaration":18186,"src":"6653:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":18412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6653:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18408,"id":18413,"nodeType":"Return","src":"6646:25:58"}]},"documentation":{"id":18401,"nodeType":"StructuredDocumentation","src":"6484:72:58","text":" @dev Returns the number of elements in the map. O(1)."},"id":18415,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6570:6:58","nodeType":"FunctionDefinition","parameters":{"id":18405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18404,"mutability":"mutable","name":"map","nameLocation":"6599:3:58","nodeType":"VariableDeclaration","scope":18415,"src":"6577:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18403,"nodeType":"UserDefinedTypeName","pathNode":{"id":18402,"name":"UintToUintMap","nameLocations":["6577:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"6577:13:58"},"referencedDeclaration":18331,"src":"6577:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"}],"src":"6576:27:58"},"returnParameters":{"id":18408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18415,"src":"6627:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18406,"name":"uint256","nodeType":"ElementaryTypeName","src":"6627:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6626:9:58"},"scope":19207,"src":"6561:117:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18448,"nodeType":"Block","src":"7110:116:58","statements":[{"assignments":[18429,18431],"declarations":[{"constant":false,"id":18429,"mutability":"mutable","name":"key","nameLocation":"7129:3:58","nodeType":"VariableDeclaration","scope":18448,"src":"7121:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7121:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18431,"mutability":"mutable","name":"value","nameLocation":"7142:5:58","nodeType":"VariableDeclaration","scope":18448,"src":"7134:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7134:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18437,"initialValue":{"arguments":[{"expression":{"id":18433,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18419,"src":"7154:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7158:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"7154:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":18435,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18421,"src":"7166:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18432,"name":"at","nodeType":"Identifier","overloadedDeclarations":[18215,18449,18668,18917,19130],"referencedDeclaration":18215,"src":"7151:2:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":18436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7120:52:58"},{"expression":{"components":[{"arguments":[{"id":18440,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18429,"src":"7198:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7190:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18438,"name":"uint256","nodeType":"ElementaryTypeName","src":"7190:7:58","typeDescriptions":{}}},"id":18441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7190:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":18444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18431,"src":"7212:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7204:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18442,"name":"uint256","nodeType":"ElementaryTypeName","src":"7204:7:58","typeDescriptions":{}}},"id":18445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7204:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18446,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7189:30:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":18427,"id":18447,"nodeType":"Return","src":"7182:37:58"}]},"documentation":{"id":18416,"nodeType":"StructuredDocumentation","src":"6684:326:58","text":" @dev Returns the element 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":18449,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7024:2:58","nodeType":"FunctionDefinition","parameters":{"id":18422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18419,"mutability":"mutable","name":"map","nameLocation":"7049:3:58","nodeType":"VariableDeclaration","scope":18449,"src":"7027:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18418,"nodeType":"UserDefinedTypeName","pathNode":{"id":18417,"name":"UintToUintMap","nameLocations":["7027:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"7027:13:58"},"referencedDeclaration":18331,"src":"7027:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18421,"mutability":"mutable","name":"index","nameLocation":"7062:5:58","nodeType":"VariableDeclaration","scope":18449,"src":"7054:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18420,"name":"uint256","nodeType":"ElementaryTypeName","src":"7054:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7026:42:58"},"returnParameters":{"id":18427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18449,"src":"7092:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18423,"name":"uint256","nodeType":"ElementaryTypeName","src":"7092:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18449,"src":"7101:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18425,"name":"uint256","nodeType":"ElementaryTypeName","src":"7101:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7091:18:58"},"scope":19207,"src":"7015:211:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18482,"nodeType":"Block","src":"7461:123:58","statements":[{"assignments":[18463,18465],"declarations":[{"constant":false,"id":18463,"mutability":"mutable","name":"success","nameLocation":"7477:7:58","nodeType":"VariableDeclaration","scope":18482,"src":"7472:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18462,"name":"bool","nodeType":"ElementaryTypeName","src":"7472:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18465,"mutability":"mutable","name":"value","nameLocation":"7494:5:58","nodeType":"VariableDeclaration","scope":18482,"src":"7486:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7486:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18474,"initialValue":{"arguments":[{"expression":{"id":18467,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18453,"src":"7510:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7514:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"7510:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18471,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"7530:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7522:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7522:7:58","typeDescriptions":{}}},"id":18472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7522:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18466,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[18259,18483,18708,18957,19161],"referencedDeclaration":18259,"src":"7503:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":18473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7503:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"7471:64:58"},{"expression":{"components":[{"id":18475,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18463,"src":"7553:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":18478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18465,"src":"7570:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7562:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18476,"name":"uint256","nodeType":"ElementaryTypeName","src":"7562:7:58","typeDescriptions":{}}},"id":18479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7562:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7552:25:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":18461,"id":18481,"nodeType":"Return","src":"7545:32:58"}]},"documentation":{"id":18450,"nodeType":"StructuredDocumentation","src":"7232:130:58","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":18483,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"7376:6:58","nodeType":"FunctionDefinition","parameters":{"id":18456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18453,"mutability":"mutable","name":"map","nameLocation":"7405:3:58","nodeType":"VariableDeclaration","scope":18483,"src":"7383:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18452,"nodeType":"UserDefinedTypeName","pathNode":{"id":18451,"name":"UintToUintMap","nameLocations":["7383:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"7383:13:58"},"referencedDeclaration":18331,"src":"7383:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18455,"mutability":"mutable","name":"key","nameLocation":"7418:3:58","nodeType":"VariableDeclaration","scope":18483,"src":"7410:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18454,"name":"uint256","nodeType":"ElementaryTypeName","src":"7410:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7382:40:58"},"returnParameters":{"id":18461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18483,"src":"7446:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18457,"name":"bool","nodeType":"ElementaryTypeName","src":"7446:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18483,"src":"7452:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18459,"name":"uint256","nodeType":"ElementaryTypeName","src":"7452:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7445:15:58"},"scope":19207,"src":"7367:217:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18506,"nodeType":"Block","src":"7820:62:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18497,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18487,"src":"7849:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7853:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"7849:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18501,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"7869:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7861:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7861:7:58","typeDescriptions":{}}},"id":18502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7861:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18496,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18292,"src":"7845:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":18503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7845:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7837:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18494,"name":"uint256","nodeType":"ElementaryTypeName","src":"7837:7:58","typeDescriptions":{}}},"id":18504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7837:38:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18493,"id":18505,"nodeType":"Return","src":"7830:45:58"}]},"documentation":{"id":18484,"nodeType":"StructuredDocumentation","src":"7590:140:58","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":18507,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"7744:3:58","nodeType":"FunctionDefinition","parameters":{"id":18490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18487,"mutability":"mutable","name":"map","nameLocation":"7770:3:58","nodeType":"VariableDeclaration","scope":18507,"src":"7748:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18486,"nodeType":"UserDefinedTypeName","pathNode":{"id":18485,"name":"UintToUintMap","nameLocations":["7748:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"7748:13:58"},"referencedDeclaration":18331,"src":"7748:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18489,"mutability":"mutable","name":"key","nameLocation":"7783:3:58","nodeType":"VariableDeclaration","scope":18507,"src":"7775:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18488,"name":"uint256","nodeType":"ElementaryTypeName","src":"7775:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7747:40:58"},"returnParameters":{"id":18493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18507,"src":"7811:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18491,"name":"uint256","nodeType":"ElementaryTypeName","src":"7811:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7810:9:58"},"scope":19207,"src":"7735:147:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18533,"nodeType":"Block","src":"8305:76:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18523,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18511,"src":"8334:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap storage pointer"}},"id":18524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8338:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"8334:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18527,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18513,"src":"8354:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8346:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8346:7:58","typeDescriptions":{}}},"id":18528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8346:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18529,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18515,"src":"8360:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18522,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18327,"src":"8330:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":18530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8330:43:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8322:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18520,"name":"uint256","nodeType":"ElementaryTypeName","src":"8322:7:58","typeDescriptions":{}}},"id":18531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18519,"id":18532,"nodeType":"Return","src":"8315:59:58"}]},"documentation":{"id":18508,"nodeType":"StructuredDocumentation","src":"7888:269:58","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":18534,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"8171:3:58","nodeType":"FunctionDefinition","parameters":{"id":18516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18511,"mutability":"mutable","name":"map","nameLocation":"8206:3:58","nodeType":"VariableDeclaration","scope":18534,"src":"8184:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":18510,"nodeType":"UserDefinedTypeName","pathNode":{"id":18509,"name":"UintToUintMap","nameLocations":["8184:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"8184:13:58"},"referencedDeclaration":18331,"src":"8184:13:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"},{"constant":false,"id":18513,"mutability":"mutable","name":"key","nameLocation":"8227:3:58","nodeType":"VariableDeclaration","scope":18534,"src":"8219:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18512,"name":"uint256","nodeType":"ElementaryTypeName","src":"8219:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18515,"mutability":"mutable","name":"errorMessage","nameLocation":"8254:12:58","nodeType":"VariableDeclaration","scope":18534,"src":"8240:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18514,"name":"string","nodeType":"ElementaryTypeName","src":"8240:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8174:98:58"},"returnParameters":{"id":18519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18534,"src":"8296:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18517,"name":"uint256","nodeType":"ElementaryTypeName","src":"8296:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8295:9:58"},"scope":19207,"src":"8162:219:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMap.UintToAddressMap","id":18538,"members":[{"constant":false,"id":18537,"mutability":"mutable","name":"_inner","nameLocation":"8466:6:58","nodeType":"VariableDeclaration","scope":18538,"src":"8446:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18536,"nodeType":"UserDefinedTypeName","pathNode":{"id":18535,"name":"Bytes32ToBytes32Map","nameLocations":["8446:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"8446:19:58"},"referencedDeclaration":18101,"src":"8446:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"UintToAddressMap","nameLocation":"8419:16:58","nodeType":"StructDefinition","scope":19207,"src":"8412:67:58","visibility":"public"},{"body":{"id":18570,"nodeType":"Block","src":"8831:87:58","statements":[{"expression":{"arguments":[{"expression":{"id":18552,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18542,"src":"8852:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"8852:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18556,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18544,"src":"8872:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8864:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8864:7:58","typeDescriptions":{}}},"id":18557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8864:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"id":18564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18546,"src":"8902:5:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8894:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18562,"name":"uint160","nodeType":"ElementaryTypeName","src":"8894:7:58","typeDescriptions":{}}},"id":18565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8894:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8886:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18560,"name":"uint256","nodeType":"ElementaryTypeName","src":"8886:7:58","typeDescriptions":{}}},"id":18566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8886:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8878:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8878:7:58","typeDescriptions":{}}},"id":18567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8878:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18551,"name":"set","nodeType":"Identifier","overloadedDeclarations":[18129,18358,18571,18808,19048],"referencedDeclaration":18129,"src":"8848:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":18568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8848:63:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18550,"id":18569,"nodeType":"Return","src":"8841:70:58"}]},"documentation":{"id":18539,"nodeType":"StructuredDocumentation","src":"8485:216:58","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":18571,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"8715:3:58","nodeType":"FunctionDefinition","parameters":{"id":18547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18542,"mutability":"mutable","name":"map","nameLocation":"8753:3:58","nodeType":"VariableDeclaration","scope":18571,"src":"8728:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18541,"nodeType":"UserDefinedTypeName","pathNode":{"id":18540,"name":"UintToAddressMap","nameLocations":["8728:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"8728:16:58"},"referencedDeclaration":18538,"src":"8728:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18544,"mutability":"mutable","name":"key","nameLocation":"8774:3:58","nodeType":"VariableDeclaration","scope":18571,"src":"8766:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18543,"name":"uint256","nodeType":"ElementaryTypeName","src":"8766:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18546,"mutability":"mutable","name":"value","nameLocation":"8795:5:58","nodeType":"VariableDeclaration","scope":18571,"src":"8787:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18545,"name":"address","nodeType":"ElementaryTypeName","src":"8787:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8718:88:58"},"returnParameters":{"id":18550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18571,"src":"8825:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18548,"name":"bool","nodeType":"ElementaryTypeName","src":"8825:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8824:6:58"},"scope":19207,"src":"8706:212:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18591,"nodeType":"Block","src":"9160:56:58","statements":[{"expression":{"arguments":[{"expression":{"id":18583,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18575,"src":"9184:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9188:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"9184:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18587,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18577,"src":"9204:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9196:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9196:7:58","typeDescriptions":{}}},"id":18588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18582,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[18153,18379,18592,18835,19066],"referencedDeclaration":18153,"src":"9177:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":18589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9177:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18581,"id":18590,"nodeType":"Return","src":"9170:39:58"}]},"documentation":{"id":18572,"nodeType":"StructuredDocumentation","src":"8924:148:58","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":18592,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"9086:6:58","nodeType":"FunctionDefinition","parameters":{"id":18578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18575,"mutability":"mutable","name":"map","nameLocation":"9118:3:58","nodeType":"VariableDeclaration","scope":18592,"src":"9093:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18574,"nodeType":"UserDefinedTypeName","pathNode":{"id":18573,"name":"UintToAddressMap","nameLocations":["9093:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"9093:16:58"},"referencedDeclaration":18538,"src":"9093:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18577,"mutability":"mutable","name":"key","nameLocation":"9131:3:58","nodeType":"VariableDeclaration","scope":18592,"src":"9123:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18576,"name":"uint256","nodeType":"ElementaryTypeName","src":"9123:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9092:43:58"},"returnParameters":{"id":18581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18592,"src":"9154:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18579,"name":"bool","nodeType":"ElementaryTypeName","src":"9154:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9153:6:58"},"scope":19207,"src":"9077:139:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18612,"nodeType":"Block","src":"9385:58:58","statements":[{"expression":{"arguments":[{"expression":{"id":18604,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18596,"src":"9411:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9415:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"9411:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18608,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18598,"src":"9431:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9423:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9423:7:58","typeDescriptions":{}}},"id":18609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9423:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18603,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"9402:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9402:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18602,"id":18611,"nodeType":"Return","src":"9395:41:58"}]},"documentation":{"id":18593,"nodeType":"StructuredDocumentation","src":"9222:68:58","text":" @dev Returns true if the key is in the map. O(1)."},"id":18613,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"9304:8:58","nodeType":"FunctionDefinition","parameters":{"id":18599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18596,"mutability":"mutable","name":"map","nameLocation":"9338:3:58","nodeType":"VariableDeclaration","scope":18613,"src":"9313:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18595,"nodeType":"UserDefinedTypeName","pathNode":{"id":18594,"name":"UintToAddressMap","nameLocations":["9313:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"9313:16:58"},"referencedDeclaration":18538,"src":"9313:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18598,"mutability":"mutable","name":"key","nameLocation":"9351:3:58","nodeType":"VariableDeclaration","scope":18613,"src":"9343:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18597,"name":"uint256","nodeType":"ElementaryTypeName","src":"9343:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9312:43:58"},"returnParameters":{"id":18602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18613,"src":"9379:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18600,"name":"bool","nodeType":"ElementaryTypeName","src":"9379:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9378:6:58"},"scope":19207,"src":"9295:148:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18627,"nodeType":"Block","src":"9604:42:58","statements":[{"expression":{"arguments":[{"expression":{"id":18623,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18617,"src":"9628:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9632:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"9628:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}],"id":18622,"name":"length","nodeType":"Identifier","overloadedDeclarations":[18186,18415,18628,18877,19099],"referencedDeclaration":18186,"src":"9621:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":18625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9621:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18621,"id":18626,"nodeType":"Return","src":"9614:25:58"}]},"documentation":{"id":18614,"nodeType":"StructuredDocumentation","src":"9449:72:58","text":" @dev Returns the number of elements in the map. O(1)."},"id":18628,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9535:6:58","nodeType":"FunctionDefinition","parameters":{"id":18618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18617,"mutability":"mutable","name":"map","nameLocation":"9567:3:58","nodeType":"VariableDeclaration","scope":18628,"src":"9542:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18616,"nodeType":"UserDefinedTypeName","pathNode":{"id":18615,"name":"UintToAddressMap","nameLocations":["9542:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"9542:16:58"},"referencedDeclaration":18538,"src":"9542:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"}],"src":"9541:30:58"},"returnParameters":{"id":18621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18628,"src":"9595:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18619,"name":"uint256","nodeType":"ElementaryTypeName","src":"9595:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9594:9:58"},"scope":19207,"src":"9526:120:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18667,"nodeType":"Block","src":"10081:134:58","statements":[{"assignments":[18642,18644],"declarations":[{"constant":false,"id":18642,"mutability":"mutable","name":"key","nameLocation":"10100:3:58","nodeType":"VariableDeclaration","scope":18667,"src":"10092:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10092:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18644,"mutability":"mutable","name":"value","nameLocation":"10113:5:58","nodeType":"VariableDeclaration","scope":18667,"src":"10105:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10105:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18650,"initialValue":{"arguments":[{"expression":{"id":18646,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18632,"src":"10125:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10129:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"10125:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":18648,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"10137:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18645,"name":"at","nodeType":"Identifier","overloadedDeclarations":[18215,18449,18668,18917,19130],"referencedDeclaration":18215,"src":"10122:2:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10122:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"10091:52:58"},{"expression":{"components":[{"arguments":[{"id":18653,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18642,"src":"10169:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10161:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18651,"name":"uint256","nodeType":"ElementaryTypeName","src":"10161:7:58","typeDescriptions":{}}},"id":18654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10161:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"arguments":[{"id":18661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"10199:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10191:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18659,"name":"uint256","nodeType":"ElementaryTypeName","src":"10191:7:58","typeDescriptions":{}}},"id":18662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10191:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10183:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18657,"name":"uint160","nodeType":"ElementaryTypeName","src":"10183:7:58","typeDescriptions":{}}},"id":18663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10183:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10175:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18655,"name":"address","nodeType":"ElementaryTypeName","src":"10175:7:58","typeDescriptions":{}}},"id":18664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10175:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":18665,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10160:48:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":18640,"id":18666,"nodeType":"Return","src":"10153:55:58"}]},"documentation":{"id":18629,"nodeType":"StructuredDocumentation","src":"9652:326:58","text":" @dev Returns the element 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":18668,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9992:2:58","nodeType":"FunctionDefinition","parameters":{"id":18635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18632,"mutability":"mutable","name":"map","nameLocation":"10020:3:58","nodeType":"VariableDeclaration","scope":18668,"src":"9995:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18631,"nodeType":"UserDefinedTypeName","pathNode":{"id":18630,"name":"UintToAddressMap","nameLocations":["9995:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"9995:16:58"},"referencedDeclaration":18538,"src":"9995:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18634,"mutability":"mutable","name":"index","nameLocation":"10033:5:58","nodeType":"VariableDeclaration","scope":18668,"src":"10025:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18633,"name":"uint256","nodeType":"ElementaryTypeName","src":"10025:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9994:45:58"},"returnParameters":{"id":18640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18668,"src":"10063:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18636,"name":"uint256","nodeType":"ElementaryTypeName","src":"10063:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18668,"src":"10072:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18638,"name":"address","nodeType":"ElementaryTypeName","src":"10072:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10062:18:58"},"scope":19207,"src":"9983:232:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18707,"nodeType":"Block","src":"10453:141:58","statements":[{"assignments":[18682,18684],"declarations":[{"constant":false,"id":18682,"mutability":"mutable","name":"success","nameLocation":"10469:7:58","nodeType":"VariableDeclaration","scope":18707,"src":"10464:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18681,"name":"bool","nodeType":"ElementaryTypeName","src":"10464:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18684,"mutability":"mutable","name":"value","nameLocation":"10486:5:58","nodeType":"VariableDeclaration","scope":18707,"src":"10478:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10478:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18693,"initialValue":{"arguments":[{"expression":{"id":18686,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18672,"src":"10502:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10506:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"10502:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18690,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"10522:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10514:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10514:7:58","typeDescriptions":{}}},"id":18691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10514:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18685,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[18259,18483,18708,18957,19161],"referencedDeclaration":18259,"src":"10495:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":18692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10495:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"10463:64:58"},{"expression":{"components":[{"id":18694,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18682,"src":"10545:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"arguments":[{"id":18701,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18684,"src":"10578:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10570:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18699,"name":"uint256","nodeType":"ElementaryTypeName","src":"10570:7:58","typeDescriptions":{}}},"id":18702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10570:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10562:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18697,"name":"uint160","nodeType":"ElementaryTypeName","src":"10562:7:58","typeDescriptions":{}}},"id":18703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10562:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10554:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18695,"name":"address","nodeType":"ElementaryTypeName","src":"10554:7:58","typeDescriptions":{}}},"id":18704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10554:32:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":18705,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10544:43:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":18680,"id":18706,"nodeType":"Return","src":"10537:50:58"}]},"documentation":{"id":18669,"nodeType":"StructuredDocumentation","src":"10221:130:58","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":18708,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"10365:6:58","nodeType":"FunctionDefinition","parameters":{"id":18675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18672,"mutability":"mutable","name":"map","nameLocation":"10397:3:58","nodeType":"VariableDeclaration","scope":18708,"src":"10372:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18671,"nodeType":"UserDefinedTypeName","pathNode":{"id":18670,"name":"UintToAddressMap","nameLocations":["10372:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"10372:16:58"},"referencedDeclaration":18538,"src":"10372:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18674,"mutability":"mutable","name":"key","nameLocation":"10410:3:58","nodeType":"VariableDeclaration","scope":18708,"src":"10402:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18673,"name":"uint256","nodeType":"ElementaryTypeName","src":"10402:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10371:43:58"},"returnParameters":{"id":18680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18708,"src":"10438:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18676,"name":"bool","nodeType":"ElementaryTypeName","src":"10438:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18708,"src":"10444:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18678,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10437:15:58"},"scope":19207,"src":"10356:238:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18737,"nodeType":"Block","src":"10833:80:58","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":18726,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18712,"src":"10878:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10882:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"10878:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18730,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18714,"src":"10898:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10890:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10890:7:58","typeDescriptions":{}}},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10890:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18725,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18292,"src":"10874:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":18732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10874:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10866:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18723,"name":"uint256","nodeType":"ElementaryTypeName","src":"10866:7:58","typeDescriptions":{}}},"id":18733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10866:38:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10858:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18721,"name":"uint160","nodeType":"ElementaryTypeName","src":"10858:7:58","typeDescriptions":{}}},"id":18734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10858:47:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10850:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18719,"name":"address","nodeType":"ElementaryTypeName","src":"10850:7:58","typeDescriptions":{}}},"id":18735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10850:56:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18718,"id":18736,"nodeType":"Return","src":"10843:63:58"}]},"documentation":{"id":18709,"nodeType":"StructuredDocumentation","src":"10600:140:58","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":18738,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"10754:3:58","nodeType":"FunctionDefinition","parameters":{"id":18715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18712,"mutability":"mutable","name":"map","nameLocation":"10783:3:58","nodeType":"VariableDeclaration","scope":18738,"src":"10758:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18711,"nodeType":"UserDefinedTypeName","pathNode":{"id":18710,"name":"UintToAddressMap","nameLocations":["10758:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"10758:16:58"},"referencedDeclaration":18538,"src":"10758:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18714,"mutability":"mutable","name":"key","nameLocation":"10796:3:58","nodeType":"VariableDeclaration","scope":18738,"src":"10788:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18713,"name":"uint256","nodeType":"ElementaryTypeName","src":"10788:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10757:43:58"},"returnParameters":{"id":18718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18738,"src":"10824:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18716,"name":"address","nodeType":"ElementaryTypeName","src":"10824:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10823:9:58"},"scope":19207,"src":"10745:168:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18770,"nodeType":"Block","src":"11339:94:58","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":18758,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11384:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap storage pointer"}},"id":18759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11388:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18537,"src":"11384:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"id":18762,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18744,"src":"11404:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11396:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11396:7:58","typeDescriptions":{}}},"id":18763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11396:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18764,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18746,"src":"11410:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":18757,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18327,"src":"11380:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":18765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11380:43:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11372:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18755,"name":"uint256","nodeType":"ElementaryTypeName","src":"11372:7:58","typeDescriptions":{}}},"id":18766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11372:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11364:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18753,"name":"uint160","nodeType":"ElementaryTypeName","src":"11364:7:58","typeDescriptions":{}}},"id":18767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11364:61:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11356:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18751,"name":"address","nodeType":"ElementaryTypeName","src":"11356:7:58","typeDescriptions":{}}},"id":18768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11356:70:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":18750,"id":18769,"nodeType":"Return","src":"11349:77:58"}]},"documentation":{"id":18739,"nodeType":"StructuredDocumentation","src":"10919:269:58","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":18771,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"11202:3:58","nodeType":"FunctionDefinition","parameters":{"id":18747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18742,"mutability":"mutable","name":"map","nameLocation":"11240:3:58","nodeType":"VariableDeclaration","scope":18771,"src":"11215:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"},"typeName":{"id":18741,"nodeType":"UserDefinedTypeName","pathNode":{"id":18740,"name":"UintToAddressMap","nameLocations":["11215:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18538,"src":"11215:16:58"},"referencedDeclaration":18538,"src":"11215:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_UintToAddressMap_$18538_storage_ptr","typeString":"struct EnumerableMap.UintToAddressMap"}},"visibility":"internal"},{"constant":false,"id":18744,"mutability":"mutable","name":"key","nameLocation":"11261:3:58","nodeType":"VariableDeclaration","scope":18771,"src":"11253:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18743,"name":"uint256","nodeType":"ElementaryTypeName","src":"11253:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18746,"mutability":"mutable","name":"errorMessage","nameLocation":"11288:12:58","nodeType":"VariableDeclaration","scope":18771,"src":"11274:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18745,"name":"string","nodeType":"ElementaryTypeName","src":"11274:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11205:101:58"},"returnParameters":{"id":18750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18749,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18771,"src":"11330:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18748,"name":"address","nodeType":"ElementaryTypeName","src":"11330:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11329:9:58"},"scope":19207,"src":"11193:240:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMap.AddressToUintMap","id":18775,"members":[{"constant":false,"id":18774,"mutability":"mutable","name":"_inner","nameLocation":"11518:6:58","nodeType":"VariableDeclaration","scope":18775,"src":"11498:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":18773,"nodeType":"UserDefinedTypeName","pathNode":{"id":18772,"name":"Bytes32ToBytes32Map","nameLocations":["11498:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"11498:19:58"},"referencedDeclaration":18101,"src":"11498:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"AddressToUintMap","nameLocation":"11471:16:58","nodeType":"StructDefinition","scope":19207,"src":"11464:67:58","visibility":"public"},{"body":{"id":18807,"nodeType":"Block","src":"11883:87:58","statements":[{"expression":{"arguments":[{"expression":{"id":18789,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18779,"src":"11904:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11908:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"11904:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":18797,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18781,"src":"11940:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11932:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18795,"name":"uint160","nodeType":"ElementaryTypeName","src":"11932:7:58","typeDescriptions":{}}},"id":18798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11932:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11924:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18793,"name":"uint256","nodeType":"ElementaryTypeName","src":"11924:7:58","typeDescriptions":{}}},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11924:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11916:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11916:7:58","typeDescriptions":{}}},"id":18800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11916:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":18803,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18783,"src":"11956:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11948:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11948:7:58","typeDescriptions":{}}},"id":18804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11948:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18788,"name":"set","nodeType":"Identifier","overloadedDeclarations":[18129,18358,18571,18808,19048],"referencedDeclaration":18129,"src":"11900:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":18805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11900:63:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18787,"id":18806,"nodeType":"Return","src":"11893:70:58"}]},"documentation":{"id":18776,"nodeType":"StructuredDocumentation","src":"11537:216:58","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":18808,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"11767:3:58","nodeType":"FunctionDefinition","parameters":{"id":18784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18779,"mutability":"mutable","name":"map","nameLocation":"11805:3:58","nodeType":"VariableDeclaration","scope":18808,"src":"11780:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18778,"nodeType":"UserDefinedTypeName","pathNode":{"id":18777,"name":"AddressToUintMap","nameLocations":["11780:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"11780:16:58"},"referencedDeclaration":18775,"src":"11780:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18781,"mutability":"mutable","name":"key","nameLocation":"11826:3:58","nodeType":"VariableDeclaration","scope":18808,"src":"11818:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18780,"name":"address","nodeType":"ElementaryTypeName","src":"11818:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18783,"mutability":"mutable","name":"value","nameLocation":"11847:5:58","nodeType":"VariableDeclaration","scope":18808,"src":"11839:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18782,"name":"uint256","nodeType":"ElementaryTypeName","src":"11839:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11770:88:58"},"returnParameters":{"id":18787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18808,"src":"11877:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18785,"name":"bool","nodeType":"ElementaryTypeName","src":"11877:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11876:6:58"},"scope":19207,"src":"11758:212:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18834,"nodeType":"Block","src":"12212:74:58","statements":[{"expression":{"arguments":[{"expression":{"id":18820,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18812,"src":"12236:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12240:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"12236:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":18828,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18814,"src":"12272:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12264:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18826,"name":"uint160","nodeType":"ElementaryTypeName","src":"12264:7:58","typeDescriptions":{}}},"id":18829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12264:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12256:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18824,"name":"uint256","nodeType":"ElementaryTypeName","src":"12256:7:58","typeDescriptions":{}}},"id":18830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12256:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12248:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12248:7:58","typeDescriptions":{}}},"id":18831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12248:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18819,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[18153,18379,18592,18835,19066],"referencedDeclaration":18153,"src":"12229:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":18832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12229:50:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18818,"id":18833,"nodeType":"Return","src":"12222:57:58"}]},"documentation":{"id":18809,"nodeType":"StructuredDocumentation","src":"11976:148:58","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":18835,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"12138:6:58","nodeType":"FunctionDefinition","parameters":{"id":18815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18812,"mutability":"mutable","name":"map","nameLocation":"12170:3:58","nodeType":"VariableDeclaration","scope":18835,"src":"12145:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18811,"nodeType":"UserDefinedTypeName","pathNode":{"id":18810,"name":"AddressToUintMap","nameLocations":["12145:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"12145:16:58"},"referencedDeclaration":18775,"src":"12145:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18814,"mutability":"mutable","name":"key","nameLocation":"12183:3:58","nodeType":"VariableDeclaration","scope":18835,"src":"12175:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18813,"name":"address","nodeType":"ElementaryTypeName","src":"12175:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12144:43:58"},"returnParameters":{"id":18818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18835,"src":"12206:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18816,"name":"bool","nodeType":"ElementaryTypeName","src":"12206:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12205:6:58"},"scope":19207,"src":"12129:157:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":18861,"nodeType":"Block","src":"12455:76:58","statements":[{"expression":{"arguments":[{"expression":{"id":18847,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18839,"src":"12481:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12485:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"12481:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":18855,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18841,"src":"12517:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12509:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18853,"name":"uint160","nodeType":"ElementaryTypeName","src":"12509:7:58","typeDescriptions":{}}},"id":18856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12509:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12501:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18851,"name":"uint256","nodeType":"ElementaryTypeName","src":"12501:7:58","typeDescriptions":{}}},"id":18857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12501:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12493:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12493:7:58","typeDescriptions":{}}},"id":18858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12493:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18846,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"12472:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":18859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12472:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18845,"id":18860,"nodeType":"Return","src":"12465:59:58"}]},"documentation":{"id":18836,"nodeType":"StructuredDocumentation","src":"12292:68:58","text":" @dev Returns true if the key is in the map. O(1)."},"id":18862,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"12374:8:58","nodeType":"FunctionDefinition","parameters":{"id":18842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18839,"mutability":"mutable","name":"map","nameLocation":"12408:3:58","nodeType":"VariableDeclaration","scope":18862,"src":"12383:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18838,"nodeType":"UserDefinedTypeName","pathNode":{"id":18837,"name":"AddressToUintMap","nameLocations":["12383:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"12383:16:58"},"referencedDeclaration":18775,"src":"12383:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18841,"mutability":"mutable","name":"key","nameLocation":"12421:3:58","nodeType":"VariableDeclaration","scope":18862,"src":"12413:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18840,"name":"address","nodeType":"ElementaryTypeName","src":"12413:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12382:43:58"},"returnParameters":{"id":18845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18844,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18862,"src":"12449:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18843,"name":"bool","nodeType":"ElementaryTypeName","src":"12449:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12448:6:58"},"scope":19207,"src":"12365:166:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18876,"nodeType":"Block","src":"12692:42:58","statements":[{"expression":{"arguments":[{"expression":{"id":18872,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18866,"src":"12716:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12720:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"12716:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}],"id":18871,"name":"length","nodeType":"Identifier","overloadedDeclarations":[18186,18415,18628,18877,19099],"referencedDeclaration":18186,"src":"12709:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":18874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12709:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18870,"id":18875,"nodeType":"Return","src":"12702:25:58"}]},"documentation":{"id":18863,"nodeType":"StructuredDocumentation","src":"12537:72:58","text":" @dev Returns the number of elements in the map. O(1)."},"id":18877,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"12623:6:58","nodeType":"FunctionDefinition","parameters":{"id":18867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18866,"mutability":"mutable","name":"map","nameLocation":"12655:3:58","nodeType":"VariableDeclaration","scope":18877,"src":"12630:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18865,"nodeType":"UserDefinedTypeName","pathNode":{"id":18864,"name":"AddressToUintMap","nameLocations":["12630:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"12630:16:58"},"referencedDeclaration":18775,"src":"12630:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"}],"src":"12629:30:58"},"returnParameters":{"id":18870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18877,"src":"12683:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18868,"name":"uint256","nodeType":"ElementaryTypeName","src":"12683:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12682:9:58"},"scope":19207,"src":"12614:120:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18916,"nodeType":"Block","src":"13169:134:58","statements":[{"assignments":[18891,18893],"declarations":[{"constant":false,"id":18891,"mutability":"mutable","name":"key","nameLocation":"13188:3:58","nodeType":"VariableDeclaration","scope":18916,"src":"13180:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13180:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18893,"mutability":"mutable","name":"value","nameLocation":"13201:5:58","nodeType":"VariableDeclaration","scope":18916,"src":"13193:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13193:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18899,"initialValue":{"arguments":[{"expression":{"id":18895,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18881,"src":"13213:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13217:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"13213:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":18897,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18883,"src":"13225:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18894,"name":"at","nodeType":"Identifier","overloadedDeclarations":[18215,18449,18668,18917,19130],"referencedDeclaration":18215,"src":"13210:2:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":18898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13210:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"13179:52:58"},{"expression":{"components":[{"arguments":[{"arguments":[{"arguments":[{"id":18906,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18891,"src":"13273:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13265:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18904,"name":"uint256","nodeType":"ElementaryTypeName","src":"13265:7:58","typeDescriptions":{}}},"id":18907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13265:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13257:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18902,"name":"uint160","nodeType":"ElementaryTypeName","src":"13257:7:58","typeDescriptions":{}}},"id":18908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13257:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13249:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18900,"name":"address","nodeType":"ElementaryTypeName","src":"13249:7:58","typeDescriptions":{}}},"id":18909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13249:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":18912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18893,"src":"13289:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13281:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18910,"name":"uint256","nodeType":"ElementaryTypeName","src":"13281:7:58","typeDescriptions":{}}},"id":18913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13281:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18914,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13248:48:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":18889,"id":18915,"nodeType":"Return","src":"13241:55:58"}]},"documentation":{"id":18878,"nodeType":"StructuredDocumentation","src":"12740:326:58","text":" @dev Returns the element 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":18917,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"13080:2:58","nodeType":"FunctionDefinition","parameters":{"id":18884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18881,"mutability":"mutable","name":"map","nameLocation":"13108:3:58","nodeType":"VariableDeclaration","scope":18917,"src":"13083:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18880,"nodeType":"UserDefinedTypeName","pathNode":{"id":18879,"name":"AddressToUintMap","nameLocations":["13083:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"13083:16:58"},"referencedDeclaration":18775,"src":"13083:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18883,"mutability":"mutable","name":"index","nameLocation":"13121:5:58","nodeType":"VariableDeclaration","scope":18917,"src":"13113:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18882,"name":"uint256","nodeType":"ElementaryTypeName","src":"13113:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13082:45:58"},"returnParameters":{"id":18889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18917,"src":"13151:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18885,"name":"address","nodeType":"ElementaryTypeName","src":"13151:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18917,"src":"13160:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18887,"name":"uint256","nodeType":"ElementaryTypeName","src":"13160:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13150:18:58"},"scope":19207,"src":"13071:232:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18956,"nodeType":"Block","src":"13541:141:58","statements":[{"assignments":[18931,18933],"declarations":[{"constant":false,"id":18931,"mutability":"mutable","name":"success","nameLocation":"13557:7:58","nodeType":"VariableDeclaration","scope":18956,"src":"13552:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18930,"name":"bool","nodeType":"ElementaryTypeName","src":"13552:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18933,"mutability":"mutable","name":"value","nameLocation":"13574:5:58","nodeType":"VariableDeclaration","scope":18956,"src":"13566:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13566:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":18948,"initialValue":{"arguments":[{"expression":{"id":18935,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18921,"src":"13590:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13594:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"13590:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":18943,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18923,"src":"13626:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13618:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18941,"name":"uint160","nodeType":"ElementaryTypeName","src":"13618:7:58","typeDescriptions":{}}},"id":18944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13618:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13610:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18939,"name":"uint256","nodeType":"ElementaryTypeName","src":"13610:7:58","typeDescriptions":{}}},"id":18945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13610:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13602:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13602:7:58","typeDescriptions":{}}},"id":18946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13602:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18934,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[18259,18483,18708,18957,19161],"referencedDeclaration":18259,"src":"13583:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":18947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13583:50:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"13551:82:58"},{"expression":{"components":[{"id":18949,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18931,"src":"13651:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":18952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18933,"src":"13668:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13660:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18950,"name":"uint256","nodeType":"ElementaryTypeName","src":"13660:7:58","typeDescriptions":{}}},"id":18953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13660:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13650:25:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":18929,"id":18955,"nodeType":"Return","src":"13643:32:58"}]},"documentation":{"id":18918,"nodeType":"StructuredDocumentation","src":"13309:130:58","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":18957,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"13453:6:58","nodeType":"FunctionDefinition","parameters":{"id":18924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18921,"mutability":"mutable","name":"map","nameLocation":"13485:3:58","nodeType":"VariableDeclaration","scope":18957,"src":"13460:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18920,"nodeType":"UserDefinedTypeName","pathNode":{"id":18919,"name":"AddressToUintMap","nameLocations":["13460:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"13460:16:58"},"referencedDeclaration":18775,"src":"13460:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18923,"mutability":"mutable","name":"key","nameLocation":"13498:3:58","nodeType":"VariableDeclaration","scope":18957,"src":"13490:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18922,"name":"address","nodeType":"ElementaryTypeName","src":"13490:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13459:43:58"},"returnParameters":{"id":18929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18957,"src":"13526:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18925,"name":"bool","nodeType":"ElementaryTypeName","src":"13526:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18957,"src":"13532:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18927,"name":"uint256","nodeType":"ElementaryTypeName","src":"13532:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13525:15:58"},"scope":19207,"src":"13444:238:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18986,"nodeType":"Block","src":"13921:80:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":18971,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18961,"src":"13950:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":18972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13954:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"13950:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":18979,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18963,"src":"13986:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13978:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":18977,"name":"uint160","nodeType":"ElementaryTypeName","src":"13978:7:58","typeDescriptions":{}}},"id":18980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13978:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":18976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13970:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18975,"name":"uint256","nodeType":"ElementaryTypeName","src":"13970:7:58","typeDescriptions":{}}},"id":18981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13970:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13962:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13962:7:58","typeDescriptions":{}}},"id":18982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13962:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18970,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18292,"src":"13946:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":18983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13946:47:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13938:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":18968,"name":"uint256","nodeType":"ElementaryTypeName","src":"13938:7:58","typeDescriptions":{}}},"id":18984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13938:56:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18967,"id":18985,"nodeType":"Return","src":"13931:63:58"}]},"documentation":{"id":18958,"nodeType":"StructuredDocumentation","src":"13688:140:58","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":18987,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"13842:3:58","nodeType":"FunctionDefinition","parameters":{"id":18964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18961,"mutability":"mutable","name":"map","nameLocation":"13871:3:58","nodeType":"VariableDeclaration","scope":18987,"src":"13846:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18960,"nodeType":"UserDefinedTypeName","pathNode":{"id":18959,"name":"AddressToUintMap","nameLocations":["13846:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"13846:16:58"},"referencedDeclaration":18775,"src":"13846:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18963,"mutability":"mutable","name":"key","nameLocation":"13884:3:58","nodeType":"VariableDeclaration","scope":18987,"src":"13876:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18962,"name":"address","nodeType":"ElementaryTypeName","src":"13876:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13845:43:58"},"returnParameters":{"id":18967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18987,"src":"13912:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18965,"name":"uint256","nodeType":"ElementaryTypeName","src":"13912:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13911:9:58"},"scope":19207,"src":"13833:168:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19019,"nodeType":"Block","src":"14427:94:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":19003,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"14456:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap storage pointer"}},"id":19004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14460:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":18774,"src":"14456:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":19011,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18993,"src":"14492:3:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14484:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":19009,"name":"uint160","nodeType":"ElementaryTypeName","src":"14484:7:58","typeDescriptions":{}}},"id":19012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14484:12:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":19008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14476:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19007,"name":"uint256","nodeType":"ElementaryTypeName","src":"14476:7:58","typeDescriptions":{}}},"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14476:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14468:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14468:7:58","typeDescriptions":{}}},"id":19014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14468:30:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19015,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18995,"src":"14500:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19002,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18327,"src":"14452:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":19016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14452:61:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14444:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19000,"name":"uint256","nodeType":"ElementaryTypeName","src":"14444:7:58","typeDescriptions":{}}},"id":19017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14444:70:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18999,"id":19018,"nodeType":"Return","src":"14437:77:58"}]},"documentation":{"id":18988,"nodeType":"StructuredDocumentation","src":"14007:269:58","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":19020,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"14290:3:58","nodeType":"FunctionDefinition","parameters":{"id":18996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18991,"mutability":"mutable","name":"map","nameLocation":"14328:3:58","nodeType":"VariableDeclaration","scope":19020,"src":"14303:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"},"typeName":{"id":18990,"nodeType":"UserDefinedTypeName","pathNode":{"id":18989,"name":"AddressToUintMap","nameLocations":["14303:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":18775,"src":"14303:16:58"},"referencedDeclaration":18775,"src":"14303:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$18775_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}},"visibility":"internal"},{"constant":false,"id":18993,"mutability":"mutable","name":"key","nameLocation":"14349:3:58","nodeType":"VariableDeclaration","scope":19020,"src":"14341:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18992,"name":"address","nodeType":"ElementaryTypeName","src":"14341:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18995,"mutability":"mutable","name":"errorMessage","nameLocation":"14376:12:58","nodeType":"VariableDeclaration","scope":19020,"src":"14362:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18994,"name":"string","nodeType":"ElementaryTypeName","src":"14362:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14293:101:58"},"returnParameters":{"id":18999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18998,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19020,"src":"14418:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18997,"name":"uint256","nodeType":"ElementaryTypeName","src":"14418:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14417:9:58"},"scope":19207,"src":"14281:240:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableMap.Bytes32ToUintMap","id":19024,"members":[{"constant":false,"id":19023,"mutability":"mutable","name":"_inner","nameLocation":"14606:6:58","nodeType":"VariableDeclaration","scope":19024,"src":"14586:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"},"typeName":{"id":19022,"nodeType":"UserDefinedTypeName","pathNode":{"id":19021,"name":"Bytes32ToBytes32Map","nameLocations":["14586:19:58"],"nodeType":"IdentifierPath","referencedDeclaration":18101,"src":"14586:19:58"},"referencedDeclaration":18101,"src":"14586:19:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToBytes32Map"}},"visibility":"internal"}],"name":"Bytes32ToUintMap","nameLocation":"14559:16:58","nodeType":"StructDefinition","scope":19207,"src":"14552:67:58","visibility":"public"},{"body":{"id":19047,"nodeType":"Block","src":"14971:60:58","statements":[{"expression":{"arguments":[{"expression":{"id":19038,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19028,"src":"14992:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14996:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"14992:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19040,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19030,"src":"15004:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":19043,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19032,"src":"15017:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15009:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15009:7:58","typeDescriptions":{}}},"id":19044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15009:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19037,"name":"set","nodeType":"Identifier","overloadedDeclarations":[18129,18358,18571,18808,19048],"referencedDeclaration":18129,"src":"14988:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,bytes32) returns (bool)"}},"id":19045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14988:36:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19036,"id":19046,"nodeType":"Return","src":"14981:43:58"}]},"documentation":{"id":19025,"nodeType":"StructuredDocumentation","src":"14625:216:58","text":" @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."},"id":19048,"implemented":true,"kind":"function","modifiers":[],"name":"set","nameLocation":"14855:3:58","nodeType":"FunctionDefinition","parameters":{"id":19033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19028,"mutability":"mutable","name":"map","nameLocation":"14893:3:58","nodeType":"VariableDeclaration","scope":19048,"src":"14868:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19027,"nodeType":"UserDefinedTypeName","pathNode":{"id":19026,"name":"Bytes32ToUintMap","nameLocations":["14868:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"14868:16:58"},"referencedDeclaration":19024,"src":"14868:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19030,"mutability":"mutable","name":"key","nameLocation":"14914:3:58","nodeType":"VariableDeclaration","scope":19048,"src":"14906:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14906:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19032,"mutability":"mutable","name":"value","nameLocation":"14935:5:58","nodeType":"VariableDeclaration","scope":19048,"src":"14927:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19031,"name":"uint256","nodeType":"ElementaryTypeName","src":"14927:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14858:88:58"},"returnParameters":{"id":19036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19048,"src":"14965:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19034,"name":"bool","nodeType":"ElementaryTypeName","src":"14965:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14964:6:58"},"scope":19207,"src":"14846:185:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19065,"nodeType":"Block","src":"15273:47:58","statements":[{"expression":{"arguments":[{"expression":{"id":19060,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19052,"src":"15297:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15301:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"15297:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19062,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19054,"src":"15309:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19059,"name":"remove","nodeType":"Identifier","overloadedDeclarations":[18153,18379,18592,18835,19066],"referencedDeclaration":18153,"src":"15290:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) returns (bool)"}},"id":19063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15290:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19058,"id":19064,"nodeType":"Return","src":"15283:30:58"}]},"documentation":{"id":19049,"nodeType":"StructuredDocumentation","src":"15037:148:58","text":" @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."},"id":19066,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"15199:6:58","nodeType":"FunctionDefinition","parameters":{"id":19055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19052,"mutability":"mutable","name":"map","nameLocation":"15231:3:58","nodeType":"VariableDeclaration","scope":19066,"src":"15206:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19051,"nodeType":"UserDefinedTypeName","pathNode":{"id":19050,"name":"Bytes32ToUintMap","nameLocations":["15206:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"15206:16:58"},"referencedDeclaration":19024,"src":"15206:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19054,"mutability":"mutable","name":"key","nameLocation":"15244:3:58","nodeType":"VariableDeclaration","scope":19066,"src":"15236:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15236:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15205:43:58"},"returnParameters":{"id":19058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19066,"src":"15267:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19056,"name":"bool","nodeType":"ElementaryTypeName","src":"15267:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15266:6:58"},"scope":19207,"src":"15190:130:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19083,"nodeType":"Block","src":"15489:49:58","statements":[{"expression":{"arguments":[{"expression":{"id":19078,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19070,"src":"15515:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15519:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"15515:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19080,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19072,"src":"15527:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19077,"name":"contains","nodeType":"Identifier","overloadedDeclarations":[18171,18400,18613,18862,19084],"referencedDeclaration":18171,"src":"15506:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool)"}},"id":19081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15506:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19076,"id":19082,"nodeType":"Return","src":"15499:32:58"}]},"documentation":{"id":19067,"nodeType":"StructuredDocumentation","src":"15326:68:58","text":" @dev Returns true if the key is in the map. O(1)."},"id":19084,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"15408:8:58","nodeType":"FunctionDefinition","parameters":{"id":19073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19070,"mutability":"mutable","name":"map","nameLocation":"15442:3:58","nodeType":"VariableDeclaration","scope":19084,"src":"15417:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19069,"nodeType":"UserDefinedTypeName","pathNode":{"id":19068,"name":"Bytes32ToUintMap","nameLocations":["15417:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"15417:16:58"},"referencedDeclaration":19024,"src":"15417:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19072,"mutability":"mutable","name":"key","nameLocation":"15455:3:58","nodeType":"VariableDeclaration","scope":19084,"src":"15447:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15447:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15416:43:58"},"returnParameters":{"id":19076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19084,"src":"15483:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19074,"name":"bool","nodeType":"ElementaryTypeName","src":"15483:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15482:6:58"},"scope":19207,"src":"15399:139:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19098,"nodeType":"Block","src":"15699:42:58","statements":[{"expression":{"arguments":[{"expression":{"id":19094,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19088,"src":"15723:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15727:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"15723:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}],"id":19093,"name":"length","nodeType":"Identifier","overloadedDeclarations":[18186,18415,18628,18877,19099],"referencedDeclaration":18186,"src":"15716:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer) view returns (uint256)"}},"id":19096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15716:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19092,"id":19097,"nodeType":"Return","src":"15709:25:58"}]},"documentation":{"id":19085,"nodeType":"StructuredDocumentation","src":"15544:72:58","text":" @dev Returns the number of elements in the map. O(1)."},"id":19099,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"15630:6:58","nodeType":"FunctionDefinition","parameters":{"id":19089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19088,"mutability":"mutable","name":"map","nameLocation":"15662:3:58","nodeType":"VariableDeclaration","scope":19099,"src":"15637:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19087,"nodeType":"UserDefinedTypeName","pathNode":{"id":19086,"name":"Bytes32ToUintMap","nameLocations":["15637:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"15637:16:58"},"referencedDeclaration":19024,"src":"15637:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"}],"src":"15636:30:58"},"returnParameters":{"id":19092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19099,"src":"15690:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19090,"name":"uint256","nodeType":"ElementaryTypeName","src":"15690:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15689:9:58"},"scope":19207,"src":"15621:120:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19129,"nodeType":"Block","src":"16176:107:58","statements":[{"assignments":[19113,19115],"declarations":[{"constant":false,"id":19113,"mutability":"mutable","name":"key","nameLocation":"16195:3:58","nodeType":"VariableDeclaration","scope":19129,"src":"16187:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16187:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19115,"mutability":"mutable","name":"value","nameLocation":"16208:5:58","nodeType":"VariableDeclaration","scope":19129,"src":"16200:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16200:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19121,"initialValue":{"arguments":[{"expression":{"id":19117,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19103,"src":"16220:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16224:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"16220:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19119,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19105,"src":"16232:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19116,"name":"at","nodeType":"Identifier","overloadedDeclarations":[18215,18449,18668,18917,19130],"referencedDeclaration":18215,"src":"16217:2:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,uint256) view returns (bytes32,bytes32)"}},"id":19120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16217:21:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16186:52:58"},{"expression":{"components":[{"id":19122,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19113,"src":"16256:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":19125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"16269:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16261:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19123,"name":"uint256","nodeType":"ElementaryTypeName","src":"16261:7:58","typeDescriptions":{}}},"id":19126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19127,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16255:21:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"functionReturnParameters":19111,"id":19128,"nodeType":"Return","src":"16248:28:58"}]},"documentation":{"id":19100,"nodeType":"StructuredDocumentation","src":"15747:326:58","text":" @dev Returns the element 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":19130,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"16087:2:58","nodeType":"FunctionDefinition","parameters":{"id":19106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19103,"mutability":"mutable","name":"map","nameLocation":"16115:3:58","nodeType":"VariableDeclaration","scope":19130,"src":"16090:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19102,"nodeType":"UserDefinedTypeName","pathNode":{"id":19101,"name":"Bytes32ToUintMap","nameLocations":["16090:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"16090:16:58"},"referencedDeclaration":19024,"src":"16090:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19105,"mutability":"mutable","name":"index","nameLocation":"16128:5:58","nodeType":"VariableDeclaration","scope":19130,"src":"16120:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19104,"name":"uint256","nodeType":"ElementaryTypeName","src":"16120:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16089:45:58"},"returnParameters":{"id":19111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19130,"src":"16158:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16158:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19130,"src":"16167:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19109,"name":"uint256","nodeType":"ElementaryTypeName","src":"16167:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16157:18:58"},"scope":19207,"src":"16078:205:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19160,"nodeType":"Block","src":"16521:114:58","statements":[{"assignments":[19144,19146],"declarations":[{"constant":false,"id":19144,"mutability":"mutable","name":"success","nameLocation":"16537:7:58","nodeType":"VariableDeclaration","scope":19160,"src":"16532:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19143,"name":"bool","nodeType":"ElementaryTypeName","src":"16532:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19146,"mutability":"mutable","name":"value","nameLocation":"16554:5:58","nodeType":"VariableDeclaration","scope":19160,"src":"16546:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16546:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19152,"initialValue":{"arguments":[{"expression":{"id":19148,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19134,"src":"16570:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16574:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"16570:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19150,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19136,"src":"16582:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19147,"name":"tryGet","nodeType":"Identifier","overloadedDeclarations":[18259,18483,18708,18957,19161],"referencedDeclaration":18259,"src":"16563:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bool,bytes32)"}},"id":19151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16563:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16531:55:58"},{"expression":{"components":[{"id":19153,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19144,"src":"16604:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":19156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19146,"src":"16621:5:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16613:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19154,"name":"uint256","nodeType":"ElementaryTypeName","src":"16613:7:58","typeDescriptions":{}}},"id":19157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16613:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16603:25:58","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":19142,"id":19159,"nodeType":"Return","src":"16596:32:58"}]},"documentation":{"id":19131,"nodeType":"StructuredDocumentation","src":"16289:130:58","text":" @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map."},"id":19161,"implemented":true,"kind":"function","modifiers":[],"name":"tryGet","nameLocation":"16433:6:58","nodeType":"FunctionDefinition","parameters":{"id":19137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19134,"mutability":"mutable","name":"map","nameLocation":"16465:3:58","nodeType":"VariableDeclaration","scope":19161,"src":"16440:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19133,"nodeType":"UserDefinedTypeName","pathNode":{"id":19132,"name":"Bytes32ToUintMap","nameLocations":["16440:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"16440:16:58"},"referencedDeclaration":19024,"src":"16440:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19136,"mutability":"mutable","name":"key","nameLocation":"16478:3:58","nodeType":"VariableDeclaration","scope":19161,"src":"16470:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16470:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16439:43:58"},"returnParameters":{"id":19142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19161,"src":"16506:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19138,"name":"bool","nodeType":"ElementaryTypeName","src":"16506:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19161,"src":"16512:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19140,"name":"uint256","nodeType":"ElementaryTypeName","src":"16512:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16505:15:58"},"scope":19207,"src":"16424:211:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19181,"nodeType":"Block","src":"16874:53:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":19175,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19165,"src":"16903:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16907:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"16903:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19177,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19167,"src":"16915:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19174,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18292,"src":"16899:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32) view returns (bytes32)"}},"id":19178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16899:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16891:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19172,"name":"uint256","nodeType":"ElementaryTypeName","src":"16891:7:58","typeDescriptions":{}}},"id":19179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16891:29:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19171,"id":19180,"nodeType":"Return","src":"16884:36:58"}]},"documentation":{"id":19162,"nodeType":"StructuredDocumentation","src":"16641:140:58","text":" @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map."},"id":19182,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"16795:3:58","nodeType":"FunctionDefinition","parameters":{"id":19168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19165,"mutability":"mutable","name":"map","nameLocation":"16824:3:58","nodeType":"VariableDeclaration","scope":19182,"src":"16799:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19164,"nodeType":"UserDefinedTypeName","pathNode":{"id":19163,"name":"Bytes32ToUintMap","nameLocations":["16799:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"16799:16:58"},"referencedDeclaration":19024,"src":"16799:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19167,"mutability":"mutable","name":"key","nameLocation":"16837:3:58","nodeType":"VariableDeclaration","scope":19182,"src":"16829:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16829:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16798:43:58"},"returnParameters":{"id":19171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19182,"src":"16865:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19169,"name":"uint256","nodeType":"ElementaryTypeName","src":"16865:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16864:9:58"},"scope":19207,"src":"16786:141:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19205,"nodeType":"Block","src":"17353:67:58","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":19198,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19186,"src":"17382:3:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap storage pointer"}},"id":19199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17386:6:58","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19023,"src":"17382:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"}},{"id":19200,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19188,"src":"17394:3:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19201,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19190,"src":"17399:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32ToBytes32Map_$18101_storage","typeString":"struct EnumerableMap.Bytes32ToBytes32Map storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":19197,"name":"get","nodeType":"Identifier","overloadedDeclarations":[18292,18327,18507,18534,18738,18771,18987,19020,19182,19206],"referencedDeclaration":18327,"src":"17378:3:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32ToBytes32Map_$18101_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct EnumerableMap.Bytes32ToBytes32Map storage pointer,bytes32,string memory) view returns (bytes32)"}},"id":19202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17378:34:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17370:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19195,"name":"uint256","nodeType":"ElementaryTypeName","src":"17370:7:58","typeDescriptions":{}}},"id":19203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17370:43:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19194,"id":19204,"nodeType":"Return","src":"17363:50:58"}]},"documentation":{"id":19183,"nodeType":"StructuredDocumentation","src":"16933:269:58","text":" @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}."},"id":19206,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"17216:3:58","nodeType":"FunctionDefinition","parameters":{"id":19191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19186,"mutability":"mutable","name":"map","nameLocation":"17254:3:58","nodeType":"VariableDeclaration","scope":19206,"src":"17229:28:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"},"typeName":{"id":19185,"nodeType":"UserDefinedTypeName","pathNode":{"id":19184,"name":"Bytes32ToUintMap","nameLocations":["17229:16:58"],"nodeType":"IdentifierPath","referencedDeclaration":19024,"src":"17229:16:58"},"referencedDeclaration":19024,"src":"17229:16:58","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32ToUintMap_$19024_storage_ptr","typeString":"struct EnumerableMap.Bytes32ToUintMap"}},"visibility":"internal"},{"constant":false,"id":19188,"mutability":"mutable","name":"key","nameLocation":"17275:3:58","nodeType":"VariableDeclaration","scope":19206,"src":"17267:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17267:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19190,"mutability":"mutable","name":"errorMessage","nameLocation":"17302:12:58","nodeType":"VariableDeclaration","scope":19206,"src":"17288:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19189,"name":"string","nodeType":"ElementaryTypeName","src":"17288:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17219:101:58"},"returnParameters":{"id":19194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19206,"src":"17344:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19192,"name":"uint256","nodeType":"ElementaryTypeName","src":"17344:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17343:9:58"},"scope":19207,"src":"17207:213:58","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":19208,"src":"1621:15801:58","usedErrors":[]}],"src":"205:17218:58"},"id":58},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[19820]},"id":19821,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":19209,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"205:23:59"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":19210,"nodeType":"StructuredDocumentation","src":"230:1090:59","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":19820,"linearizedBaseContracts":[19820],"name":"EnumerableSet","nameLocation":"1329:13:59","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":19218,"members":[{"constant":false,"id":19213,"mutability":"mutable","name":"_values","nameLocation":"1853:7:59","nodeType":"VariableDeclaration","scope":19218,"src":"1843:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1843:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19212,"nodeType":"ArrayTypeName","src":"1843:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":19217,"mutability":"mutable","name":"_indexes","nameLocation":"2021:8:59","nodeType":"VariableDeclaration","scope":19218,"src":"1993:36:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":19216,"keyType":{"id":19214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2001:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1993:27:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":19215,"name":"uint256","nodeType":"ElementaryTypeName","src":"2012:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1796:3:59","nodeType":"StructDefinition","scope":19820,"src":"1789:247:59","visibility":"public"},{"body":{"id":19259,"nodeType":"Block","src":"2275:335:59","statements":[{"condition":{"id":19233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2289:22:59","subExpression":{"arguments":[{"id":19230,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19222,"src":"2300:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":19231,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19224,"src":"2305:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19229,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"2290:9:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":19232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2290:21:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19257,"nodeType":"Block","src":"2567:37:59","statements":[{"expression":{"hexValue":"66616c7365","id":19255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2588:5:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19228,"id":19256,"nodeType":"Return","src":"2581:12:59"}]},"id":19258,"nodeType":"IfStatement","src":"2285:319:59","trueBody":{"id":19254,"nodeType":"Block","src":"2313:248:59","statements":[{"expression":{"arguments":[{"id":19239,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19224,"src":"2344:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":19234,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19222,"src":"2327:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2331:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"2327:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2339:4:59","memberName":"push","nodeType":"MemberAccess","src":"2327:16:59","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":19240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2327:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19241,"nodeType":"ExpressionStatement","src":"2327:23:59"},{"expression":{"id":19250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":19242,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19222,"src":"2485:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2489:8:59","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":19217,"src":"2485:12:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19246,"indexExpression":{"id":19244,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19224,"src":"2498:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2485:19:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19247,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19222,"src":"2507:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2511:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"2507:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2519:6:59","memberName":"length","nodeType":"MemberAccess","src":"2507:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2485:40:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19251,"nodeType":"ExpressionStatement","src":"2485:40:59"},{"expression":{"hexValue":"74727565","id":19252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2546:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19228,"id":19253,"nodeType":"Return","src":"2539:11:59"}]}}]},"documentation":{"id":19219,"nodeType":"StructuredDocumentation","src":"2042:159:59","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":19260,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2215:4:59","nodeType":"FunctionDefinition","parameters":{"id":19225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19222,"mutability":"mutable","name":"set","nameLocation":"2232:3:59","nodeType":"VariableDeclaration","scope":19260,"src":"2220:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19221,"nodeType":"UserDefinedTypeName","pathNode":{"id":19220,"name":"Set","nameLocations":["2220:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"2220:3:59"},"referencedDeclaration":19218,"src":"2220:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":19224,"mutability":"mutable","name":"value","nameLocation":"2245:5:59","nodeType":"VariableDeclaration","scope":19260,"src":"2237:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2237:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2219:32:59"},"returnParameters":{"id":19228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19260,"src":"2269:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19226,"name":"bool","nodeType":"ElementaryTypeName","src":"2269:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2268:6:59"},"scope":19820,"src":"2206:404:59","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":19343,"nodeType":"Block","src":"2850:1316:59","statements":[{"assignments":[19272],"declarations":[{"constant":false,"id":19272,"mutability":"mutable","name":"valueIndex","nameLocation":"2968:10:59","nodeType":"VariableDeclaration","scope":19343,"src":"2960:18:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19271,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19277,"initialValue":{"baseExpression":{"expression":{"id":19273,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"2981:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2985:8:59","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":19217,"src":"2981:12:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19276,"indexExpression":{"id":19275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19266,"src":"2994:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2981:19:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2960:40:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19278,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19272,"src":"3015:10:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3029:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3015:15:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19341,"nodeType":"Block","src":"4123:37:59","statements":[{"expression":{"hexValue":"66616c7365","id":19339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4144:5:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19270,"id":19340,"nodeType":"Return","src":"4137:12:59"}]},"id":19342,"nodeType":"IfStatement","src":"3011:1149:59","trueBody":{"id":19338,"nodeType":"Block","src":"3032:1085:59","statements":[{"assignments":[19282],"declarations":[{"constant":false,"id":19282,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3392:13:59","nodeType":"VariableDeclaration","scope":19338,"src":"3384:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19281,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19286,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19283,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19272,"src":"3408:10:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":19284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3421:1:59","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3408:14:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3384:38:59"},{"assignments":[19288],"declarations":[{"constant":false,"id":19288,"mutability":"mutable","name":"lastIndex","nameLocation":"3444:9:59","nodeType":"VariableDeclaration","scope":19338,"src":"3436:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19287,"name":"uint256","nodeType":"ElementaryTypeName","src":"3436:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19294,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":19289,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"3456:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3460:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"3456:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3468:6:59","memberName":"length","nodeType":"MemberAccess","src":"3456:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":19292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3477:1:59","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3456:22:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3436:42:59"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19295,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19288,"src":"3497:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":19296,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19282,"src":"3510:13:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3497:26:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19322,"nodeType":"IfStatement","src":"3493:398:59","trueBody":{"id":19321,"nodeType":"Block","src":"3525:366:59","statements":[{"assignments":[19299],"declarations":[{"constant":false,"id":19299,"mutability":"mutable","name":"lastValue","nameLocation":"3551:9:59","nodeType":"VariableDeclaration","scope":19321,"src":"3543:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3543:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":19304,"initialValue":{"baseExpression":{"expression":{"id":19300,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"3563:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3567:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"3563:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19303,"indexExpression":{"id":19302,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19288,"src":"3575:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3563:22:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3543:42:59"},{"expression":{"id":19311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":19305,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"3685:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"3685:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19309,"indexExpression":{"id":19307,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19282,"src":"3697:13:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3685:26:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19310,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19299,"src":"3714:9:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3685:38:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19312,"nodeType":"ExpressionStatement","src":"3685:38:59"},{"expression":{"id":19319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":19313,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"3797:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3801:8:59","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":19217,"src":"3797:12:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19317,"indexExpression":{"id":19315,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19299,"src":"3810:9:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3797:23:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19318,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19272,"src":"3823:10:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3797:36:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19320,"nodeType":"ExpressionStatement","src":"3797:36:59"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":19323,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"3969:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3973:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"3969:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3981:3:59","memberName":"pop","nodeType":"MemberAccess","src":"3969:15:59","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":19328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3969:17:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19329,"nodeType":"ExpressionStatement","src":"3969:17:59"},{"expression":{"id":19334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4054:26:59","subExpression":{"baseExpression":{"expression":{"id":19330,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19264,"src":"4061:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4065:8:59","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":19217,"src":"4061:12:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19333,"indexExpression":{"id":19332,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19266,"src":"4074:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4061:19:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19335,"nodeType":"ExpressionStatement","src":"4054:26:59"},{"expression":{"hexValue":"74727565","id":19336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4102:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19270,"id":19337,"nodeType":"Return","src":"4095:11:59"}]}}]},"documentation":{"id":19261,"nodeType":"StructuredDocumentation","src":"2616:157:59","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":19344,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2787:7:59","nodeType":"FunctionDefinition","parameters":{"id":19267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19264,"mutability":"mutable","name":"set","nameLocation":"2807:3:59","nodeType":"VariableDeclaration","scope":19344,"src":"2795:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19263,"nodeType":"UserDefinedTypeName","pathNode":{"id":19262,"name":"Set","nameLocations":["2795:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"2795:3:59"},"referencedDeclaration":19218,"src":"2795:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":19266,"mutability":"mutable","name":"value","nameLocation":"2820:5:59","nodeType":"VariableDeclaration","scope":19344,"src":"2812:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2812:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2794:32:59"},"returnParameters":{"id":19270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19344,"src":"2844:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19268,"name":"bool","nodeType":"ElementaryTypeName","src":"2844:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2843:6:59"},"scope":19820,"src":"2778:1388:59","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":19362,"nodeType":"Block","src":"4326:48:59","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":19355,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19348,"src":"4343:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4347:8:59","memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":19217,"src":"4343:12:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19358,"indexExpression":{"id":19357,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19350,"src":"4356:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4343:19:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":19359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4366:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4343:24:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19354,"id":19361,"nodeType":"Return","src":"4336:31:59"}]},"documentation":{"id":19345,"nodeType":"StructuredDocumentation","src":"4172:70:59","text":" @dev Returns true if the value is in the set. O(1)."},"id":19363,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4256:9:59","nodeType":"FunctionDefinition","parameters":{"id":19351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19348,"mutability":"mutable","name":"set","nameLocation":"4278:3:59","nodeType":"VariableDeclaration","scope":19363,"src":"4266:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19347,"nodeType":"UserDefinedTypeName","pathNode":{"id":19346,"name":"Set","nameLocations":["4266:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"4266:3:59"},"referencedDeclaration":19218,"src":"4266:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":19350,"mutability":"mutable","name":"value","nameLocation":"4291:5:59","nodeType":"VariableDeclaration","scope":19363,"src":"4283:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4283:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4265:32:59"},"returnParameters":{"id":19354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19363,"src":"4320:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19352,"name":"bool","nodeType":"ElementaryTypeName","src":"4320:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4319:6:59"},"scope":19820,"src":"4247:127:59","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":19376,"nodeType":"Block","src":"4520:42:59","statements":[{"expression":{"expression":{"expression":{"id":19372,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19367,"src":"4537:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4541:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"4537:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4549:6:59","memberName":"length","nodeType":"MemberAccess","src":"4537:18:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19371,"id":19375,"nodeType":"Return","src":"4530:25:59"}]},"documentation":{"id":19364,"nodeType":"StructuredDocumentation","src":"4380:70:59","text":" @dev Returns the number of values on the set. O(1)."},"id":19377,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4464:7:59","nodeType":"FunctionDefinition","parameters":{"id":19368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19367,"mutability":"mutable","name":"set","nameLocation":"4484:3:59","nodeType":"VariableDeclaration","scope":19377,"src":"4472:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19366,"nodeType":"UserDefinedTypeName","pathNode":{"id":19365,"name":"Set","nameLocations":["4472:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"4472:3:59"},"referencedDeclaration":19218,"src":"4472:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4471:17:59"},"returnParameters":{"id":19371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19377,"src":"4511:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19369,"name":"uint256","nodeType":"ElementaryTypeName","src":"4511:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4510:9:59"},"scope":19820,"src":"4455:107:59","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":19393,"nodeType":"Block","src":"4980:42:59","statements":[{"expression":{"baseExpression":{"expression":{"id":19388,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19381,"src":"4997:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5001:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"4997:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":19391,"indexExpression":{"id":19390,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"5009:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4997:18:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":19387,"id":19392,"nodeType":"Return","src":"4990:25:59"}]},"documentation":{"id":19378,"nodeType":"StructuredDocumentation","src":"4568:331:59","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":19394,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4913:3:59","nodeType":"FunctionDefinition","parameters":{"id":19384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19381,"mutability":"mutable","name":"set","nameLocation":"4929:3:59","nodeType":"VariableDeclaration","scope":19394,"src":"4917:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19380,"nodeType":"UserDefinedTypeName","pathNode":{"id":19379,"name":"Set","nameLocations":["4917:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"4917:3:59"},"referencedDeclaration":19218,"src":"4917:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":19383,"mutability":"mutable","name":"index","nameLocation":"4942:5:59","nodeType":"VariableDeclaration","scope":19394,"src":"4934:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19382,"name":"uint256","nodeType":"ElementaryTypeName","src":"4934:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4916:32:59"},"returnParameters":{"id":19387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19394,"src":"4971:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4971:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4970:9:59"},"scope":19820,"src":"4904:118:59","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":19407,"nodeType":"Block","src":"5636:35:59","statements":[{"expression":{"expression":{"id":19404,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19398,"src":"5653:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":19405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5657:7:59","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":19213,"src":"5653:11:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":19403,"id":19406,"nodeType":"Return","src":"5646:18:59"}]},"documentation":{"id":19395,"nodeType":"StructuredDocumentation","src":"5028:529:59","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":19408,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5571:7:59","nodeType":"FunctionDefinition","parameters":{"id":19399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19398,"mutability":"mutable","name":"set","nameLocation":"5591:3:59","nodeType":"VariableDeclaration","scope":19408,"src":"5579:15:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19397,"nodeType":"UserDefinedTypeName","pathNode":{"id":19396,"name":"Set","nameLocations":["5579:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"5579:3:59"},"referencedDeclaration":19218,"src":"5579:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5578:17:59"},"returnParameters":{"id":19403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19408,"src":"5618:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5618:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19401,"nodeType":"ArrayTypeName","src":"5618:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5617:18:59"},"scope":19820,"src":"5562:109:59","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":19412,"members":[{"constant":false,"id":19411,"mutability":"mutable","name":"_inner","nameLocation":"5728:6:59","nodeType":"VariableDeclaration","scope":19412,"src":"5724:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19410,"nodeType":"UserDefinedTypeName","pathNode":{"id":19409,"name":"Set","nameLocations":["5724:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"5724:3:59"},"referencedDeclaration":19218,"src":"5724:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5703:10:59","nodeType":"StructDefinition","scope":19820,"src":"5696:45:59","visibility":"public"},{"body":{"id":19429,"nodeType":"Block","src":"5987:47:59","statements":[{"expression":{"arguments":[{"expression":{"id":19424,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19416,"src":"6009:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6013:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"6009:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19426,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19418,"src":"6021:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19423,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19260,"src":"6004:4:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6004:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19422,"id":19428,"nodeType":"Return","src":"5997:30:59"}]},"documentation":{"id":19413,"nodeType":"StructuredDocumentation","src":"5747:159:59","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":19430,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5920:3:59","nodeType":"FunctionDefinition","parameters":{"id":19419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19416,"mutability":"mutable","name":"set","nameLocation":"5943:3:59","nodeType":"VariableDeclaration","scope":19430,"src":"5924:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19415,"nodeType":"UserDefinedTypeName","pathNode":{"id":19414,"name":"Bytes32Set","nameLocations":["5924:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"5924:10:59"},"referencedDeclaration":19412,"src":"5924:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":19418,"mutability":"mutable","name":"value","nameLocation":"5956:5:59","nodeType":"VariableDeclaration","scope":19430,"src":"5948:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5948:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5923:39:59"},"returnParameters":{"id":19422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19430,"src":"5981:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19420,"name":"bool","nodeType":"ElementaryTypeName","src":"5981:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5980:6:59"},"scope":19820,"src":"5911:123:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19447,"nodeType":"Block","src":"6281:50:59","statements":[{"expression":{"arguments":[{"expression":{"id":19442,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19434,"src":"6306:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6310:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"6306:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19436,"src":"6318:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19441,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19344,"src":"6298:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:26:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19440,"id":19446,"nodeType":"Return","src":"6291:33:59"}]},"documentation":{"id":19431,"nodeType":"StructuredDocumentation","src":"6040:157:59","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":19448,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6211:6:59","nodeType":"FunctionDefinition","parameters":{"id":19437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19434,"mutability":"mutable","name":"set","nameLocation":"6237:3:59","nodeType":"VariableDeclaration","scope":19448,"src":"6218:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19433,"nodeType":"UserDefinedTypeName","pathNode":{"id":19432,"name":"Bytes32Set","nameLocations":["6218:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"6218:10:59"},"referencedDeclaration":19412,"src":"6218:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":19436,"mutability":"mutable","name":"value","nameLocation":"6250:5:59","nodeType":"VariableDeclaration","scope":19448,"src":"6242:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6242:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6217:39:59"},"returnParameters":{"id":19440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19448,"src":"6275:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19438,"name":"bool","nodeType":"ElementaryTypeName","src":"6275:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6274:6:59"},"scope":19820,"src":"6202:129:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19465,"nodeType":"Block","src":"6498:52:59","statements":[{"expression":{"arguments":[{"expression":{"id":19460,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19452,"src":"6525:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6529:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"6525:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19462,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19454,"src":"6537:5:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19459,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"6515:9:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":19463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6515:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19458,"id":19464,"nodeType":"Return","src":"6508:35:59"}]},"documentation":{"id":19449,"nodeType":"StructuredDocumentation","src":"6337:70:59","text":" @dev Returns true if the value is in the set. O(1)."},"id":19466,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6421:8:59","nodeType":"FunctionDefinition","parameters":{"id":19455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19452,"mutability":"mutable","name":"set","nameLocation":"6449:3:59","nodeType":"VariableDeclaration","scope":19466,"src":"6430:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19451,"nodeType":"UserDefinedTypeName","pathNode":{"id":19450,"name":"Bytes32Set","nameLocations":["6430:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"6430:10:59"},"referencedDeclaration":19412,"src":"6430:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":19454,"mutability":"mutable","name":"value","nameLocation":"6462:5:59","nodeType":"VariableDeclaration","scope":19466,"src":"6454:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6454:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6429:39:59"},"returnParameters":{"id":19458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19466,"src":"6492:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19456,"name":"bool","nodeType":"ElementaryTypeName","src":"6492:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6491:6:59"},"scope":19820,"src":"6412:138:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19480,"nodeType":"Block","src":"6703:43:59","statements":[{"expression":{"arguments":[{"expression":{"id":19476,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19470,"src":"6728:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6732:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"6728:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19475,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19377,"src":"6720:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":19478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6720:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19474,"id":19479,"nodeType":"Return","src":"6713:26:59"}]},"documentation":{"id":19467,"nodeType":"StructuredDocumentation","src":"6556:70:59","text":" @dev Returns the number of values in the set. O(1)."},"id":19481,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6640:6:59","nodeType":"FunctionDefinition","parameters":{"id":19471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19470,"mutability":"mutable","name":"set","nameLocation":"6666:3:59","nodeType":"VariableDeclaration","scope":19481,"src":"6647:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19469,"nodeType":"UserDefinedTypeName","pathNode":{"id":19468,"name":"Bytes32Set","nameLocations":["6647:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"6647:10:59"},"referencedDeclaration":19412,"src":"6647:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6646:24:59"},"returnParameters":{"id":19474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19481,"src":"6694:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19472,"name":"uint256","nodeType":"ElementaryTypeName","src":"6694:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6693:9:59"},"scope":19820,"src":"6631:115:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19498,"nodeType":"Block","src":"7171:46:59","statements":[{"expression":{"arguments":[{"expression":{"id":19493,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19485,"src":"7192:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7196:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"7192:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19495,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19487,"src":"7204:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19492,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19394,"src":"7188:3:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":19496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7188:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":19491,"id":19497,"nodeType":"Return","src":"7181:29:59"}]},"documentation":{"id":19482,"nodeType":"StructuredDocumentation","src":"6752:331:59","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":19499,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7097:2:59","nodeType":"FunctionDefinition","parameters":{"id":19488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19485,"mutability":"mutable","name":"set","nameLocation":"7119:3:59","nodeType":"VariableDeclaration","scope":19499,"src":"7100:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19484,"nodeType":"UserDefinedTypeName","pathNode":{"id":19483,"name":"Bytes32Set","nameLocations":["7100:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"7100:10:59"},"referencedDeclaration":19412,"src":"7100:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":19487,"mutability":"mutable","name":"index","nameLocation":"7132:5:59","nodeType":"VariableDeclaration","scope":19499,"src":"7124:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19486,"name":"uint256","nodeType":"ElementaryTypeName","src":"7124:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7099:39:59"},"returnParameters":{"id":19491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19490,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19499,"src":"7162:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7162:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7161:9:59"},"scope":19820,"src":"7088:129:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19528,"nodeType":"Block","src":"7838:219:59","statements":[{"assignments":[19513],"declarations":[{"constant":false,"id":19513,"mutability":"mutable","name":"store","nameLocation":"7865:5:59","nodeType":"VariableDeclaration","scope":19528,"src":"7848:22:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7848:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19512,"nodeType":"ArrayTypeName","src":"7848:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":19518,"initialValue":{"arguments":[{"expression":{"id":19515,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19503,"src":"7881:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":19516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7885:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19411,"src":"7881:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19514,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19408,"src":"7873:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":19517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7873:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7848:44:59"},{"assignments":[19523],"declarations":[{"constant":false,"id":19523,"mutability":"mutable","name":"result","nameLocation":"7919:6:59","nodeType":"VariableDeclaration","scope":19528,"src":"7902:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7902:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19522,"nodeType":"ArrayTypeName","src":"7902:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":19524,"nodeType":"VariableDeclarationStatement","src":"7902:23:59"},{"AST":{"nodeType":"YulBlock","src":"7988:39:59","statements":[{"nodeType":"YulAssignment","src":"8002:15:59","value":{"name":"store","nodeType":"YulIdentifier","src":"8012:5:59"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8002:6:59"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":19523,"isOffset":false,"isSlot":false,"src":"8002:6:59","valueSize":1},{"declaration":19513,"isOffset":false,"isSlot":false,"src":"8012:5:59","valueSize":1}],"id":19525,"nodeType":"InlineAssembly","src":"7979:48:59"},{"expression":{"id":19526,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19523,"src":"8044:6:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":19508,"id":19527,"nodeType":"Return","src":"8037:13:59"}]},"documentation":{"id":19500,"nodeType":"StructuredDocumentation","src":"7223:529:59","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":19529,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7766:6:59","nodeType":"FunctionDefinition","parameters":{"id":19504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19503,"mutability":"mutable","name":"set","nameLocation":"7792:3:59","nodeType":"VariableDeclaration","scope":19529,"src":"7773:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":19502,"nodeType":"UserDefinedTypeName","pathNode":{"id":19501,"name":"Bytes32Set","nameLocations":["7773:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19412,"src":"7773:10:59"},"referencedDeclaration":19412,"src":"7773:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$19412_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7772:24:59"},"returnParameters":{"id":19508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19529,"src":"7820:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7820:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19506,"nodeType":"ArrayTypeName","src":"7820:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7819:18:59"},"scope":19820,"src":"7757:300:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":19533,"members":[{"constant":false,"id":19532,"mutability":"mutable","name":"_inner","nameLocation":"8114:6:59","nodeType":"VariableDeclaration","scope":19533,"src":"8110:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19531,"nodeType":"UserDefinedTypeName","pathNode":{"id":19530,"name":"Set","nameLocations":["8110:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"8110:3:59"},"referencedDeclaration":19218,"src":"8110:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8089:10:59","nodeType":"StructDefinition","scope":19820,"src":"8082:45:59","visibility":"public"},{"body":{"id":19559,"nodeType":"Block","src":"8373:74:59","statements":[{"expression":{"arguments":[{"expression":{"id":19545,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19537,"src":"8395:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8399:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"8395:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":19553,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19539,"src":"8431:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8423:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":19551,"name":"uint160","nodeType":"ElementaryTypeName","src":"8423:7:59","typeDescriptions":{}}},"id":19554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8423:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":19550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8415:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19549,"name":"uint256","nodeType":"ElementaryTypeName","src":"8415:7:59","typeDescriptions":{}}},"id":19555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8415:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8407:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8407:7:59","typeDescriptions":{}}},"id":19556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8407:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19544,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19260,"src":"8390:4:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8390:50:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19543,"id":19558,"nodeType":"Return","src":"8383:57:59"}]},"documentation":{"id":19534,"nodeType":"StructuredDocumentation","src":"8133:159:59","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":19560,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8306:3:59","nodeType":"FunctionDefinition","parameters":{"id":19540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19537,"mutability":"mutable","name":"set","nameLocation":"8329:3:59","nodeType":"VariableDeclaration","scope":19560,"src":"8310:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19536,"nodeType":"UserDefinedTypeName","pathNode":{"id":19535,"name":"AddressSet","nameLocations":["8310:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"8310:10:59"},"referencedDeclaration":19533,"src":"8310:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":19539,"mutability":"mutable","name":"value","nameLocation":"8342:5:59","nodeType":"VariableDeclaration","scope":19560,"src":"8334:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19538,"name":"address","nodeType":"ElementaryTypeName","src":"8334:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8309:39:59"},"returnParameters":{"id":19543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19560,"src":"8367:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19541,"name":"bool","nodeType":"ElementaryTypeName","src":"8367:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8366:6:59"},"scope":19820,"src":"8297:150:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19586,"nodeType":"Block","src":"8694:77:59","statements":[{"expression":{"arguments":[{"expression":{"id":19572,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19564,"src":"8719:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8723:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"8719:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":19580,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19566,"src":"8755:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8747:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":19578,"name":"uint160","nodeType":"ElementaryTypeName","src":"8747:7:59","typeDescriptions":{}}},"id":19581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8747:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":19577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8739:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19576,"name":"uint256","nodeType":"ElementaryTypeName","src":"8739:7:59","typeDescriptions":{}}},"id":19582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8731:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8731:7:59","typeDescriptions":{}}},"id":19583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8731:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19571,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19344,"src":"8711:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8711:53:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19570,"id":19585,"nodeType":"Return","src":"8704:60:59"}]},"documentation":{"id":19561,"nodeType":"StructuredDocumentation","src":"8453:157:59","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":19587,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8624:6:59","nodeType":"FunctionDefinition","parameters":{"id":19567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19564,"mutability":"mutable","name":"set","nameLocation":"8650:3:59","nodeType":"VariableDeclaration","scope":19587,"src":"8631:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19563,"nodeType":"UserDefinedTypeName","pathNode":{"id":19562,"name":"AddressSet","nameLocations":["8631:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"8631:10:59"},"referencedDeclaration":19533,"src":"8631:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":19566,"mutability":"mutable","name":"value","nameLocation":"8663:5:59","nodeType":"VariableDeclaration","scope":19587,"src":"8655:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19565,"name":"address","nodeType":"ElementaryTypeName","src":"8655:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8630:39:59"},"returnParameters":{"id":19570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19587,"src":"8688:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19568,"name":"bool","nodeType":"ElementaryTypeName","src":"8688:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8687:6:59"},"scope":19820,"src":"8615:156:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19613,"nodeType":"Block","src":"8938:79:59","statements":[{"expression":{"arguments":[{"expression":{"id":19599,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19591,"src":"8965:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8969:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"8965:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":19607,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19593,"src":"9001:5:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8993:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":19605,"name":"uint160","nodeType":"ElementaryTypeName","src":"8993:7:59","typeDescriptions":{}}},"id":19608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":19604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8985:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19603,"name":"uint256","nodeType":"ElementaryTypeName","src":"8985:7:59","typeDescriptions":{}}},"id":19609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8985:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8977:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8977:7:59","typeDescriptions":{}}},"id":19610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8977:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19598,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"8955:9:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":19611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8955:55:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19597,"id":19612,"nodeType":"Return","src":"8948:62:59"}]},"documentation":{"id":19588,"nodeType":"StructuredDocumentation","src":"8777:70:59","text":" @dev Returns true if the value is in the set. O(1)."},"id":19614,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8861:8:59","nodeType":"FunctionDefinition","parameters":{"id":19594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19591,"mutability":"mutable","name":"set","nameLocation":"8889:3:59","nodeType":"VariableDeclaration","scope":19614,"src":"8870:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19590,"nodeType":"UserDefinedTypeName","pathNode":{"id":19589,"name":"AddressSet","nameLocations":["8870:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"8870:10:59"},"referencedDeclaration":19533,"src":"8870:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":19593,"mutability":"mutable","name":"value","nameLocation":"8902:5:59","nodeType":"VariableDeclaration","scope":19614,"src":"8894:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19592,"name":"address","nodeType":"ElementaryTypeName","src":"8894:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8869:39:59"},"returnParameters":{"id":19597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19614,"src":"8932:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19595,"name":"bool","nodeType":"ElementaryTypeName","src":"8932:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8931:6:59"},"scope":19820,"src":"8852:165:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19628,"nodeType":"Block","src":"9170:43:59","statements":[{"expression":{"arguments":[{"expression":{"id":19624,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19618,"src":"9195:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9199:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"9195:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19623,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19377,"src":"9187:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":19626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9187:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19622,"id":19627,"nodeType":"Return","src":"9180:26:59"}]},"documentation":{"id":19615,"nodeType":"StructuredDocumentation","src":"9023:70:59","text":" @dev Returns the number of values in the set. O(1)."},"id":19629,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9107:6:59","nodeType":"FunctionDefinition","parameters":{"id":19619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19618,"mutability":"mutable","name":"set","nameLocation":"9133:3:59","nodeType":"VariableDeclaration","scope":19629,"src":"9114:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19617,"nodeType":"UserDefinedTypeName","pathNode":{"id":19616,"name":"AddressSet","nameLocations":["9114:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"9114:10:59"},"referencedDeclaration":19533,"src":"9114:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9113:24:59"},"returnParameters":{"id":19622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19629,"src":"9161:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19620,"name":"uint256","nodeType":"ElementaryTypeName","src":"9161:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9160:9:59"},"scope":19820,"src":"9098:115:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19655,"nodeType":"Block","src":"9638:73:59","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":19647,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19633,"src":"9683:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9687:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"9683:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19649,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19635,"src":"9695:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19646,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19394,"src":"9679:3:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":19650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9679:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9671:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19644,"name":"uint256","nodeType":"ElementaryTypeName","src":"9671:7:59","typeDescriptions":{}}},"id":19651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9663:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":19642,"name":"uint160","nodeType":"ElementaryTypeName","src":"9663:7:59","typeDescriptions":{}}},"id":19652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9663:40:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":19641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9655:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19640,"name":"address","nodeType":"ElementaryTypeName","src":"9655:7:59","typeDescriptions":{}}},"id":19653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9655:49:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":19639,"id":19654,"nodeType":"Return","src":"9648:56:59"}]},"documentation":{"id":19630,"nodeType":"StructuredDocumentation","src":"9219:331:59","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":19656,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9564:2:59","nodeType":"FunctionDefinition","parameters":{"id":19636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19633,"mutability":"mutable","name":"set","nameLocation":"9586:3:59","nodeType":"VariableDeclaration","scope":19656,"src":"9567:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19632,"nodeType":"UserDefinedTypeName","pathNode":{"id":19631,"name":"AddressSet","nameLocations":["9567:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"9567:10:59"},"referencedDeclaration":19533,"src":"9567:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":19635,"mutability":"mutable","name":"index","nameLocation":"9599:5:59","nodeType":"VariableDeclaration","scope":19656,"src":"9591:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19634,"name":"uint256","nodeType":"ElementaryTypeName","src":"9591:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9566:39:59"},"returnParameters":{"id":19639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19656,"src":"9629:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19637,"name":"address","nodeType":"ElementaryTypeName","src":"9629:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9628:9:59"},"scope":19820,"src":"9555:156:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19685,"nodeType":"Block","src":"10332:219:59","statements":[{"assignments":[19670],"declarations":[{"constant":false,"id":19670,"mutability":"mutable","name":"store","nameLocation":"10359:5:59","nodeType":"VariableDeclaration","scope":19685,"src":"10342:22:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19668,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10342:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19669,"nodeType":"ArrayTypeName","src":"10342:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":19675,"initialValue":{"arguments":[{"expression":{"id":19672,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19660,"src":"10375:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":19673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10379:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19532,"src":"10375:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19671,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19408,"src":"10367:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10367:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10342:44:59"},{"assignments":[19680],"declarations":[{"constant":false,"id":19680,"mutability":"mutable","name":"result","nameLocation":"10413:6:59","nodeType":"VariableDeclaration","scope":19685,"src":"10396:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19678,"name":"address","nodeType":"ElementaryTypeName","src":"10396:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19679,"nodeType":"ArrayTypeName","src":"10396:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":19681,"nodeType":"VariableDeclarationStatement","src":"10396:23:59"},{"AST":{"nodeType":"YulBlock","src":"10482:39:59","statements":[{"nodeType":"YulAssignment","src":"10496:15:59","value":{"name":"store","nodeType":"YulIdentifier","src":"10506:5:59"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10496:6:59"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":19680,"isOffset":false,"isSlot":false,"src":"10496:6:59","valueSize":1},{"declaration":19670,"isOffset":false,"isSlot":false,"src":"10506:5:59","valueSize":1}],"id":19682,"nodeType":"InlineAssembly","src":"10473:48:59"},{"expression":{"id":19683,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"10538:6:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":19665,"id":19684,"nodeType":"Return","src":"10531:13:59"}]},"documentation":{"id":19657,"nodeType":"StructuredDocumentation","src":"9717:529:59","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":19686,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10260:6:59","nodeType":"FunctionDefinition","parameters":{"id":19661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19660,"mutability":"mutable","name":"set","nameLocation":"10286:3:59","nodeType":"VariableDeclaration","scope":19686,"src":"10267:22:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19659,"nodeType":"UserDefinedTypeName","pathNode":{"id":19658,"name":"AddressSet","nameLocations":["10267:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"10267:10:59"},"referencedDeclaration":19533,"src":"10267:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10266:24:59"},"returnParameters":{"id":19665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19686,"src":"10314:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19662,"name":"address","nodeType":"ElementaryTypeName","src":"10314:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19663,"nodeType":"ArrayTypeName","src":"10314:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10313:18:59"},"scope":19820,"src":"10251:300:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":19690,"members":[{"constant":false,"id":19689,"mutability":"mutable","name":"_inner","nameLocation":"10602:6:59","nodeType":"VariableDeclaration","scope":19690,"src":"10598:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":19688,"nodeType":"UserDefinedTypeName","pathNode":{"id":19687,"name":"Set","nameLocations":["10598:3:59"],"nodeType":"IdentifierPath","referencedDeclaration":19218,"src":"10598:3:59"},"referencedDeclaration":19218,"src":"10598:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10580:7:59","nodeType":"StructDefinition","scope":19820,"src":"10573:42:59","visibility":"public"},{"body":{"id":19710,"nodeType":"Block","src":"10858:56:59","statements":[{"expression":{"arguments":[{"expression":{"id":19702,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19694,"src":"10880:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10884:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"10880:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":19706,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19696,"src":"10900:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10892:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10892:7:59","typeDescriptions":{}}},"id":19707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10892:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19701,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19260,"src":"10875:4:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10875:32:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19700,"id":19709,"nodeType":"Return","src":"10868:39:59"}]},"documentation":{"id":19691,"nodeType":"StructuredDocumentation","src":"10621:159:59","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":19711,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10794:3:59","nodeType":"FunctionDefinition","parameters":{"id":19697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19694,"mutability":"mutable","name":"set","nameLocation":"10814:3:59","nodeType":"VariableDeclaration","scope":19711,"src":"10798:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19693,"nodeType":"UserDefinedTypeName","pathNode":{"id":19692,"name":"UintSet","nameLocations":["10798:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"10798:7:59"},"referencedDeclaration":19690,"src":"10798:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":19696,"mutability":"mutable","name":"value","nameLocation":"10827:5:59","nodeType":"VariableDeclaration","scope":19711,"src":"10819:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19695,"name":"uint256","nodeType":"ElementaryTypeName","src":"10819:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10797:36:59"},"returnParameters":{"id":19700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19711,"src":"10852:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19698,"name":"bool","nodeType":"ElementaryTypeName","src":"10852:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10851:6:59"},"scope":19820,"src":"10785:129:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19731,"nodeType":"Block","src":"11158:59:59","statements":[{"expression":{"arguments":[{"expression":{"id":19723,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19715,"src":"11183:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11187:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"11183:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":19727,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19717,"src":"11203:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11195:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11195:7:59","typeDescriptions":{}}},"id":19728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11195:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19722,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19344,"src":"11175:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":19729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11175:35:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19721,"id":19730,"nodeType":"Return","src":"11168:42:59"}]},"documentation":{"id":19712,"nodeType":"StructuredDocumentation","src":"10920:157:59","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":19732,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11091:6:59","nodeType":"FunctionDefinition","parameters":{"id":19718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19715,"mutability":"mutable","name":"set","nameLocation":"11114:3:59","nodeType":"VariableDeclaration","scope":19732,"src":"11098:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19714,"nodeType":"UserDefinedTypeName","pathNode":{"id":19713,"name":"UintSet","nameLocations":["11098:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"11098:7:59"},"referencedDeclaration":19690,"src":"11098:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":19717,"mutability":"mutable","name":"value","nameLocation":"11127:5:59","nodeType":"VariableDeclaration","scope":19732,"src":"11119:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19716,"name":"uint256","nodeType":"ElementaryTypeName","src":"11119:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11097:36:59"},"returnParameters":{"id":19721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19732,"src":"11152:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19719,"name":"bool","nodeType":"ElementaryTypeName","src":"11152:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11151:6:59"},"scope":19820,"src":"11082:135:59","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":19752,"nodeType":"Block","src":"11381:61:59","statements":[{"expression":{"arguments":[{"expression":{"id":19744,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"11408:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11412:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"11408:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":19748,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19738,"src":"11428:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11420:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":19746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11420:7:59","typeDescriptions":{}}},"id":19749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11420:14:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19743,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19363,"src":"11398:9:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":19750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11398:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19742,"id":19751,"nodeType":"Return","src":"11391:44:59"}]},"documentation":{"id":19733,"nodeType":"StructuredDocumentation","src":"11223:70:59","text":" @dev Returns true if the value is in the set. O(1)."},"id":19753,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11307:8:59","nodeType":"FunctionDefinition","parameters":{"id":19739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19736,"mutability":"mutable","name":"set","nameLocation":"11332:3:59","nodeType":"VariableDeclaration","scope":19753,"src":"11316:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19735,"nodeType":"UserDefinedTypeName","pathNode":{"id":19734,"name":"UintSet","nameLocations":["11316:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"11316:7:59"},"referencedDeclaration":19690,"src":"11316:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":19738,"mutability":"mutable","name":"value","nameLocation":"11345:5:59","nodeType":"VariableDeclaration","scope":19753,"src":"11337:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19737,"name":"uint256","nodeType":"ElementaryTypeName","src":"11337:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11315:36:59"},"returnParameters":{"id":19742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19753,"src":"11375:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19740,"name":"bool","nodeType":"ElementaryTypeName","src":"11375:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11374:6:59"},"scope":19820,"src":"11298:144:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19767,"nodeType":"Block","src":"11592:43:59","statements":[{"expression":{"arguments":[{"expression":{"id":19763,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19757,"src":"11617:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11621:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"11617:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19762,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19377,"src":"11609:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":19765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11609:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19761,"id":19766,"nodeType":"Return","src":"11602:26:59"}]},"documentation":{"id":19754,"nodeType":"StructuredDocumentation","src":"11448:70:59","text":" @dev Returns the number of values in the set. O(1)."},"id":19768,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11532:6:59","nodeType":"FunctionDefinition","parameters":{"id":19758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19757,"mutability":"mutable","name":"set","nameLocation":"11555:3:59","nodeType":"VariableDeclaration","scope":19768,"src":"11539:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19756,"nodeType":"UserDefinedTypeName","pathNode":{"id":19755,"name":"UintSet","nameLocations":["11539:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"11539:7:59"},"referencedDeclaration":19690,"src":"11539:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11538:21:59"},"returnParameters":{"id":19761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19768,"src":"11583:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19759,"name":"uint256","nodeType":"ElementaryTypeName","src":"11583:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11582:9:59"},"scope":19820,"src":"11523:112:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19788,"nodeType":"Block","src":"12057:55:59","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":19782,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19772,"src":"12086:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12090:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"12086:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":19784,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19774,"src":"12098:5:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19781,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19394,"src":"12082:3:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":19785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12082:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12074:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":19779,"name":"uint256","nodeType":"ElementaryTypeName","src":"12074:7:59","typeDescriptions":{}}},"id":19786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12074:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19778,"id":19787,"nodeType":"Return","src":"12067:38:59"}]},"documentation":{"id":19769,"nodeType":"StructuredDocumentation","src":"11641:331:59","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":19789,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11986:2:59","nodeType":"FunctionDefinition","parameters":{"id":19775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19772,"mutability":"mutable","name":"set","nameLocation":"12005:3:59","nodeType":"VariableDeclaration","scope":19789,"src":"11989:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19771,"nodeType":"UserDefinedTypeName","pathNode":{"id":19770,"name":"UintSet","nameLocations":["11989:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"11989:7:59"},"referencedDeclaration":19690,"src":"11989:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":19774,"mutability":"mutable","name":"index","nameLocation":"12018:5:59","nodeType":"VariableDeclaration","scope":19789,"src":"12010:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19773,"name":"uint256","nodeType":"ElementaryTypeName","src":"12010:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11988:36:59"},"returnParameters":{"id":19778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19789,"src":"12048:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19776,"name":"uint256","nodeType":"ElementaryTypeName","src":"12048:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12047:9:59"},"scope":19820,"src":"11977:135:59","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":19818,"nodeType":"Block","src":"12730:219:59","statements":[{"assignments":[19803],"declarations":[{"constant":false,"id":19803,"mutability":"mutable","name":"store","nameLocation":"12757:5:59","nodeType":"VariableDeclaration","scope":19818,"src":"12740:22:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":19801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12740:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19802,"nodeType":"ArrayTypeName","src":"12740:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":19808,"initialValue":{"arguments":[{"expression":{"id":19805,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19793,"src":"12773:3:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":19806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12777:6:59","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":19689,"src":"12773:10:59","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$19218_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":19804,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19408,"src":"12765:7:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$19218_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12765:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12740:44:59"},{"assignments":[19813],"declarations":[{"constant":false,"id":19813,"mutability":"mutable","name":"result","nameLocation":"12811:6:59","nodeType":"VariableDeclaration","scope":19818,"src":"12794:23:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19811,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19812,"nodeType":"ArrayTypeName","src":"12794:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":19814,"nodeType":"VariableDeclarationStatement","src":"12794:23:59"},{"AST":{"nodeType":"YulBlock","src":"12880:39:59","statements":[{"nodeType":"YulAssignment","src":"12894:15:59","value":{"name":"store","nodeType":"YulIdentifier","src":"12904:5:59"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12894:6:59"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"london","externalReferences":[{"declaration":19813,"isOffset":false,"isSlot":false,"src":"12894:6:59","valueSize":1},{"declaration":19803,"isOffset":false,"isSlot":false,"src":"12904:5:59","valueSize":1}],"id":19815,"nodeType":"InlineAssembly","src":"12871:48:59"},{"expression":{"id":19816,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19813,"src":"12936:6:59","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":19798,"id":19817,"nodeType":"Return","src":"12929:13:59"}]},"documentation":{"id":19790,"nodeType":"StructuredDocumentation","src":"12118:529:59","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":19819,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12661:6:59","nodeType":"FunctionDefinition","parameters":{"id":19794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19793,"mutability":"mutable","name":"set","nameLocation":"12684:3:59","nodeType":"VariableDeclaration","scope":19819,"src":"12668:19:59","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":19792,"nodeType":"UserDefinedTypeName","pathNode":{"id":19791,"name":"UintSet","nameLocations":["12668:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"12668:7:59"},"referencedDeclaration":19690,"src":"12668:7:59","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12667:21:59"},"returnParameters":{"id":19798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19819,"src":"12712:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":19795,"name":"uint256","nodeType":"ElementaryTypeName","src":"12712:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19796,"nodeType":"ArrayTypeName","src":"12712:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12711:18:59"},"scope":19820,"src":"12652:297:59","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":19821,"src":"1321:11630:59","usedErrors":[]}],"src":"205:12747:59"},"id":59},"contracts/My3SecHub.sol":{"ast":{"absolutePath":"contracts/My3SecHub.sol","exportedSymbols":{"AddressUpgradeable":[2265],"Constants":[22010],"Context":[14324],"ContextUpgradeable":[2307],"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"Errors":[22162],"Events":[22299],"HubControllable":[21056],"ICertificateNFT":[21239],"IERC165":[15338],"IERC165Upgradeable":[2538],"IERC721":[12046],"IERC721Upgradeable":[1404],"IEnergyWallet":[21338],"IMy3SecHub":[21558],"IMy3SecProfiles":[21601],"IOrganization":[21873],"ISkillRegistry":[21914],"ISkillWallet":[21944],"ITimeWallet":[21954],"IWhitelistable":[21986],"Initializable":[300],"My3SecHub":[21014],"Organization":[24230],"OrganizationFactory":[24267],"Ownable":[5640],"OwnableUpgradeable":[131],"Whitelistable":[21219]},"id":21015,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":19822,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"39:23:60"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":19823,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":132,"src":"64:75:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IMy3SecHub.sol","file":"./common/interfaces/IMy3SecHub.sol","id":19824,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21559,"src":"141:44:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ISkillRegistry.sol","file":"./common/interfaces/ISkillRegistry.sol","id":19825,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21915,"src":"186:48:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ICertificateNFT.sol","file":"./common/interfaces/ICertificateNFT.sol","id":19826,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21240,"src":"235:49:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IMy3SecProfiles.sol","file":"./common/interfaces/IMy3SecProfiles.sol","id":19827,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21602,"src":"285:49:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IEnergyWallet.sol","file":"./common/interfaces/IEnergyWallet.sol","id":19828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21339,"src":"335:47:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ITimeWallet.sol","file":"./common/interfaces/ITimeWallet.sol","id":19829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21955,"src":"383:45:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ISkillWallet.sol","file":"./common/interfaces/ISkillWallet.sol","id":19830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21945,"src":"429:46:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IOrganization.sol","file":"./common/interfaces/IOrganization.sol","id":19831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":21874,"src":"476:47:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Constants.sol","file":"./common/libraries/Constants.sol","id":19832,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":22011,"src":"524:42:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"./common/libraries/DataTypes.sol","id":19833,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":22124,"src":"567:42:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"./common/libraries/Errors.sol","id":19834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":22163,"src":"610:39:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Events.sol","file":"./common/libraries/Events.sol","id":19835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":22300,"src":"650:39:60","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/organizations/OrganizationFactory.sol","file":"./organizations/OrganizationFactory.sol","id":19836,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21015,"sourceUnit":24268,"src":"691:49:60","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19837,"name":"IMy3SecHub","nameLocations":["764:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":21558,"src":"764:10:60"},"id":19838,"nodeType":"InheritanceSpecifier","src":"764:10:60"},{"baseName":{"id":19839,"name":"OwnableUpgradeable","nameLocations":["776:18:60"],"nodeType":"IdentifierPath","referencedDeclaration":131,"src":"776:18:60"},"id":19840,"nodeType":"InheritanceSpecifier","src":"776:18:60"}],"canonicalName":"My3SecHub","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21014,"linearizedBaseContracts":[21014,131,2307,300,21558],"name":"My3SecHub","nameLocation":"751:9:60","nodeType":"ContractDefinition","nodes":[{"global":false,"id":19844,"libraryName":{"id":19841,"name":"EnumerableSet","nameLocations":["807:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":19820,"src":"807:13:60"},"nodeType":"UsingForDirective","src":"801:49:60","typeName":{"id":19843,"nodeType":"UserDefinedTypeName","pathNode":{"id":19842,"name":"EnumerableSet.AddressSet","nameLocations":["825:13:60","839:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"825:24:60"},"referencedDeclaration":19533,"src":"825:24:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":19846,"mutability":"mutable","name":"_governanceTimelockContractAddress","nameLocation":"873:34:60","nodeType":"VariableDeclaration","scope":21014,"src":"856:51:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19845,"name":"address","nodeType":"ElementaryTypeName","src":"856:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19849,"mutability":"mutable","name":"_organizationFactory","nameLocation":"943:20:60","nodeType":"VariableDeclaration","scope":21014,"src":"914:49:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"},"typeName":{"id":19848,"nodeType":"UserDefinedTypeName","pathNode":{"id":19847,"name":"OrganizationFactory","nameLocations":["914:19:60"],"nodeType":"IdentifierPath","referencedDeclaration":24267,"src":"914:19:60"},"referencedDeclaration":24267,"src":"914:19:60","typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"}},"visibility":"internal"},{"constant":false,"id":19852,"mutability":"mutable","name":"_skillRegistry","nameLocation":"993:14:60","nodeType":"VariableDeclaration","scope":21014,"src":"969:38:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillRegistry_$21914","typeString":"contract ISkillRegistry"},"typeName":{"id":19851,"nodeType":"UserDefinedTypeName","pathNode":{"id":19850,"name":"ISkillRegistry","nameLocations":["969:14:60"],"nodeType":"IdentifierPath","referencedDeclaration":21914,"src":"969:14:60"},"referencedDeclaration":21914,"src":"969:14:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillRegistry_$21914","typeString":"contract ISkillRegistry"}},"visibility":"internal"},{"constant":false,"id":19855,"mutability":"mutable","name":"_certificateNFT","nameLocation":"1038:15:60","nodeType":"VariableDeclaration","scope":21014,"src":"1013:40:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"},"typeName":{"id":19854,"nodeType":"UserDefinedTypeName","pathNode":{"id":19853,"name":"ICertificateNFT","nameLocations":["1013:15:60"],"nodeType":"IdentifierPath","referencedDeclaration":21239,"src":"1013:15:60"},"referencedDeclaration":21239,"src":"1013:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"visibility":"internal"},{"constant":false,"id":19858,"mutability":"mutable","name":"_my3SecProfiles","nameLocation":"1084:15:60","nodeType":"VariableDeclaration","scope":21014,"src":"1059:40:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"},"typeName":{"id":19857,"nodeType":"UserDefinedTypeName","pathNode":{"id":19856,"name":"IMy3SecProfiles","nameLocations":["1059:15:60"],"nodeType":"IdentifierPath","referencedDeclaration":21601,"src":"1059:15:60"},"referencedDeclaration":21601,"src":"1059:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"visibility":"internal"},{"constant":false,"id":19861,"mutability":"mutable","name":"_energyWallet","nameLocation":"1128:13:60","nodeType":"VariableDeclaration","scope":21014,"src":"1105:36:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"},"typeName":{"id":19860,"nodeType":"UserDefinedTypeName","pathNode":{"id":19859,"name":"IEnergyWallet","nameLocations":["1105:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21338,"src":"1105:13:60"},"referencedDeclaration":21338,"src":"1105:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"visibility":"internal"},{"constant":false,"id":19864,"mutability":"mutable","name":"_timeWallet","nameLocation":"1168:11:60","nodeType":"VariableDeclaration","scope":21014,"src":"1147:32:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"},"typeName":{"id":19863,"nodeType":"UserDefinedTypeName","pathNode":{"id":19862,"name":"ITimeWallet","nameLocations":["1147:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":21954,"src":"1147:11:60"},"referencedDeclaration":21954,"src":"1147:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"}},"visibility":"internal"},{"constant":false,"id":19867,"mutability":"mutable","name":"_skillWallet","nameLocation":"1207:12:60","nodeType":"VariableDeclaration","scope":21014,"src":"1185:34:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"},"typeName":{"id":19866,"nodeType":"UserDefinedTypeName","pathNode":{"id":19865,"name":"ISkillWallet","nameLocations":["1185:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":21944,"src":"1185:12:60"},"referencedDeclaration":21944,"src":"1185:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"}},"visibility":"internal"},{"constant":false,"id":19870,"mutability":"mutable","name":"_organizations","nameLocation":"1260:14:60","nodeType":"VariableDeclaration","scope":21014,"src":"1226:48:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":19869,"nodeType":"UserDefinedTypeName","pathNode":{"id":19868,"name":"EnumerableSet.AddressSet","nameLocations":["1226:13:60","1240:10:60"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"1226:24:60"},"referencedDeclaration":19533,"src":"1226:24:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":19876,"mutability":"mutable","name":"rewards","nameLocation":"1363:7:60","nodeType":"VariableDeclaration","scope":21014,"src":"1315:55:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":19875,"keyType":{"id":19871,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1315:47:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueType":{"id":19874,"keyType":{"id":19872,"name":"uint256","nodeType":"ElementaryTypeName","src":"1342:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1334:27:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":19873,"name":"uint256","nodeType":"ElementaryTypeName","src":"1353:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"body":{"id":19892,"nodeType":"Block","src":"1438:108:60","statements":[{"condition":{"id":19884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1452:45:60","subExpression":{"arguments":[{"id":19882,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19878,"src":"1477:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19880,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"1453:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":19881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1468:8:60","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19614,"src":"1453:23:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":19883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:44:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19890,"nodeType":"IfStatement","src":"1448:80:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19885,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1506:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":19887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1513:13:60","memberName":"NotRegistered","nodeType":"MemberAccess","referencedDeclaration":22141,"src":"1506:20:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1506:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19889,"nodeType":"RevertStatement","src":"1499:29:60"}},{"id":19891,"nodeType":"PlaceholderStatement","src":"1538:1:60"}]},"id":19893,"name":"organizationRegistered","nameLocation":"1386:22:60","nodeType":"ModifierDefinition","parameters":{"id":19879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19878,"mutability":"mutable","name":"organizationAddress","nameLocation":"1417:19:60","nodeType":"VariableDeclaration","scope":19893,"src":"1409:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19877,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1408:29:60"},"src":"1377:169:60","virtual":false,"visibility":"internal"},{"body":{"id":19908,"nodeType":"Block","src":"1596:107:60","statements":[{"condition":{"id":19900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1610:36:60","subExpression":{"arguments":[{"expression":{"id":19897,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1635:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1639:6:60","memberName":"sender","nodeType":"MemberAccess","src":"1635:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19895,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"1611:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":19896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1626:8:60","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19614,"src":"1611:23:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":19899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:35:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19906,"nodeType":"IfStatement","src":"1606:79:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":19901,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1655:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":19903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1662:21:60","memberName":"CallerNotOrganization","nodeType":"MemberAccess","referencedDeclaration":22143,"src":"1655:28:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":19904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:30:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19905,"nodeType":"RevertStatement","src":"1648:37:60"}},{"id":19907,"nodeType":"PlaceholderStatement","src":"1695:1:60"}]},"id":19909,"name":"onlyRegisteredOrganizationCaller","nameLocation":"1561:32:60","nodeType":"ModifierDefinition","parameters":{"id":19894,"nodeType":"ParameterList","parameters":[],"src":"1593:2:60"},"src":"1552:151:60","virtual":false,"visibility":"internal"},{"body":{"id":19917,"nodeType":"Block","src":"1750:33:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19914,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"1760:14:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":19915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1760:16:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19916,"nodeType":"ExpressionStatement","src":"1760:16:60"}]},"functionSelector":"8129fc1c","id":19918,"implemented":true,"kind":"function","modifiers":[{"id":19912,"kind":"modifierInvocation","modifierName":{"id":19911,"name":"initializer","nameLocations":["1738:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":202,"src":"1738:11:60"},"nodeType":"ModifierInvocation","src":"1738:11:60"}],"name":"initialize","nameLocation":"1718:10:60","nodeType":"FunctionDefinition","parameters":{"id":19910,"nodeType":"ParameterList","parameters":[],"src":"1728:2:60"},"returnParameters":{"id":19913,"nodeType":"ParameterList","parameters":[],"src":"1750:0:60"},"scope":21014,"src":"1709:74:60","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":19929,"nodeType":"Block","src":"1879:69:60","statements":[{"expression":{"id":19927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19925,"name":"_governanceTimelockContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19846,"src":"1889:34:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19926,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19920,"src":"1926:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1889:52:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19928,"nodeType":"ExpressionStatement","src":"1889:52:60"}]},"functionSelector":"cb9113f5","id":19930,"implemented":true,"kind":"function","modifiers":[{"id":19923,"kind":"modifierInvocation","modifierName":{"id":19922,"name":"onlyOwner","nameLocations":["1869:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"1869:9:60"},"nodeType":"ModifierInvocation","src":"1869:9:60"}],"name":"setGovernanceTimelockContractAddress","nameLocation":"1798:36:60","nodeType":"FunctionDefinition","parameters":{"id":19921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19920,"mutability":"mutable","name":"contractAddress","nameLocation":"1843:15:60","nodeType":"VariableDeclaration","scope":19930,"src":"1835:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19919,"name":"address","nodeType":"ElementaryTypeName","src":"1835:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1834:25:60"},"returnParameters":{"id":19924,"nodeType":"ParameterList","parameters":[],"src":"1879:0:60"},"scope":21014,"src":"1789:159:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19943,"nodeType":"Block","src":"2038:76:60","statements":[{"expression":{"id":19941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19937,"name":"_organizationFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19849,"src":"2048:20:60","typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19939,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19932,"src":"2091:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19938,"name":"OrganizationFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24267,"src":"2071:19:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OrganizationFactory_$24267_$","typeString":"type(contract OrganizationFactory)"}},"id":19940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2071:36:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"}},"src":"2048:59:60","typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"}},"id":19942,"nodeType":"ExpressionStatement","src":"2048:59:60"}]},"functionSelector":"f8d67476","id":19944,"implemented":true,"kind":"function","modifiers":[{"id":19935,"kind":"modifierInvocation","modifierName":{"id":19934,"name":"onlyOwner","nameLocations":["2028:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2028:9:60"},"nodeType":"ModifierInvocation","src":"2028:9:60"}],"name":"setOrganizationFactoryContract","nameLocation":"1963:30:60","nodeType":"FunctionDefinition","parameters":{"id":19933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19932,"mutability":"mutable","name":"contractAddress","nameLocation":"2002:15:60","nodeType":"VariableDeclaration","scope":19944,"src":"1994:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19931,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1993:25:60"},"returnParameters":{"id":19936,"nodeType":"ParameterList","parameters":[],"src":"2038:0:60"},"scope":21014,"src":"1954:160:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19957,"nodeType":"Block","src":"2198:65:60","statements":[{"expression":{"id":19955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19951,"name":"_skillRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19852,"src":"2208:14:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillRegistry_$21914","typeString":"contract ISkillRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19953,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19946,"src":"2240:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19952,"name":"ISkillRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21914,"src":"2225:14:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISkillRegistry_$21914_$","typeString":"type(contract ISkillRegistry)"}},"id":19954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2225:31:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISkillRegistry_$21914","typeString":"contract ISkillRegistry"}},"src":"2208:48:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillRegistry_$21914","typeString":"contract ISkillRegistry"}},"id":19956,"nodeType":"ExpressionStatement","src":"2208:48:60"}]},"functionSelector":"59dfc3f4","id":19958,"implemented":true,"kind":"function","modifiers":[{"id":19949,"kind":"modifierInvocation","modifierName":{"id":19948,"name":"onlyOwner","nameLocations":["2188:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2188:9:60"},"nodeType":"ModifierInvocation","src":"2188:9:60"}],"name":"setSkillRegistryContract","nameLocation":"2129:24:60","nodeType":"FunctionDefinition","parameters":{"id":19947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19946,"mutability":"mutable","name":"contractAddress","nameLocation":"2162:15:60","nodeType":"VariableDeclaration","scope":19958,"src":"2154:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19945,"name":"address","nodeType":"ElementaryTypeName","src":"2154:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2153:25:60"},"returnParameters":{"id":19950,"nodeType":"ParameterList","parameters":[],"src":"2198:0:60"},"scope":21014,"src":"2120:143:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19971,"nodeType":"Block","src":"2348:67:60","statements":[{"expression":{"id":19969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19965,"name":"_certificateNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"2358:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19967,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19960,"src":"2392:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19966,"name":"ICertificateNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21239,"src":"2376:15:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICertificateNFT_$21239_$","typeString":"type(contract ICertificateNFT)"}},"id":19968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"src":"2358:50:60","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"id":19970,"nodeType":"ExpressionStatement","src":"2358:50:60"}]},"functionSelector":"9583c539","id":19972,"implemented":true,"kind":"function","modifiers":[{"id":19963,"kind":"modifierInvocation","modifierName":{"id":19962,"name":"onlyOwner","nameLocations":["2338:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2338:9:60"},"nodeType":"ModifierInvocation","src":"2338:9:60"}],"name":"setCertificateNFTContract","nameLocation":"2278:25:60","nodeType":"FunctionDefinition","parameters":{"id":19961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19960,"mutability":"mutable","name":"contractAddress","nameLocation":"2312:15:60","nodeType":"VariableDeclaration","scope":19972,"src":"2304:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19959,"name":"address","nodeType":"ElementaryTypeName","src":"2304:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2303:25:60"},"returnParameters":{"id":19964,"nodeType":"ParameterList","parameters":[],"src":"2348:0:60"},"scope":21014,"src":"2269:146:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19985,"nodeType":"Block","src":"2500:67:60","statements":[{"expression":{"id":19983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19979,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"2510:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19981,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"2544:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19980,"name":"IMy3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21601,"src":"2528:15:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecProfiles_$21601_$","typeString":"type(contract IMy3SecProfiles)"}},"id":19982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2528:32:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"src":"2510:50:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":19984,"nodeType":"ExpressionStatement","src":"2510:50:60"}]},"functionSelector":"8ac2b65a","id":19986,"implemented":true,"kind":"function","modifiers":[{"id":19977,"kind":"modifierInvocation","modifierName":{"id":19976,"name":"onlyOwner","nameLocations":["2490:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2490:9:60"},"nodeType":"ModifierInvocation","src":"2490:9:60"}],"name":"setMy3SecProfilesContract","nameLocation":"2430:25:60","nodeType":"FunctionDefinition","parameters":{"id":19975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19974,"mutability":"mutable","name":"contractAddress","nameLocation":"2464:15:60","nodeType":"VariableDeclaration","scope":19986,"src":"2456:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19973,"name":"address","nodeType":"ElementaryTypeName","src":"2456:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2455:25:60"},"returnParameters":{"id":19978,"nodeType":"ParameterList","parameters":[],"src":"2500:0:60"},"scope":21014,"src":"2421:146:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19999,"nodeType":"Block","src":"2650:63:60","statements":[{"expression":{"id":19997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19993,"name":"_energyWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"2660:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":19995,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19988,"src":"2690:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19994,"name":"IEnergyWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21338,"src":"2676:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEnergyWallet_$21338_$","typeString":"type(contract IEnergyWallet)"}},"id":19996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2676:30:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"src":"2660:46:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"id":19998,"nodeType":"ExpressionStatement","src":"2660:46:60"}]},"functionSelector":"8ec8e6c7","id":20000,"implemented":true,"kind":"function","modifiers":[{"id":19991,"kind":"modifierInvocation","modifierName":{"id":19990,"name":"onlyOwner","nameLocations":["2640:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2640:9:60"},"nodeType":"ModifierInvocation","src":"2640:9:60"}],"name":"setEnergyWalletContract","nameLocation":"2582:23:60","nodeType":"FunctionDefinition","parameters":{"id":19989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19988,"mutability":"mutable","name":"contractAddress","nameLocation":"2614:15:60","nodeType":"VariableDeclaration","scope":20000,"src":"2606:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19987,"name":"address","nodeType":"ElementaryTypeName","src":"2606:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2605:25:60"},"returnParameters":{"id":19992,"nodeType":"ParameterList","parameters":[],"src":"2650:0:60"},"scope":21014,"src":"2573:140:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20013,"nodeType":"Block","src":"2794:59:60","statements":[{"expression":{"id":20011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20007,"name":"_timeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19864,"src":"2804:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20009,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20002,"src":"2830:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20008,"name":"ITimeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21954,"src":"2818:11:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITimeWallet_$21954_$","typeString":"type(contract ITimeWallet)"}},"id":20010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2818:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"}},"src":"2804:42:60","typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"}},"id":20012,"nodeType":"ExpressionStatement","src":"2804:42:60"}]},"functionSelector":"46b9173a","id":20014,"implemented":true,"kind":"function","modifiers":[{"id":20005,"kind":"modifierInvocation","modifierName":{"id":20004,"name":"onlyOwner","nameLocations":["2784:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2784:9:60"},"nodeType":"ModifierInvocation","src":"2784:9:60"}],"name":"setTimeWalletContract","nameLocation":"2728:21:60","nodeType":"FunctionDefinition","parameters":{"id":20003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20002,"mutability":"mutable","name":"contractAddress","nameLocation":"2758:15:60","nodeType":"VariableDeclaration","scope":20014,"src":"2750:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20001,"name":"address","nodeType":"ElementaryTypeName","src":"2750:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2749:25:60"},"returnParameters":{"id":20006,"nodeType":"ParameterList","parameters":[],"src":"2794:0:60"},"scope":21014,"src":"2719:134:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20027,"nodeType":"Block","src":"2935:61:60","statements":[{"expression":{"id":20025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20021,"name":"_skillWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19867,"src":"2945:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20023,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20016,"src":"2973:15:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20022,"name":"ISkillWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21944,"src":"2960:12:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISkillWallet_$21944_$","typeString":"type(contract ISkillWallet)"}},"id":20024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2960:29:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"}},"src":"2945:44:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"}},"id":20026,"nodeType":"ExpressionStatement","src":"2945:44:60"}]},"functionSelector":"979796a3","id":20028,"implemented":true,"kind":"function","modifiers":[{"id":20019,"kind":"modifierInvocation","modifierName":{"id":20018,"name":"onlyOwner","nameLocations":["2925:9:60"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"2925:9:60"},"nodeType":"ModifierInvocation","src":"2925:9:60"}],"name":"setSkillWalletContract","nameLocation":"2868:22:60","nodeType":"FunctionDefinition","parameters":{"id":20017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20016,"mutability":"mutable","name":"contractAddress","nameLocation":"2899:15:60","nodeType":"VariableDeclaration","scope":20028,"src":"2891:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20015,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2890:25:60"},"returnParameters":{"id":20020,"nodeType":"ParameterList","parameters":[],"src":"2935:0:60"},"scope":21014,"src":"2859:137:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21350],"body":{"id":20049,"nodeType":"Block","src":"3323:119:60","statements":[{"assignments":[20039],"declarations":[{"constant":false,"id":20039,"mutability":"mutable","name":"profileId","nameLocation":"3341:9:60","nodeType":"VariableDeclaration","scope":20049,"src":"3333:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20038,"name":"uint256","nodeType":"ElementaryTypeName","src":"3333:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20044,"initialValue":{"arguments":[{"id":20042,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"3389:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20040,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"3353:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3369:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"3353:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:44:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3333:64:60"},{"expression":{"arguments":[{"id":20046,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20039,"src":"3425:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20045,"name":"getProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20096,"src":"3414:10:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_ProfileView_$22025_memory_ptr_$","typeString":"function (uint256) view returns (struct DataTypes.ProfileView memory)"}},"id":20047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView memory"}},"functionReturnParameters":20037,"id":20048,"nodeType":"Return","src":"3407:28:60"}]},"documentation":{"id":20029,"nodeType":"StructuredDocumentation","src":"3186:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"ed535d9d","id":20050,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultProfile","nameLocation":"3226:17:60","nodeType":"FunctionDefinition","overrides":{"id":20033,"nodeType":"OverrideSpecifier","overrides":[],"src":"3275:8:60"},"parameters":{"id":20032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20031,"mutability":"mutable","name":"account","nameLocation":"3252:7:60","nodeType":"VariableDeclaration","scope":20050,"src":"3244:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20030,"name":"address","nodeType":"ElementaryTypeName","src":"3244:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3243:17:60"},"returnParameters":{"id":20037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20050,"src":"3293:28:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView"},"typeName":{"id":20035,"nodeType":"UserDefinedTypeName","pathNode":{"id":20034,"name":"DataTypes.ProfileView","nameLocations":["3293:9:60","3303:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":22025,"src":"3293:21:60"},"referencedDeclaration":22025,"src":"3293:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_storage_ptr","typeString":"struct DataTypes.ProfileView"}},"visibility":"internal"}],"src":"3292:30:60"},"scope":21014,"src":"3217:225:60","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21357],"body":{"id":20064,"nodeType":"Block","src":"3564:58:60","statements":[{"expression":{"arguments":[{"id":20061,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20053,"src":"3605:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20059,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"3581:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:7:60","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1337,"src":"3581:23:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":20062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3581:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20058,"id":20063,"nodeType":"Return","src":"3574:41:60"}]},"documentation":{"id":20051,"nodeType":"StructuredDocumentation","src":"3448:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"df50c5d7","id":20065,"implemented":true,"kind":"function","modifiers":[],"name":"getProfileAccount","nameLocation":"3488:17:60","nodeType":"FunctionDefinition","overrides":{"id":20055,"nodeType":"OverrideSpecifier","overrides":[],"src":"3537:8:60"},"parameters":{"id":20054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20053,"mutability":"mutable","name":"profileId","nameLocation":"3514:9:60","nodeType":"VariableDeclaration","scope":20065,"src":"3506:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20052,"name":"uint256","nodeType":"ElementaryTypeName","src":"3506:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3505:19:60"},"returnParameters":{"id":20058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20065,"src":"3555:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20056,"name":"address","nodeType":"ElementaryTypeName","src":"3555:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3554:9:60"},"scope":21014,"src":"3479:143:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21365],"body":{"id":20095,"nodeType":"Block","src":"3758:182:60","statements":[{"assignments":[20076],"declarations":[{"constant":false,"id":20076,"mutability":"mutable","name":"uri","nameLocation":"3782:3:60","nodeType":"VariableDeclaration","scope":20095,"src":"3768:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20075,"name":"string","nodeType":"ElementaryTypeName","src":"3768:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":20081,"initialValue":{"arguments":[{"id":20079,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20068,"src":"3813:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20077,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"3788:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3804:8:60","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":21600,"src":"3788:24:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view external returns (string memory)"}},"id":20080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:35:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"3768:55:60"},{"assignments":[20086],"declarations":[{"constant":false,"id":20086,"mutability":"mutable","name":"profile","nameLocation":"3862:7:60","nodeType":"VariableDeclaration","scope":20095,"src":"3833:36:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView"},"typeName":{"id":20085,"nodeType":"UserDefinedTypeName","pathNode":{"id":20084,"name":"DataTypes.ProfileView","nameLocations":["3833:9:60","3843:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":22025,"src":"3833:21:60"},"referencedDeclaration":22025,"src":"3833:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_storage_ptr","typeString":"struct DataTypes.ProfileView"}},"visibility":"internal"}],"id":20092,"initialValue":{"arguments":[{"id":20089,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20068,"src":"3894:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20090,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20076,"src":"3905:3:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20087,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"3872:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":20088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3882:11:60","memberName":"ProfileView","nodeType":"MemberAccess","referencedDeclaration":22025,"src":"3872:21:60","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProfileView_$22025_storage_ptr_$","typeString":"type(struct DataTypes.ProfileView storage pointer)"}},"id":20091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3872:37:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView memory"}},"nodeType":"VariableDeclarationStatement","src":"3833:76:60"},{"expression":{"id":20093,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20086,"src":"3926:7:60","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView memory"}},"functionReturnParameters":20074,"id":20094,"nodeType":"Return","src":"3919:14:60"}]},"documentation":{"id":20066,"nodeType":"StructuredDocumentation","src":"3628:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"f08f4f64","id":20096,"implemented":true,"kind":"function","modifiers":[],"name":"getProfile","nameLocation":"3668:10:60","nodeType":"FunctionDefinition","overrides":{"id":20070,"nodeType":"OverrideSpecifier","overrides":[],"src":"3710:8:60"},"parameters":{"id":20069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20068,"mutability":"mutable","name":"profileId","nameLocation":"3687:9:60","nodeType":"VariableDeclaration","scope":20096,"src":"3679:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20067,"name":"uint256","nodeType":"ElementaryTypeName","src":"3679:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3678:19:60"},"returnParameters":{"id":20074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20096,"src":"3728:28:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView"},"typeName":{"id":20072,"nodeType":"UserDefinedTypeName","pathNode":{"id":20071,"name":"DataTypes.ProfileView","nameLocations":["3728:9:60","3738:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":22025,"src":"3728:21:60"},"referencedDeclaration":22025,"src":"3728:21:60","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_storage_ptr","typeString":"struct DataTypes.ProfileView"}},"visibility":"internal"}],"src":"3727:30:60"},"scope":21014,"src":"3659:281:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21370],"body":{"id":20111,"nodeType":"Block","src":"4041:73:60","statements":[{"expression":{"arguments":[{"expression":{"id":20106,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4085:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4089:6:60","memberName":"sender","nodeType":"MemberAccess","src":"4085:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20108,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20099,"src":"4097:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20103,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"4051:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4067:17:60","memberName":"setDefaultProfile","nodeType":"MemberAccess","referencedDeclaration":21577,"src":"4051:33:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":20109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:56:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20110,"nodeType":"ExpressionStatement","src":"4051:56:60"}]},"documentation":{"id":20097,"nodeType":"StructuredDocumentation","src":"3946:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"f1b2f8bc","id":20112,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultProfile","nameLocation":"3986:17:60","nodeType":"FunctionDefinition","overrides":{"id":20101,"nodeType":"OverrideSpecifier","overrides":[],"src":"4032:8:60"},"parameters":{"id":20100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20099,"mutability":"mutable","name":"profileId","nameLocation":"4012:9:60","nodeType":"VariableDeclaration","scope":20112,"src":"4004:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20098,"name":"uint256","nodeType":"ElementaryTypeName","src":"4004:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4003:19:60"},"returnParameters":{"id":20102,"nodeType":"ParameterList","parameters":[],"src":"4041:0:60"},"scope":21014,"src":"3977:137:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21378],"body":{"id":20150,"nodeType":"Block","src":"4249:266:60","statements":[{"assignments":[20123],"declarations":[{"constant":false,"id":20123,"mutability":"mutable","name":"profileId","nameLocation":"4267:9:60","nodeType":"VariableDeclaration","scope":20150,"src":"4259:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20122,"name":"uint256","nodeType":"ElementaryTypeName","src":"4259:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20131,"initialValue":{"arguments":[{"expression":{"id":20126,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4309:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4313:6:60","memberName":"sender","nodeType":"MemberAccess","src":"4309:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":20128,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20116,"src":"4321:4:60","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProfile_$22017_calldata_ptr","typeString":"struct DataTypes.CreateProfile calldata"}},"id":20129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4326:11:60","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22016,"src":"4321:16:60","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":20124,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"4279:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4295:13:60","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":21586,"src":"4279:29:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,string memory) external returns (uint256)"}},"id":20130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4279:59:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4259:79:60"},{"expression":{"arguments":[{"id":20135,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"4378:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20136,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"4389:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":20137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4399:22:60","memberName":"PROFILE_INITIAL_ENERGY","nodeType":"MemberAccess","referencedDeclaration":21991,"src":"4389:32:60","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":20132,"name":"_energyWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"4348:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"id":20134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4362:15:60","memberName":"createEnergyFor","nodeType":"MemberAccess","referencedDeclaration":21330,"src":"4348:29:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":20138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:74:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20139,"nodeType":"ExpressionStatement","src":"4348:74:60"},{"eventCall":{"arguments":[{"id":20143,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"4460:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20144,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4471:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4475:6:60","memberName":"sender","nodeType":"MemberAccess","src":"4471:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20140,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"4438:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4445:14:60","memberName":"ProfileCreated","nodeType":"MemberAccess","referencedDeclaration":22170,"src":"4438:21:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":20146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:44:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20147,"nodeType":"EmitStatement","src":"4433:49:60"},{"expression":{"id":20148,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20123,"src":"4499:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20121,"id":20149,"nodeType":"Return","src":"4492:16:60"}]},"documentation":{"id":20113,"nodeType":"StructuredDocumentation","src":"4120:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"d16d22f5","id":20151,"implemented":true,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"4160:13:60","nodeType":"FunctionDefinition","overrides":{"id":20118,"nodeType":"OverrideSpecifier","overrides":[],"src":"4222:8:60"},"parameters":{"id":20117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20116,"mutability":"mutable","name":"args","nameLocation":"4207:4:60","nodeType":"VariableDeclaration","scope":20151,"src":"4174:37:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProfile_$22017_calldata_ptr","typeString":"struct DataTypes.CreateProfile"},"typeName":{"id":20115,"nodeType":"UserDefinedTypeName","pathNode":{"id":20114,"name":"DataTypes.CreateProfile","nameLocations":["4174:9:60","4184:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":22017,"src":"4174:23:60"},"referencedDeclaration":22017,"src":"4174:23:60","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProfile_$22017_storage_ptr","typeString":"struct DataTypes.CreateProfile"}},"visibility":"internal"}],"src":"4173:39:60"},"returnParameters":{"id":20121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20120,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20151,"src":"4240:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4240:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4239:9:60"},"scope":21014,"src":"4151:364:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21386],"body":{"id":20185,"nodeType":"Block","src":"4642:211:60","statements":[{"assignments":[20161],"declarations":[{"constant":false,"id":20161,"mutability":"mutable","name":"isProfileOwner","nameLocation":"4657:14:60","nodeType":"VariableDeclaration","scope":20185,"src":"4652:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20160,"name":"bool","nodeType":"ElementaryTypeName","src":"4652:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":20168,"initialValue":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20162,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4674:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4678:6:60","memberName":"sender","nodeType":"MemberAccess","src":"4674:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":20165,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"4706:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20164,"name":"getProfileAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20065,"src":"4688:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":20166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4674:42:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4652:64:60"},{"condition":{"id":20170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4730:15:60","subExpression":{"id":20169,"name":"isProfileOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20161,"src":"4731:14:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20176,"nodeType":"IfStatement","src":"4726:52:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20171,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"4754:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4761:15:60","memberName":"NotProfileOwner","nodeType":"MemberAccess","referencedDeclaration":22139,"src":"4754:22:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4754:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20175,"nodeType":"RevertStatement","src":"4747:31:60"}},{"expression":{"arguments":[{"id":20180,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"4818:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":20181,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20157,"src":"4829:4:60","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProfile_$22020_calldata_ptr","typeString":"struct DataTypes.UpdateProfile calldata"}},"id":20182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4834:11:60","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22019,"src":"4829:16:60","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":20177,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"4788:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4804:13:60","memberName":"updateProfile","nodeType":"MemberAccess","referencedDeclaration":21593,"src":"4788:29:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory) external"}},"id":20183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4788:58:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20184,"nodeType":"ExpressionStatement","src":"4788:58:60"}]},"documentation":{"id":20152,"nodeType":"StructuredDocumentation","src":"4521:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"75f44a3b","id":20186,"implemented":true,"kind":"function","modifiers":[],"name":"updateProfile","nameLocation":"4561:13:60","nodeType":"FunctionDefinition","parameters":{"id":20158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20154,"mutability":"mutable","name":"profileId","nameLocation":"4583:9:60","nodeType":"VariableDeclaration","scope":20186,"src":"4575:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20153,"name":"uint256","nodeType":"ElementaryTypeName","src":"4575:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20157,"mutability":"mutable","name":"args","nameLocation":"4627:4:60","nodeType":"VariableDeclaration","scope":20186,"src":"4594:37:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProfile_$22020_calldata_ptr","typeString":"struct DataTypes.UpdateProfile"},"typeName":{"id":20156,"nodeType":"UserDefinedTypeName","pathNode":{"id":20155,"name":"DataTypes.UpdateProfile","nameLocations":["4594:9:60","4604:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":22020,"src":"4594:23:60"},"referencedDeclaration":22020,"src":"4594:23:60","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProfile_$22020_storage_ptr","typeString":"struct DataTypes.UpdateProfile"}},"visibility":"internal"}],"src":"4574:58:60"},"returnParameters":{"id":20159,"nodeType":"ParameterList","parameters":[],"src":"4642:0:60"},"scope":21014,"src":"4552:301:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21393],"body":{"id":20219,"nodeType":"Block","src":"4965:229:60","statements":[{"assignments":[20196],"declarations":[{"constant":false,"id":20196,"mutability":"mutable","name":"senderProfileId","nameLocation":"4983:15:60","nodeType":"VariableDeclaration","scope":20219,"src":"4975:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20195,"name":"uint256","nodeType":"ElementaryTypeName","src":"4975:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20202,"initialValue":{"arguments":[{"expression":{"id":20199,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5037:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5041:6:60","memberName":"sender","nodeType":"MemberAccess","src":"5037:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20197,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"5001:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5017:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"5001:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5001:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4975:73:60"},{"expression":{"arguments":[{"id":20206,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20196,"src":"5083:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20207,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20189,"src":"5100:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20208,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20191,"src":"5111:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20203,"name":"_energyWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"5058:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"id":20205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5072:10:60","memberName":"giveEnergy","nodeType":"MemberAccess","referencedDeclaration":21314,"src":"5058:24:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) external"}},"id":20209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5058:60:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20210,"nodeType":"ExpressionStatement","src":"5058:60:60"},{"eventCall":{"arguments":[{"id":20214,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20196,"src":"5152:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20215,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20189,"src":"5169:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20216,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20191,"src":"5180:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20211,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"5133:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5140:11:60","memberName":"EnergyGiven","nodeType":"MemberAccess","referencedDeclaration":22178,"src":"5133:18:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":20217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5133:54:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20218,"nodeType":"EmitStatement","src":"5128:59:60"}]},"documentation":{"id":20187,"nodeType":"StructuredDocumentation","src":"4859:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"3214a18e","id":20220,"implemented":true,"kind":"function","modifiers":[],"name":"giveEnergyTo","nameLocation":"4899:12:60","nodeType":"FunctionDefinition","overrides":{"id":20193,"nodeType":"OverrideSpecifier","overrides":[],"src":"4956:8:60"},"parameters":{"id":20192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20189,"mutability":"mutable","name":"profileId","nameLocation":"4920:9:60","nodeType":"VariableDeclaration","scope":20220,"src":"4912:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20188,"name":"uint256","nodeType":"ElementaryTypeName","src":"4912:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20191,"mutability":"mutable","name":"amount","nameLocation":"4939:6:60","nodeType":"VariableDeclaration","scope":20220,"src":"4931:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20190,"name":"uint256","nodeType":"ElementaryTypeName","src":"4931:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4911:35:60"},"returnParameters":{"id":20194,"nodeType":"ParameterList","parameters":[],"src":"4965:0:60"},"scope":21014,"src":"4890:304:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21400],"body":{"id":20253,"nodeType":"Block","src":"5310:233:60","statements":[{"assignments":[20230],"declarations":[{"constant":false,"id":20230,"mutability":"mutable","name":"senderProfileId","nameLocation":"5328:15:60","nodeType":"VariableDeclaration","scope":20253,"src":"5320:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20229,"name":"uint256","nodeType":"ElementaryTypeName","src":"5320:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20236,"initialValue":{"arguments":[{"expression":{"id":20233,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5382:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5386:6:60","memberName":"sender","nodeType":"MemberAccess","src":"5382:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20231,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"5346:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5362:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"5346:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5346:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5320:73:60"},{"expression":{"arguments":[{"id":20240,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"5430:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20241,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20230,"src":"5441:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20242,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"5458:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20237,"name":"_energyWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19861,"src":"5403:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IEnergyWallet_$21338","typeString":"contract IEnergyWallet"}},"id":20239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5417:12:60","memberName":"removeEnergy","nodeType":"MemberAccess","referencedDeclaration":21323,"src":"5403:26:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) external"}},"id":20243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20244,"nodeType":"ExpressionStatement","src":"5403:62:60"},{"eventCall":{"arguments":[{"id":20248,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"5501:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20249,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20230,"src":"5512:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20250,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"5529:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20245,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"5480:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5487:13:60","memberName":"EnergyRemoved","nodeType":"MemberAccess","referencedDeclaration":22186,"src":"5480:20:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":20251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5480:56:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20252,"nodeType":"EmitStatement","src":"5475:61:60"}]},"documentation":{"id":20221,"nodeType":"StructuredDocumentation","src":"5200:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"9e88381a","id":20254,"implemented":true,"kind":"function","modifiers":[],"name":"removeEnergyFrom","nameLocation":"5240:16:60","nodeType":"FunctionDefinition","overrides":{"id":20227,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:60"},"parameters":{"id":20226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20223,"mutability":"mutable","name":"profileId","nameLocation":"5265:9:60","nodeType":"VariableDeclaration","scope":20254,"src":"5257:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20222,"name":"uint256","nodeType":"ElementaryTypeName","src":"5257:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20225,"mutability":"mutable","name":"amount","nameLocation":"5284:6:60","nodeType":"VariableDeclaration","scope":20254,"src":"5276:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20224,"name":"uint256","nodeType":"ElementaryTypeName","src":"5276:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5256:35:60"},"returnParameters":{"id":20228,"nodeType":"ParameterList","parameters":[],"src":"5310:0:60"},"scope":21014,"src":"5231:312:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21405],"body":{"id":20265,"nodeType":"Block","src":"5840:47:60","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20261,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"5857:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":20262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5872:6:60","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19629,"src":"5857:21:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":20263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5857:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20260,"id":20264,"nodeType":"Return","src":"5850:30:60"}]},"documentation":{"id":20255,"nodeType":"StructuredDocumentation","src":"5738:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"5734e5e3","id":20266,"implemented":true,"kind":"function","modifiers":[],"name":"getOrganizationCount","nameLocation":"5778:20:60","nodeType":"FunctionDefinition","overrides":{"id":20257,"nodeType":"OverrideSpecifier","overrides":[],"src":"5813:8:60"},"parameters":{"id":20256,"nodeType":"ParameterList","parameters":[],"src":"5798:2:60"},"returnParameters":{"id":20260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20266,"src":"5831:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20258,"name":"uint256","nodeType":"ElementaryTypeName","src":"5831:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5830:9:60"},"scope":21014,"src":"5769:118:60","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21412],"body":{"id":20294,"nodeType":"Block","src":"6005:140:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20275,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20269,"src":"6019:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":20276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6027:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6019:9:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20278,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20269,"src":"6032:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20279,"name":"getOrganizationCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20266,"src":"6041:20:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":20280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6041:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6032:31:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6019:44:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20288,"nodeType":"IfStatement","src":"6015:82:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20283,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"6072:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6079:16:60","memberName":"IndexOutOfBounds","nodeType":"MemberAccess","referencedDeclaration":22129,"src":"6072:23:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6072:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20287,"nodeType":"RevertStatement","src":"6065:32:60"}},{"expression":{"arguments":[{"id":20291,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20269,"src":"6132:5:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20289,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"6114:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":20290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6129:2:60","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19656,"src":"6114:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":20292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20274,"id":20293,"nodeType":"Return","src":"6107:31:60"}]},"documentation":{"id":20267,"nodeType":"StructuredDocumentation","src":"5893:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"4526f690","id":20295,"implemented":true,"kind":"function","modifiers":[],"name":"getOrganization","nameLocation":"5933:15:60","nodeType":"FunctionDefinition","overrides":{"id":20271,"nodeType":"OverrideSpecifier","overrides":[],"src":"5978:8:60"},"parameters":{"id":20270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20269,"mutability":"mutable","name":"index","nameLocation":"5957:5:60","nodeType":"VariableDeclaration","scope":20295,"src":"5949:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20268,"name":"uint256","nodeType":"ElementaryTypeName","src":"5949:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5948:15:60"},"returnParameters":{"id":20274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20295,"src":"5996:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20272,"name":"address","nodeType":"ElementaryTypeName","src":"5996:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5995:9:60"},"scope":21014,"src":"5924:221:60","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21423],"body":{"id":20315,"nodeType":"Block","src":"6297:73:60","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":20307,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"6314:7:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":20309,"indexExpression":{"id":20308,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20298,"src":"6322:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6314:28:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20311,"indexExpression":{"id":20310,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20300,"src":"6343:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6314:36:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20312,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20302,"src":"6354:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6314:49:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":20306,"id":20314,"nodeType":"Return","src":"6307:56:60"}]},"documentation":{"id":20296,"nodeType":"StructuredDocumentation","src":"6151:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"2d5d8f67","id":20316,"implemented":true,"kind":"function","modifiers":[],"name":"hasWithdrawn","nameLocation":"6191:12:60","nodeType":"FunctionDefinition","parameters":{"id":20303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20298,"mutability":"mutable","name":"organizationAddress","nameLocation":"6212:19:60","nodeType":"VariableDeclaration","scope":20316,"src":"6204:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20297,"name":"address","nodeType":"ElementaryTypeName","src":"6204:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20300,"mutability":"mutable","name":"taskId","nameLocation":"6241:6:60","nodeType":"VariableDeclaration","scope":20316,"src":"6233:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20299,"name":"uint256","nodeType":"ElementaryTypeName","src":"6233:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20302,"mutability":"mutable","name":"profileId","nameLocation":"6257:9:60","nodeType":"VariableDeclaration","scope":20316,"src":"6249:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20301,"name":"uint256","nodeType":"ElementaryTypeName","src":"6249:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6203:64:60"},"returnParameters":{"id":20306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20316,"src":"6291:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20304,"name":"bool","nodeType":"ElementaryTypeName","src":"6291:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6290:6:60"},"scope":21014,"src":"6182:188:60","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21430],"body":{"id":20370,"nodeType":"Block","src":"6491:440:60","statements":[{"assignments":[20325],"declarations":[{"constant":false,"id":20325,"mutability":"mutable","name":"organizationAddress","nameLocation":"6509:19:60","nodeType":"VariableDeclaration","scope":20370,"src":"6501:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20324,"name":"address","nodeType":"ElementaryTypeName","src":"6501:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20334,"initialValue":{"arguments":[{"arguments":[{"id":20330,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6579:4:60","typeDescriptions":{"typeIdentifier":"t_contract$_My3SecHub_$21014","typeString":"contract My3SecHub"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_My3SecHub_$21014","typeString":"contract My3SecHub"}],"id":20329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6571:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20328,"name":"address","nodeType":"ElementaryTypeName","src":"6571:7:60","typeDescriptions":{}}},"id":20331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6571:13:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20332,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20319,"src":"6586:11:60","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":20326,"name":"_organizationFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19849,"src":"6531:20:60","typeDescriptions":{"typeIdentifier":"t_contract$_OrganizationFactory_$24267","typeString":"contract OrganizationFactory"}},"id":20327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6552:18:60","memberName":"createOrganization","nodeType":"MemberAccess","referencedDeclaration":24266,"src":"6531:39:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (address,string memory) external returns (address)"}},"id":20333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6531:67:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6501:97:60"},{"assignments":[20337],"declarations":[{"constant":false,"id":20337,"mutability":"mutable","name":"organization","nameLocation":"6622:12:60","nodeType":"VariableDeclaration","scope":20370,"src":"6608:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20336,"nodeType":"UserDefinedTypeName","pathNode":{"id":20335,"name":"IOrganization","nameLocations":["6608:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"6608:13:60"},"referencedDeclaration":21873,"src":"6608:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20341,"initialValue":{"arguments":[{"id":20339,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20325,"src":"6651:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20338,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"6637:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6637:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"6608:63:60"},{"expression":{"arguments":[{"expression":{"id":20345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6709:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6713:6:60","memberName":"sender","nodeType":"MemberAccess","src":"6709:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20342,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20337,"src":"6681:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6694:14:60","memberName":"addToWhitelist","nodeType":"MemberAccess","referencedDeclaration":21980,"src":"6681:27:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":20347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6681:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20348,"nodeType":"ExpressionStatement","src":"6681:39:60"},{"expression":{"arguments":[{"expression":{"id":20352,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6761:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6765:6:60","memberName":"sender","nodeType":"MemberAccess","src":"6761:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20349,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20337,"src":"6730:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6743:17:60","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":21872,"src":"6730:30:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":20354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6730:42:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20355,"nodeType":"ExpressionStatement","src":"6730:42:60"},{"expression":{"arguments":[{"id":20359,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20325,"src":"6802:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20356,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"6783:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":20358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6798:3:60","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19560,"src":"6783:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":20360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6783:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20361,"nodeType":"ExpressionStatement","src":"6783:39:60"},{"eventCall":{"arguments":[{"id":20365,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20325,"src":"6867:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20362,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"6837:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6844:22:60","memberName":"OrganizationRegistered","nodeType":"MemberAccess","referencedDeclaration":22190,"src":"6837:29:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6837:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20367,"nodeType":"EmitStatement","src":"6832:55:60"},{"expression":{"id":20368,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20325,"src":"6905:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20323,"id":20369,"nodeType":"Return","src":"6898:26:60"}]},"documentation":{"id":20317,"nodeType":"StructuredDocumentation","src":"6376:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"6427acca","id":20371,"implemented":true,"kind":"function","modifiers":[],"name":"createOrganization","nameLocation":"6416:18:60","nodeType":"FunctionDefinition","parameters":{"id":20320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20319,"mutability":"mutable","name":"metadataURI","nameLocation":"6451:11:60","nodeType":"VariableDeclaration","scope":20371,"src":"6435:27:60","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":20318,"name":"string","nodeType":"ElementaryTypeName","src":"6435:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6434:29:60"},"returnParameters":{"id":20323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20371,"src":"6482:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20321,"name":"address","nodeType":"ElementaryTypeName","src":"6482:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6481:9:60"},"scope":21014,"src":"6407:524:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21435],"body":{"id":20445,"nodeType":"Block","src":"7045:867:60","statements":[{"condition":{"arguments":[{"id":20380,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20374,"src":"7083:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20378,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"7059:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":20379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7074:8:60","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19614,"src":"7059:23:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":20381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7059:44:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20387,"nodeType":"IfStatement","src":"7055:83:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20382,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"7112:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7119:17:60","memberName":"AlreadyRegistered","nodeType":"MemberAccess","referencedDeclaration":22145,"src":"7112:24:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7112:26:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20386,"nodeType":"RevertStatement","src":"7105:33:60"}},{"assignments":[20389],"declarations":[{"constant":false,"id":20389,"mutability":"mutable","name":"codeSize","nameLocation":"7227:8:60","nodeType":"VariableDeclaration","scope":20445,"src":"7219:16:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20388,"name":"uint256","nodeType":"ElementaryTypeName","src":"7219:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20390,"nodeType":"VariableDeclarationStatement","src":"7219:16:60"},{"AST":{"nodeType":"YulBlock","src":"7254:68:60","statements":[{"nodeType":"YulAssignment","src":"7268:44:60","value":{"arguments":[{"name":"organizationAddress","nodeType":"YulIdentifier","src":"7292:19:60"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"7280:11:60"},"nodeType":"YulFunctionCall","src":"7280:32:60"},"variableNames":[{"name":"codeSize","nodeType":"YulIdentifier","src":"7268:8:60"}]}]},"evmVersion":"london","externalReferences":[{"declaration":20389,"isOffset":false,"isSlot":false,"src":"7268:8:60","valueSize":1},{"declaration":20374,"isOffset":false,"isSlot":false,"src":"7292:19:60","valueSize":1}],"id":20391,"nodeType":"InlineAssembly","src":"7245:77:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20392,"name":"codeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20389,"src":"7335:8:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7347:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7335:13:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20400,"nodeType":"IfStatement","src":"7331:50:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20395,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"7357:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7364:15:60","memberName":"InvalidContract","nodeType":"MemberAccess","referencedDeclaration":22127,"src":"7357:22:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7357:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20399,"nodeType":"RevertStatement","src":"7350:31:60"}},{"condition":{"id":20404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7482:45:60","subExpression":{"arguments":[{"id":20402,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20374,"src":"7507:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20401,"name":"_isOrganizationContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20722,"src":"7483:23:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":20403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7483:44:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20410,"nodeType":"IfStatement","src":"7478:82:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20405,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"7536:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7543:15:60","memberName":"InvalidContract","nodeType":"MemberAccess","referencedDeclaration":22127,"src":"7536:22:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:24:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20409,"nodeType":"RevertStatement","src":"7529:31:60"}},{"assignments":[20413],"declarations":[{"constant":false,"id":20413,"mutability":"mutable","name":"organization","nameLocation":"7584:12:60","nodeType":"VariableDeclaration","scope":20445,"src":"7570:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20412,"nodeType":"UserDefinedTypeName","pathNode":{"id":20411,"name":"IOrganization","nameLocations":["7570:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"7570:13:60"},"referencedDeclaration":21873,"src":"7570:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20417,"initialValue":{"arguments":[{"id":20415,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20374,"src":"7613:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20414,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"7599:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7599:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"7570:63:60"},{"condition":{"id":20423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7717:39:60","subExpression":{"arguments":[{"expression":{"id":20420,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7745:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7749:6:60","memberName":"sender","nodeType":"MemberAccess","src":"7745:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20418,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20413,"src":"7718:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7731:13:60","memberName":"isWhitelisted","nodeType":"MemberAccess","referencedDeclaration":21975,"src":"7718:26:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":20422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7718:38:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20429,"nodeType":"IfStatement","src":"7713:75:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20424,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"7765:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7772:14:60","memberName":"NotWhitelisted","nodeType":"MemberAccess","referencedDeclaration":22137,"src":"7765:21:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7765:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20428,"nodeType":"RevertStatement","src":"7758:30:60"}},{"expression":{"arguments":[{"id":20433,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20374,"src":"7818:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20430,"name":"_organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"7799:14:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":20432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7814:3:60","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19560,"src":"7799:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":20434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7799:39:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20435,"nodeType":"ExpressionStatement","src":"7799:39:60"},{"eventCall":{"arguments":[{"arguments":[{"id":20441,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20413,"src":"7891:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}],"id":20440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7883:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20439,"name":"address","nodeType":"ElementaryTypeName","src":"7883:7:60","typeDescriptions":{}}},"id":20442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20436,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"7853:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7860:22:60","memberName":"OrganizationRegistered","nodeType":"MemberAccess","referencedDeclaration":22190,"src":"7853:29:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7853:52:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20444,"nodeType":"EmitStatement","src":"7848:57:60"}]},"documentation":{"id":20372,"nodeType":"StructuredDocumentation","src":"6937:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"90be003c","id":20446,"implemented":true,"kind":"function","modifiers":[],"name":"registerOrganization","nameLocation":"6977:20:60","nodeType":"FunctionDefinition","overrides":{"id":20376,"nodeType":"OverrideSpecifier","overrides":[],"src":"7036:8:60"},"parameters":{"id":20375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20374,"mutability":"mutable","name":"organizationAddress","nameLocation":"7006:19:60","nodeType":"VariableDeclaration","scope":20446,"src":"6998:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20373,"name":"address","nodeType":"ElementaryTypeName","src":"6998:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6997:29:60"},"returnParameters":{"id":20377,"nodeType":"ParameterList","parameters":[],"src":"7045:0:60"},"scope":21014,"src":"6968:944:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21440],"body":{"id":20481,"nodeType":"Block","src":"8022:285:60","statements":[{"assignments":[20454],"declarations":[{"constant":false,"id":20454,"mutability":"mutable","name":"senderProfileId","nameLocation":"8040:15:60","nodeType":"VariableDeclaration","scope":20481,"src":"8032:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20453,"name":"uint256","nodeType":"ElementaryTypeName","src":"8032:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20460,"initialValue":{"arguments":[{"expression":{"id":20457,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8094:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8098:6:60","memberName":"sender","nodeType":"MemberAccess","src":"8094:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20455,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"8058:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8074:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"8058:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8058:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8032:73:60"},{"assignments":[20463],"declarations":[{"constant":false,"id":20463,"mutability":"mutable","name":"organization","nameLocation":"8129:12:60","nodeType":"VariableDeclaration","scope":20481,"src":"8115:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20462,"nodeType":"UserDefinedTypeName","pathNode":{"id":20461,"name":"IOrganization","nameLocations":["8115:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"8115:13:60"},"referencedDeclaration":21873,"src":"8115:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20467,"initialValue":{"arguments":[{"id":20465,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20449,"src":"8158:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20464,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"8144:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"8115:63:60"},{"expression":{"arguments":[{"id":20471,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20454,"src":"8206:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20468,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20463,"src":"8188:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8201:4:60","memberName":"join","nodeType":"MemberAccess","referencedDeclaration":21666,"src":"8188:17:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":20472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20473,"nodeType":"ExpressionStatement","src":"8188:34:60"},{"eventCall":{"arguments":[{"id":20477,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20449,"src":"8263:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20478,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20454,"src":"8284:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20474,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"8237:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8244:18:60","memberName":"OrganizationJoined","nodeType":"MemberAccess","referencedDeclaration":22196,"src":"8237:25:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:63:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20480,"nodeType":"EmitStatement","src":"8232:68:60"}]},"documentation":{"id":20447,"nodeType":"StructuredDocumentation","src":"7918:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"beef9895","id":20482,"implemented":true,"kind":"function","modifiers":[],"name":"joinOrganization","nameLocation":"7958:16:60","nodeType":"FunctionDefinition","overrides":{"id":20451,"nodeType":"OverrideSpecifier","overrides":[],"src":"8013:8:60"},"parameters":{"id":20450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20449,"mutability":"mutable","name":"organizationAddress","nameLocation":"7983:19:60","nodeType":"VariableDeclaration","scope":20482,"src":"7975:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20448,"name":"address","nodeType":"ElementaryTypeName","src":"7975:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7974:29:60"},"returnParameters":{"id":20452,"nodeType":"ParameterList","parameters":[],"src":"8022:0:60"},"scope":21014,"src":"7949:358:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21445],"body":{"id":20517,"nodeType":"Block","src":"8418:284:60","statements":[{"assignments":[20490],"declarations":[{"constant":false,"id":20490,"mutability":"mutable","name":"senderProfileId","nameLocation":"8436:15:60","nodeType":"VariableDeclaration","scope":20517,"src":"8428:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20489,"name":"uint256","nodeType":"ElementaryTypeName","src":"8428:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20496,"initialValue":{"arguments":[{"expression":{"id":20493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8490:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8494:6:60","memberName":"sender","nodeType":"MemberAccess","src":"8490:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20491,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"8454:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8470:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"8454:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8454:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8428:73:60"},{"assignments":[20499],"declarations":[{"constant":false,"id":20499,"mutability":"mutable","name":"organization","nameLocation":"8525:12:60","nodeType":"VariableDeclaration","scope":20517,"src":"8511:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20498,"nodeType":"UserDefinedTypeName","pathNode":{"id":20497,"name":"IOrganization","nameLocations":["8511:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"8511:13:60"},"referencedDeclaration":21873,"src":"8511:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20503,"initialValue":{"arguments":[{"id":20501,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20485,"src":"8554:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20500,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"8540:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8540:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"8511:63:60"},{"expression":{"arguments":[{"id":20507,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"8603:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20504,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20499,"src":"8584:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8597:5:60","memberName":"leave","nodeType":"MemberAccess","referencedDeclaration":21671,"src":"8584:18:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":20508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8584:35:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20509,"nodeType":"ExpressionStatement","src":"8584:35:60"},{"eventCall":{"arguments":[{"id":20513,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20485,"src":"8658:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20514,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"8679:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20510,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"8634:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8641:16:60","memberName":"OrganizationLeft","nodeType":"MemberAccess","referencedDeclaration":22202,"src":"8634:23:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8634:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20516,"nodeType":"EmitStatement","src":"8629:66:60"}]},"documentation":{"id":20483,"nodeType":"StructuredDocumentation","src":"8313:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"4ee2ad7c","id":20518,"implemented":true,"kind":"function","modifiers":[],"name":"leaveOrganization","nameLocation":"8353:17:60","nodeType":"FunctionDefinition","overrides":{"id":20487,"nodeType":"OverrideSpecifier","overrides":[],"src":"8409:8:60"},"parameters":{"id":20486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20485,"mutability":"mutable","name":"organizationAddress","nameLocation":"8379:19:60","nodeType":"VariableDeclaration","scope":20518,"src":"8371:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20484,"name":"address","nodeType":"ElementaryTypeName","src":"8371:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8370:29:60"},"returnParameters":{"id":20488,"nodeType":"ParameterList","parameters":[],"src":"8418:0:60"},"scope":21014,"src":"8344:358:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21454],"body":{"id":20569,"nodeType":"Block","src":"8907:418:60","statements":[{"assignments":[20533],"declarations":[{"constant":false,"id":20533,"mutability":"mutable","name":"senderProfileId","nameLocation":"8925:15:60","nodeType":"VariableDeclaration","scope":20569,"src":"8917:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20532,"name":"uint256","nodeType":"ElementaryTypeName","src":"8917:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20539,"initialValue":{"arguments":[{"expression":{"id":20536,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8979:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8983:6:60","memberName":"sender","nodeType":"MemberAccess","src":"8979:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20534,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"8943:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8959:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"8943:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8943:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8917:73:60"},{"assignments":[20542],"declarations":[{"constant":false,"id":20542,"mutability":"mutable","name":"organization","nameLocation":"9014:12:60","nodeType":"VariableDeclaration","scope":20569,"src":"9000:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20541,"nodeType":"UserDefinedTypeName","pathNode":{"id":20540,"name":"IOrganization","nameLocations":["9000:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"9000:13:60"},"referencedDeclaration":21873,"src":"9000:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20546,"initialValue":{"arguments":[{"id":20544,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20521,"src":"9043:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20543,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"9029:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9029:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"9000:63:60"},{"expression":{"arguments":[{"id":20550,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"9171:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20551,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"9188:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20547,"name":"_timeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19864,"src":"9146:11:60","typeDescriptions":{"typeIdentifier":"t_contract$_ITimeWallet_$21954","typeString":"contract ITimeWallet"}},"id":20549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9158:12:60","memberName":"spendTimeFor","nodeType":"MemberAccess","referencedDeclaration":21953,"src":"9146:24:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":20552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9146:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20553,"nodeType":"ExpressionStatement","src":"9146:47:60"},{"expression":{"arguments":[{"id":20557,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"9232:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20558,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20523,"src":"9249:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20559,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"9257:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20554,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"9204:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9217:14:60","memberName":"updateTaskTime","nodeType":"MemberAccess","referencedDeclaration":21867,"src":"9204:27:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) external"}},"id":20560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:58:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20561,"nodeType":"ExpressionStatement","src":"9204:58:60"},{"eventCall":{"arguments":[{"id":20565,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"9296:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20566,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"9313:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20562,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"9278:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9285:10:60","memberName":"TimeLogged","nodeType":"MemberAccess","referencedDeclaration":22278,"src":"9278:17:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":20567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9278:40:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20568,"nodeType":"EmitStatement","src":"9273:45:60"}]},"documentation":{"id":20519,"nodeType":"StructuredDocumentation","src":"8708:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"7f521ebe","id":20570,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":20529,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20521,"src":"8886:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":20530,"kind":"modifierInvocation","modifierName":{"id":20528,"name":"organizationRegistered","nameLocations":["8863:22:60"],"nodeType":"IdentifierPath","referencedDeclaration":19893,"src":"8863:22:60"},"nodeType":"ModifierInvocation","src":"8863:43:60"}],"name":"logTime","nameLocation":"8748:7:60","nodeType":"FunctionDefinition","overrides":{"id":20527,"nodeType":"OverrideSpecifier","overrides":[],"src":"8854:8:60"},"parameters":{"id":20526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20521,"mutability":"mutable","name":"organizationAddress","nameLocation":"8773:19:60","nodeType":"VariableDeclaration","scope":20570,"src":"8765:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20520,"name":"address","nodeType":"ElementaryTypeName","src":"8765:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20523,"mutability":"mutable","name":"taskId","nameLocation":"8810:6:60","nodeType":"VariableDeclaration","scope":20570,"src":"8802:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20522,"name":"uint256","nodeType":"ElementaryTypeName","src":"8802:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20525,"mutability":"mutable","name":"time","nameLocation":"8834:4:60","nodeType":"VariableDeclaration","scope":20570,"src":"8826:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20524,"name":"uint256","nodeType":"ElementaryTypeName","src":"8826:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8755:89:60"},"returnParameters":{"id":20531,"nodeType":"ParameterList","parameters":[],"src":"8907:0:60"},"scope":21014,"src":"8739:586:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21461],"body":{"id":20696,"nodeType":"Block","src":"9434:962:60","statements":[{"assignments":[20579],"declarations":[{"constant":false,"id":20579,"mutability":"mutable","name":"senderProfileId","nameLocation":"9452:15:60","nodeType":"VariableDeclaration","scope":20696,"src":"9444:23:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20578,"name":"uint256","nodeType":"ElementaryTypeName","src":"9444:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20585,"initialValue":{"arguments":[{"expression":{"id":20582,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9506:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9510:6:60","memberName":"sender","nodeType":"MemberAccess","src":"9506:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20580,"name":"_my3SecProfiles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19858,"src":"9470:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecProfiles_$21601","typeString":"contract IMy3SecProfiles"}},"id":20581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9486:19:60","memberName":"getDefaultProfileId","nodeType":"MemberAccess","referencedDeclaration":21570,"src":"9470:35:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":20584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9470:47:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9444:73:60"},{"assignments":[20588],"declarations":[{"constant":false,"id":20588,"mutability":"mutable","name":"organization","nameLocation":"9541:12:60","nodeType":"VariableDeclaration","scope":20696,"src":"9527:26:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":20587,"nodeType":"UserDefinedTypeName","pathNode":{"id":20586,"name":"IOrganization","nameLocations":["9527:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"9527:13:60"},"referencedDeclaration":21873,"src":"9527:13:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":20592,"initialValue":{"arguments":[{"id":20590,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20573,"src":"9570:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20589,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"9556:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"nodeType":"VariableDeclarationStatement","src":"9527:63:60"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20595,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"9631:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20596,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9639:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20593,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20588,"src":"9605:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9618:12:60","memberName":"isTaskMember","nodeType":"MemberAccess","referencedDeclaration":21799,"src":"9605:25:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view external returns (bool)"}},"id":20597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9605:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"74727565","id":20598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9659:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9605:58:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20605,"nodeType":"IfStatement","src":"9601:89:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20600,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"9672:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9679:9:60","memberName":"NotMember","nodeType":"MemberAccess","referencedDeclaration":22149,"src":"9672:16:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9672:18:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20604,"nodeType":"RevertStatement","src":"9665:25:60"}},{"assignments":[20610],"declarations":[{"constant":false,"id":20610,"mutability":"mutable","name":"task","nameLocation":"9727:4:60","nodeType":"VariableDeclaration","scope":20696,"src":"9701:30:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":20609,"nodeType":"UserDefinedTypeName","pathNode":{"id":20608,"name":"DataTypes.TaskView","nameLocations":["9701:9:60","9711:8:60"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"9701:18:60"},"referencedDeclaration":22111,"src":"9701:18:60","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"id":20615,"initialValue":{"arguments":[{"id":20613,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"9755:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20611,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20588,"src":"9734:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9747:7:60","memberName":"getTask","nodeType":"MemberAccess","referencedDeclaration":21774,"src":"9734:20:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_TaskView_$22111_memory_ptr_$","typeString":"function (uint256) view external returns (struct DataTypes.TaskView memory)"}},"id":20614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9734:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"nodeType":"VariableDeclarationStatement","src":"9701:61:60"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},"id":20621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20616,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"9777:4:60","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"id":20617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9782:6:60","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22107,"src":"9777:11:60","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":20618,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"9792:9:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":20619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9802:10:60","memberName":"TaskStatus","nodeType":"MemberAccess","referencedDeclaration":22068,"src":"9792:20:60","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_TaskStatus_$22068_$","typeString":"type(enum DataTypes.TaskStatus)"}},"id":20620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9813:9:60","memberName":"COMPLETED","nodeType":"MemberAccess","referencedDeclaration":22066,"src":"9792:30:60","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"src":"9777:45:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20627,"nodeType":"IfStatement","src":"9773:79:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20622,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"9831:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9838:12:60","memberName":"NotCompleted","nodeType":"MemberAccess","referencedDeclaration":22157,"src":"9831:19:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9831:21:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20626,"nodeType":"RevertStatement","src":"9824:28:60"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":20628,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"9867:7:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":20630,"indexExpression":{"id":20629,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20573,"src":"9875:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9867:28:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20632,"indexExpression":{"id":20631,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"9896:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9867:36:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":20633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9907:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9867:41:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20640,"nodeType":"IfStatement","src":"9863:79:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20635,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"9917:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9924:16:60","memberName":"AlreadyWithdrawn","nodeType":"MemberAccess","referencedDeclaration":22161,"src":"9917:23:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:25:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20639,"nodeType":"RevertStatement","src":"9910:32:60"}},{"expression":{"id":20647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":20641,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"9952:7:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":20644,"indexExpression":{"id":20642,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20573,"src":"9960:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9952:28:60","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20645,"indexExpression":{"id":20643,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"9981:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9952:36:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20646,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"9991:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9952:54:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20648,"nodeType":"ExpressionStatement","src":"9952:54:60"},{"assignments":[20650],"declarations":[{"constant":false,"id":20650,"mutability":"mutable","name":"skillCount","nameLocation":"10025:10:60","nodeType":"VariableDeclaration","scope":20696,"src":"10017:18:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20649,"name":"uint256","nodeType":"ElementaryTypeName","src":"10017:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20654,"initialValue":{"expression":{"expression":{"id":20651,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"10038:4:60","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"id":20652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10043:6:60","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22110,"src":"10038:11:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":20653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10050:6:60","memberName":"length","nodeType":"MemberAccess","src":"10038:18:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10017:39:60"},{"body":{"id":20686,"nodeType":"Block","src":"10107:196:60","statements":[{"assignments":[20666],"declarations":[{"constant":false,"id":20666,"mutability":"mutable","name":"time","nameLocation":"10129:4:60","nodeType":"VariableDeclaration","scope":20686,"src":"10121:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20665,"name":"uint256","nodeType":"ElementaryTypeName","src":"10121:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20672,"initialValue":{"arguments":[{"id":20669,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"10176:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20670,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"10184:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20667,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20588,"src":"10136:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10149:26:60","memberName":"getTaskLoggedTimeOfProfile","nodeType":"MemberAccess","referencedDeclaration":21826,"src":"10136:39:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":20671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10136:64:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10121:79:60"},{"expression":{"arguments":[{"id":20676,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"10244:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":20677,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"10261:4:60","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"id":20678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10266:6:60","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22110,"src":"10261:11:60","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":20680,"indexExpression":{"id":20679,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20656,"src":"10273:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10261:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20681,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20666,"src":"10277:4:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"31","id":20682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10284:7:60","subdenomination":"hours","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"1"},"src":"10277:14:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20673,"name":"_skillWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19867,"src":"10214:12:60","typeDescriptions":{"typeIdentifier":"t_contract$_ISkillWallet_$21944","typeString":"contract ISkillWallet"}},"id":20675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10227:16:60","memberName":"recordExperience","nodeType":"MemberAccess","referencedDeclaration":21943,"src":"10214:29:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) external"}},"id":20684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10214:78:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20685,"nodeType":"ExpressionStatement","src":"10214:78:60"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20656,"src":"10086:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":20660,"name":"skillCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20650,"src":"10090:10:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10086:14:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20687,"initializationExpression":{"assignments":[20656],"declarations":[{"constant":false,"id":20656,"mutability":"mutable","name":"i","nameLocation":"10079:1:60","nodeType":"VariableDeclaration","scope":20687,"src":"10071:9:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20655,"name":"uint256","nodeType":"ElementaryTypeName","src":"10071:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20658,"initialValue":{"hexValue":"30","id":20657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10083:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10071:13:60"},"loopExpression":{"expression":{"id":20663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10102:3:60","subExpression":{"id":20662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20656,"src":"10102:1:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20664,"nodeType":"ExpressionStatement","src":"10102:3:60"},"nodeType":"ForStatement","src":"10066:237:60"},{"eventCall":{"arguments":[{"id":20691,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20573,"src":"10344:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20692,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20575,"src":"10365:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20693,"name":"senderProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20579,"src":"10373:15:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20688,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"10317:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10324:19:60","memberName":"ExperienceWithdrawn","nodeType":"MemberAccess","referencedDeclaration":22286,"src":"10317:26:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10317:72:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20695,"nodeType":"EmitStatement","src":"10312:77:60"}]},"documentation":{"id":20571,"nodeType":"StructuredDocumentation","src":"9331:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"f3fef3a3","id":20697,"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"9371:8:60","nodeType":"FunctionDefinition","parameters":{"id":20576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20573,"mutability":"mutable","name":"organizationAddress","nameLocation":"9388:19:60","nodeType":"VariableDeclaration","scope":20697,"src":"9380:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20572,"name":"address","nodeType":"ElementaryTypeName","src":"9380:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20575,"mutability":"mutable","name":"taskId","nameLocation":"9417:6:60","nodeType":"VariableDeclaration","scope":20697,"src":"9409:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20574,"name":"uint256","nodeType":"ElementaryTypeName","src":"9409:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9379:45:60"},"returnParameters":{"id":20577,"nodeType":"ParameterList","parameters":[],"src":"9434:0:60"},"scope":21014,"src":"9362:1034:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20721,"nodeType":"Block","src":"10486:163:60","statements":[{"clauses":[{"block":{"id":20714,"nodeType":"Block","src":"10563:36:60","statements":[{"expression":{"hexValue":"74727565","id":20712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10584:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20703,"id":20713,"nodeType":"Return","src":"10577:11:60"}]},"errorName":"","id":20715,"nodeType":"TryCatchClause","parameters":{"id":20711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20715,"src":"10554:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20709,"name":"uint256","nodeType":"ElementaryTypeName","src":"10554:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10553:9:60"},"src":"10545:54:60"},{"block":{"id":20718,"nodeType":"Block","src":"10606:37:60","statements":[{"expression":{"hexValue":"66616c7365","id":20716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10627:5:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":20703,"id":20717,"nodeType":"Return","src":"10620:12:60"}]},"errorName":"","id":20719,"nodeType":"TryCatchClause","src":"10600:43:60"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":20705,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20699,"src":"10514:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20704,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"10500:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10500:27:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10528:14:60","memberName":"getMemberCount","nodeType":"MemberAccess","referencedDeclaration":21623,"src":"10500:42:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":20708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10500:44:60","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20720,"nodeType":"TryStatement","src":"10496:147:60"}]},"id":20722,"implemented":true,"kind":"function","modifiers":[],"name":"_isOrganizationContract","nameLocation":"10411:23:60","nodeType":"FunctionDefinition","parameters":{"id":20700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20699,"mutability":"mutable","name":"organization","nameLocation":"10443:12:60","nodeType":"VariableDeclaration","scope":20722,"src":"10435:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20698,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10434:22:60"},"returnParameters":{"id":20703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":20722,"src":"10480:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20701,"name":"bool","nodeType":"ElementaryTypeName","src":"10480:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10479:6:60"},"scope":21014,"src":"10402:247:60","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[21468],"body":{"id":20763,"nodeType":"Block","src":"10947:305:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20730,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10961:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10965:6:60","memberName":"sender","nodeType":"MemberAccess","src":"10961:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":20732,"name":"_governanceTimelockContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19846,"src":"10975:34:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10961:48:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20739,"nodeType":"IfStatement","src":"10957:83:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20734,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"11018:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11025:13:60","memberName":"NotGovernance","nodeType":"MemberAccess","referencedDeclaration":22135,"src":"11018:20:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11018:22:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20738,"nodeType":"RevertStatement","src":"11011:29:60"}},{"assignments":[20741],"declarations":[{"constant":false,"id":20741,"mutability":"mutable","name":"account","nameLocation":"11058:7:60","nodeType":"VariableDeclaration","scope":20763,"src":"11050:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20740,"name":"address","nodeType":"ElementaryTypeName","src":"11050:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20745,"initialValue":{"arguments":[{"id":20743,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20725,"src":"11086:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20742,"name":"getProfileAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20065,"src":"11068:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":20744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11068:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11050:46:60"},{"assignments":[20747],"declarations":[{"constant":false,"id":20747,"mutability":"mutable","name":"certificateId","nameLocation":"11114:13:60","nodeType":"VariableDeclaration","scope":20763,"src":"11106:21:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20746,"name":"uint256","nodeType":"ElementaryTypeName","src":"11106:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20753,"initialValue":{"arguments":[{"id":20750,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20741,"src":"11155:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20751,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20727,"src":"11164:3:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20748,"name":"_certificateNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"11130:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"id":20749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11146:8:60","memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":21233,"src":"11130:24:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,string memory) external returns (uint256)"}},"id":20752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11130:38:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11106:62:60"},{"eventCall":{"arguments":[{"expression":{"id":20757,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11208:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11212:6:60","memberName":"sender","nodeType":"MemberAccess","src":"11208:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20759,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20725,"src":"11220:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20760,"name":"certificateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20747,"src":"11231:13:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20754,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"11183:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11190:17:60","memberName":"CertificateIssued","nodeType":"MemberAccess","referencedDeclaration":22298,"src":"11183:24:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11183:62:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20762,"nodeType":"EmitStatement","src":"11178:67:60"}]},"documentation":{"id":20723,"nodeType":"StructuredDocumentation","src":"10843:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"0c816de4","id":20764,"implemented":true,"kind":"function","modifiers":[],"name":"issueCertificate","nameLocation":"10883:16:60","nodeType":"FunctionDefinition","parameters":{"id":20728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20725,"mutability":"mutable","name":"profileId","nameLocation":"10908:9:60","nodeType":"VariableDeclaration","scope":20764,"src":"10900:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20724,"name":"uint256","nodeType":"ElementaryTypeName","src":"10900:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20727,"mutability":"mutable","name":"uri","nameLocation":"10933:3:60","nodeType":"VariableDeclaration","scope":20764,"src":"10919:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20726,"name":"string","nodeType":"ElementaryTypeName","src":"10919:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10899:38:60"},"returnParameters":{"id":20729,"nodeType":"ParameterList","parameters":[],"src":"10947:0:60"},"scope":21014,"src":"10874:378:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21477],"body":{"id":20817,"nodeType":"Block","src":"11465:364:60","statements":[{"assignments":[20778],"declarations":[{"constant":false,"id":20778,"mutability":"mutable","name":"isManager","nameLocation":"11480:9:60","nodeType":"VariableDeclaration","scope":20817,"src":"11475:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20777,"name":"bool","nodeType":"ElementaryTypeName","src":"11475:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":20786,"initialValue":{"arguments":[{"expression":{"id":20783,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11541:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11545:6:60","memberName":"sender","nodeType":"MemberAccess","src":"11541:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":20780,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20767,"src":"11506:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20779,"name":"IOrganization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21873,"src":"11492:13:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOrganization_$21873_$","typeString":"type(contract IOrganization)"}},"id":20781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:34:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":20782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11527:13:60","memberName":"isWhitelisted","nodeType":"MemberAccess","referencedDeclaration":21975,"src":"11492:48:60","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":20785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:60:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11475:77:60"},{"condition":{"id":20788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11566:10:60","subExpression":{"id":20787,"name":"isManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20778,"src":"11567:9:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20794,"nodeType":"IfStatement","src":"11562:46:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":20789,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"11585:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":20791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11592:14:60","memberName":"NotWhitelisted","nodeType":"MemberAccess","referencedDeclaration":22137,"src":"11585:21:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":20792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11585:23:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20793,"nodeType":"RevertStatement","src":"11578:30:60"}},{"assignments":[20796],"declarations":[{"constant":false,"id":20796,"mutability":"mutable","name":"account","nameLocation":"11626:7:60","nodeType":"VariableDeclaration","scope":20817,"src":"11618:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20795,"name":"address","nodeType":"ElementaryTypeName","src":"11618:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":20800,"initialValue":{"arguments":[{"id":20798,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20769,"src":"11654:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20797,"name":"getProfileAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20065,"src":"11636:17:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":20799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11636:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11618:46:60"},{"assignments":[20802],"declarations":[{"constant":false,"id":20802,"mutability":"mutable","name":"certificateId","nameLocation":"11682:13:60","nodeType":"VariableDeclaration","scope":20817,"src":"11674:21:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20801,"name":"uint256","nodeType":"ElementaryTypeName","src":"11674:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20808,"initialValue":{"arguments":[{"id":20805,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20796,"src":"11723:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20806,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20771,"src":"11732:3:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20803,"name":"_certificateNFT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"11698:15:60","typeDescriptions":{"typeIdentifier":"t_contract$_ICertificateNFT_$21239","typeString":"contract ICertificateNFT"}},"id":20804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11714:8:60","memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":21233,"src":"11698:24:60","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,string memory) external returns (uint256)"}},"id":20807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11698:38:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11674:62:60"},{"eventCall":{"arguments":[{"id":20812,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20767,"src":"11776:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20813,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20769,"src":"11797:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20814,"name":"certificateId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"11808:13:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20809,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"11751:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11758:17:60","memberName":"CertificateIssued","nodeType":"MemberAccess","referencedDeclaration":22298,"src":"11751:24:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:71:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20816,"nodeType":"EmitStatement","src":"11746:76:60"}]},"documentation":{"id":20765,"nodeType":"StructuredDocumentation","src":"11258:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"0ce51f56","id":20818,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":20774,"name":"organizationAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20767,"src":"11444:19:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":20775,"kind":"modifierInvocation","modifierName":{"id":20773,"name":"organizationRegistered","nameLocations":["11421:22:60"],"nodeType":"IdentifierPath","referencedDeclaration":19893,"src":"11421:22:60"},"nodeType":"ModifierInvocation","src":"11421:43:60"}],"name":"issueCertificate","nameLocation":"11298:16:60","nodeType":"FunctionDefinition","parameters":{"id":20772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20767,"mutability":"mutable","name":"organizationAddress","nameLocation":"11332:19:60","nodeType":"VariableDeclaration","scope":20818,"src":"11324:27:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20766,"name":"address","nodeType":"ElementaryTypeName","src":"11324:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20769,"mutability":"mutable","name":"profileId","nameLocation":"11369:9:60","nodeType":"VariableDeclaration","scope":20818,"src":"11361:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20768,"name":"uint256","nodeType":"ElementaryTypeName","src":"11361:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20771,"mutability":"mutable","name":"uri","nameLocation":"11402:3:60","nodeType":"VariableDeclaration","scope":20818,"src":"11388:17:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20770,"name":"string","nodeType":"ElementaryTypeName","src":"11388:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11314:97:60"},"returnParameters":{"id":20776,"nodeType":"ParameterList","parameters":[],"src":"11465:0:60"},"scope":21014,"src":"11289:540:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21484],"body":{"id":20835,"nodeType":"Block","src":"12191:75:60","statements":[{"eventCall":{"arguments":[{"id":20831,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20821,"src":"12235:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20832,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20823,"src":"12249:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20828,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"12206:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12213:21:60","memberName":"PendingMemberApproved","nodeType":"MemberAccess","referencedDeclaration":22208,"src":"12206:28:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12206:53:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20834,"nodeType":"EmitStatement","src":"12201:58:60"}]},"documentation":{"id":20819,"nodeType":"StructuredDocumentation","src":"12020:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"16b726e5","id":20836,"implemented":true,"kind":"function","modifiers":[{"id":20826,"kind":"modifierInvocation","modifierName":{"id":20825,"name":"onlyRegisteredOrganizationCaller","nameLocations":["12158:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"12158:32:60"},"nodeType":"ModifierInvocation","src":"12158:32:60"}],"name":"emitPendingMemberApproved","nameLocation":"12060:25:60","nodeType":"FunctionDefinition","parameters":{"id":20824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20821,"mutability":"mutable","name":"organization","nameLocation":"12103:12:60","nodeType":"VariableDeclaration","scope":20836,"src":"12095:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20820,"name":"address","nodeType":"ElementaryTypeName","src":"12095:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20823,"mutability":"mutable","name":"profileId","nameLocation":"12133:9:60","nodeType":"VariableDeclaration","scope":20836,"src":"12125:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20822,"name":"uint256","nodeType":"ElementaryTypeName","src":"12125:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12085:63:60"},"returnParameters":{"id":20827,"nodeType":"ParameterList","parameters":[],"src":"12191:0:60"},"scope":21014,"src":"12051:215:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21491],"body":{"id":20853,"nodeType":"Block","src":"12443:75:60","statements":[{"eventCall":{"arguments":[{"id":20849,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20839,"src":"12487:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20850,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20841,"src":"12501:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20846,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"12458:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12465:21:60","memberName":"PendingMemberRejected","nodeType":"MemberAccess","referencedDeclaration":22214,"src":"12458:28:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12458:53:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20852,"nodeType":"EmitStatement","src":"12453:58:60"}]},"documentation":{"id":20837,"nodeType":"StructuredDocumentation","src":"12272:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"ed94a4d5","id":20854,"implemented":true,"kind":"function","modifiers":[{"id":20844,"kind":"modifierInvocation","modifierName":{"id":20843,"name":"onlyRegisteredOrganizationCaller","nameLocations":["12410:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"12410:32:60"},"nodeType":"ModifierInvocation","src":"12410:32:60"}],"name":"emitPendingMemberRejected","nameLocation":"12312:25:60","nodeType":"FunctionDefinition","parameters":{"id":20842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20839,"mutability":"mutable","name":"organization","nameLocation":"12355:12:60","nodeType":"VariableDeclaration","scope":20854,"src":"12347:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20838,"name":"address","nodeType":"ElementaryTypeName","src":"12347:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20841,"mutability":"mutable","name":"profileId","nameLocation":"12385:9:60","nodeType":"VariableDeclaration","scope":20854,"src":"12377:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20840,"name":"uint256","nodeType":"ElementaryTypeName","src":"12377:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12337:63:60"},"returnParameters":{"id":20845,"nodeType":"ParameterList","parameters":[],"src":"12443:0:60"},"scope":21014,"src":"12303:215:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21498],"body":{"id":20871,"nodeType":"Block","src":"12666:68:60","statements":[{"eventCall":{"arguments":[{"id":20867,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20857,"src":"12703:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20868,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20859,"src":"12717:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20864,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"12681:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12688:14:60","memberName":"ProjectCreated","nodeType":"MemberAccess","referencedDeclaration":22220,"src":"12681:21:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12681:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20870,"nodeType":"EmitStatement","src":"12676:51:60"}]},"documentation":{"id":20855,"nodeType":"StructuredDocumentation","src":"12524:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"5421eed8","id":20872,"implemented":true,"kind":"function","modifiers":[{"id":20862,"kind":"modifierInvocation","modifierName":{"id":20861,"name":"onlyRegisteredOrganizationCaller","nameLocations":["12633:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"12633:32:60"},"nodeType":"ModifierInvocation","src":"12633:32:60"}],"name":"emitProjectCreated","nameLocation":"12564:18:60","nodeType":"FunctionDefinition","parameters":{"id":20860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20857,"mutability":"mutable","name":"organization","nameLocation":"12591:12:60","nodeType":"VariableDeclaration","scope":20872,"src":"12583:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20856,"name":"address","nodeType":"ElementaryTypeName","src":"12583:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20859,"mutability":"mutable","name":"projectId","nameLocation":"12613:9:60","nodeType":"VariableDeclaration","scope":20872,"src":"12605:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20858,"name":"uint256","nodeType":"ElementaryTypeName","src":"12605:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12582:41:60"},"returnParameters":{"id":20863,"nodeType":"ParameterList","parameters":[],"src":"12666:0:60"},"scope":21014,"src":"12555:179:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21505],"body":{"id":20889,"nodeType":"Block","src":"12882:68:60","statements":[{"eventCall":{"arguments":[{"id":20885,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20875,"src":"12919:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20886,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20877,"src":"12933:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20882,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"12897:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12904:14:60","memberName":"ProjectUpdated","nodeType":"MemberAccess","referencedDeclaration":22226,"src":"12897:21:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12897:46:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20888,"nodeType":"EmitStatement","src":"12892:51:60"}]},"documentation":{"id":20873,"nodeType":"StructuredDocumentation","src":"12740:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"96937b43","id":20890,"implemented":true,"kind":"function","modifiers":[{"id":20880,"kind":"modifierInvocation","modifierName":{"id":20879,"name":"onlyRegisteredOrganizationCaller","nameLocations":["12849:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"12849:32:60"},"nodeType":"ModifierInvocation","src":"12849:32:60"}],"name":"emitProjectUpdated","nameLocation":"12780:18:60","nodeType":"FunctionDefinition","parameters":{"id":20878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20875,"mutability":"mutable","name":"organization","nameLocation":"12807:12:60","nodeType":"VariableDeclaration","scope":20890,"src":"12799:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20874,"name":"address","nodeType":"ElementaryTypeName","src":"12799:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20877,"mutability":"mutable","name":"projectId","nameLocation":"12829:9:60","nodeType":"VariableDeclaration","scope":20890,"src":"12821:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20876,"name":"uint256","nodeType":"ElementaryTypeName","src":"12821:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12798:41:60"},"returnParameters":{"id":20881,"nodeType":"ParameterList","parameters":[],"src":"12882:0:60"},"scope":21014,"src":"12771:179:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21514],"body":{"id":20910,"nodeType":"Block","src":"13151:83:60","statements":[{"eventCall":{"arguments":[{"id":20905,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20893,"src":"13192:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20906,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20895,"src":"13206:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20907,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20897,"src":"13217:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20902,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"13166:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13173:18:60","memberName":"ProjectMemberAdded","nodeType":"MemberAccess","referencedDeclaration":22234,"src":"13166:25:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13166:61:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20909,"nodeType":"EmitStatement","src":"13161:66:60"}]},"documentation":{"id":20891,"nodeType":"StructuredDocumentation","src":"12956:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"3c819124","id":20911,"implemented":true,"kind":"function","modifiers":[{"id":20900,"kind":"modifierInvocation","modifierName":{"id":20899,"name":"onlyRegisteredOrganizationCaller","nameLocations":["13118:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"13118:32:60"},"nodeType":"ModifierInvocation","src":"13118:32:60"}],"name":"emitProjectMemberAdded","nameLocation":"12996:22:60","nodeType":"FunctionDefinition","parameters":{"id":20898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20893,"mutability":"mutable","name":"organization","nameLocation":"13036:12:60","nodeType":"VariableDeclaration","scope":20911,"src":"13028:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20892,"name":"address","nodeType":"ElementaryTypeName","src":"13028:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20895,"mutability":"mutable","name":"projectId","nameLocation":"13066:9:60","nodeType":"VariableDeclaration","scope":20911,"src":"13058:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20894,"name":"uint256","nodeType":"ElementaryTypeName","src":"13058:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20897,"mutability":"mutable","name":"profileId","nameLocation":"13093:9:60","nodeType":"VariableDeclaration","scope":20911,"src":"13085:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20896,"name":"uint256","nodeType":"ElementaryTypeName","src":"13085:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13018:90:60"},"returnParameters":{"id":20901,"nodeType":"ParameterList","parameters":[],"src":"13151:0:60"},"scope":21014,"src":"12987:247:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21523],"body":{"id":20931,"nodeType":"Block","src":"13437:85:60","statements":[{"eventCall":{"arguments":[{"id":20926,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20914,"src":"13480:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20927,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20916,"src":"13494:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20928,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20918,"src":"13505:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20923,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"13452:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13459:20:60","memberName":"ProjectMemberRemoved","nodeType":"MemberAccess","referencedDeclaration":22242,"src":"13452:27:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13452:63:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20930,"nodeType":"EmitStatement","src":"13447:68:60"}]},"documentation":{"id":20912,"nodeType":"StructuredDocumentation","src":"13240:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"927aa63c","id":20932,"implemented":true,"kind":"function","modifiers":[{"id":20921,"kind":"modifierInvocation","modifierName":{"id":20920,"name":"onlyRegisteredOrganizationCaller","nameLocations":["13404:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"13404:32:60"},"nodeType":"ModifierInvocation","src":"13404:32:60"}],"name":"emitProjectMemberRemoved","nameLocation":"13280:24:60","nodeType":"FunctionDefinition","parameters":{"id":20919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20914,"mutability":"mutable","name":"organization","nameLocation":"13322:12:60","nodeType":"VariableDeclaration","scope":20932,"src":"13314:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20913,"name":"address","nodeType":"ElementaryTypeName","src":"13314:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20916,"mutability":"mutable","name":"projectId","nameLocation":"13352:9:60","nodeType":"VariableDeclaration","scope":20932,"src":"13344:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20915,"name":"uint256","nodeType":"ElementaryTypeName","src":"13344:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20918,"mutability":"mutable","name":"profileId","nameLocation":"13379:9:60","nodeType":"VariableDeclaration","scope":20932,"src":"13371:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20917,"name":"uint256","nodeType":"ElementaryTypeName","src":"13371:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13304:90:60"},"returnParameters":{"id":20922,"nodeType":"ParameterList","parameters":[],"src":"13437:0:60"},"scope":21014,"src":"13271:251:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21532],"body":{"id":20952,"nodeType":"Block","src":"13713:73:60","statements":[{"eventCall":{"arguments":[{"id":20947,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20935,"src":"13747:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20948,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20937,"src":"13761:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20949,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20939,"src":"13772:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20944,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"13728:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13735:11:60","memberName":"TaskCreated","nodeType":"MemberAccess","referencedDeclaration":22250,"src":"13728:18:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13728:51:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20951,"nodeType":"EmitStatement","src":"13723:56:60"}]},"documentation":{"id":20933,"nodeType":"StructuredDocumentation","src":"13528:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"a8d91b02","id":20953,"implemented":true,"kind":"function","modifiers":[{"id":20942,"kind":"modifierInvocation","modifierName":{"id":20941,"name":"onlyRegisteredOrganizationCaller","nameLocations":["13680:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"13680:32:60"},"nodeType":"ModifierInvocation","src":"13680:32:60"}],"name":"emitTaskCreated","nameLocation":"13568:15:60","nodeType":"FunctionDefinition","parameters":{"id":20940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20935,"mutability":"mutable","name":"organization","nameLocation":"13601:12:60","nodeType":"VariableDeclaration","scope":20953,"src":"13593:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20934,"name":"address","nodeType":"ElementaryTypeName","src":"13593:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20937,"mutability":"mutable","name":"projectId","nameLocation":"13631:9:60","nodeType":"VariableDeclaration","scope":20953,"src":"13623:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20936,"name":"uint256","nodeType":"ElementaryTypeName","src":"13623:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20939,"mutability":"mutable","name":"taskId","nameLocation":"13658:6:60","nodeType":"VariableDeclaration","scope":20953,"src":"13650:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20938,"name":"uint256","nodeType":"ElementaryTypeName","src":"13650:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13583:87:60"},"returnParameters":{"id":20943,"nodeType":"ParameterList","parameters":[],"src":"13713:0:60"},"scope":21014,"src":"13559:227:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21539],"body":{"id":20970,"nodeType":"Block","src":"13928:62:60","statements":[{"eventCall":{"arguments":[{"id":20966,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20956,"src":"13962:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20967,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20958,"src":"13976:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20963,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"13943:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13950:11:60","memberName":"TaskUpdated","nodeType":"MemberAccess","referencedDeclaration":22256,"src":"13943:18:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13943:40:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20969,"nodeType":"EmitStatement","src":"13938:45:60"}]},"documentation":{"id":20954,"nodeType":"StructuredDocumentation","src":"13792:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"6d30ec62","id":20971,"implemented":true,"kind":"function","modifiers":[{"id":20961,"kind":"modifierInvocation","modifierName":{"id":20960,"name":"onlyRegisteredOrganizationCaller","nameLocations":["13895:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"13895:32:60"},"nodeType":"ModifierInvocation","src":"13895:32:60"}],"name":"emitTaskUpdated","nameLocation":"13832:15:60","nodeType":"FunctionDefinition","parameters":{"id":20959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20956,"mutability":"mutable","name":"organization","nameLocation":"13856:12:60","nodeType":"VariableDeclaration","scope":20971,"src":"13848:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20955,"name":"address","nodeType":"ElementaryTypeName","src":"13848:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20958,"mutability":"mutable","name":"taskId","nameLocation":"13878:6:60","nodeType":"VariableDeclaration","scope":20971,"src":"13870:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20957,"name":"uint256","nodeType":"ElementaryTypeName","src":"13870:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13847:38:60"},"returnParameters":{"id":20962,"nodeType":"ParameterList","parameters":[],"src":"13928:0:60"},"scope":21014,"src":"13823:167:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21548],"body":{"id":20991,"nodeType":"Block","src":"14185:77:60","statements":[{"eventCall":{"arguments":[{"id":20986,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20974,"src":"14223:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20987,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20976,"src":"14237:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20988,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20978,"src":"14245:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20983,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"14200:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":20985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14207:15:60","memberName":"TaskMemberAdded","nodeType":"MemberAccess","referencedDeclaration":22264,"src":"14200:22:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":20989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14200:55:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20990,"nodeType":"EmitStatement","src":"14195:60:60"}]},"documentation":{"id":20972,"nodeType":"StructuredDocumentation","src":"13996:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"2f6da008","id":20992,"implemented":true,"kind":"function","modifiers":[{"id":20981,"kind":"modifierInvocation","modifierName":{"id":20980,"name":"onlyRegisteredOrganizationCaller","nameLocations":["14152:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"14152:32:60"},"nodeType":"ModifierInvocation","src":"14152:32:60"}],"name":"emitTaskMemberAdded","nameLocation":"14036:19:60","nodeType":"FunctionDefinition","parameters":{"id":20979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20974,"mutability":"mutable","name":"organization","nameLocation":"14073:12:60","nodeType":"VariableDeclaration","scope":20992,"src":"14065:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20973,"name":"address","nodeType":"ElementaryTypeName","src":"14065:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20976,"mutability":"mutable","name":"taskId","nameLocation":"14103:6:60","nodeType":"VariableDeclaration","scope":20992,"src":"14095:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20975,"name":"uint256","nodeType":"ElementaryTypeName","src":"14095:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20978,"mutability":"mutable","name":"profileId","nameLocation":"14127:9:60","nodeType":"VariableDeclaration","scope":20992,"src":"14119:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20977,"name":"uint256","nodeType":"ElementaryTypeName","src":"14119:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14055:87:60"},"returnParameters":{"id":20982,"nodeType":"ParameterList","parameters":[],"src":"14185:0:60"},"scope":21014,"src":"14027:235:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21557],"body":{"id":21012,"nodeType":"Block","src":"14459:79:60","statements":[{"eventCall":{"arguments":[{"id":21007,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20995,"src":"14499:12:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21008,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20997,"src":"14513:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21009,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20999,"src":"14521:9:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21004,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"14474:6:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":21006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14481:17:60","memberName":"TaskMemberRemoved","nodeType":"MemberAccess","referencedDeclaration":22272,"src":"14474:24:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":21010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14474:57:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21011,"nodeType":"EmitStatement","src":"14469:62:60"}]},"documentation":{"id":20993,"nodeType":"StructuredDocumentation","src":"14268:26:60","text":"@inheritdoc IMy3SecHub"},"functionSelector":"538be3a4","id":21013,"implemented":true,"kind":"function","modifiers":[{"id":21002,"kind":"modifierInvocation","modifierName":{"id":21001,"name":"onlyRegisteredOrganizationCaller","nameLocations":["14426:32:60"],"nodeType":"IdentifierPath","referencedDeclaration":19909,"src":"14426:32:60"},"nodeType":"ModifierInvocation","src":"14426:32:60"}],"name":"emitTaskMemberRemoved","nameLocation":"14308:21:60","nodeType":"FunctionDefinition","parameters":{"id":21000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20995,"mutability":"mutable","name":"organization","nameLocation":"14347:12:60","nodeType":"VariableDeclaration","scope":21013,"src":"14339:20:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20994,"name":"address","nodeType":"ElementaryTypeName","src":"14339:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20997,"mutability":"mutable","name":"taskId","nameLocation":"14377:6:60","nodeType":"VariableDeclaration","scope":21013,"src":"14369:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20996,"name":"uint256","nodeType":"ElementaryTypeName","src":"14369:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20999,"mutability":"mutable","name":"profileId","nameLocation":"14401:9:60","nodeType":"VariableDeclaration","scope":21013,"src":"14393:17:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20998,"name":"uint256","nodeType":"ElementaryTypeName","src":"14393:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14329:87:60"},"returnParameters":{"id":21003,"nodeType":"ParameterList","parameters":[],"src":"14459:0:60"},"scope":21014,"src":"14299:239:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21015,"src":"742:13798:60","usedErrors":[22127,22129,22135,22137,22139,22141,22143,22145,22149,22157,22161]}],"src":"39:14502:60"},"id":60},"contracts/common/access/HubControllable.sol":{"ast":{"absolutePath":"contracts/common/access/HubControllable.sol","exportedSymbols":{"Errors":[22162],"HubControllable":[21056]},"id":21057,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":21016,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"39:23:61"},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../libraries/Errors.sol","id":21017,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21057,"sourceUnit":22163,"src":"64:33:61","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"HubControllable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21056,"linearizedBaseContracts":[21056],"name":"HubControllable","nameLocation":"117:15:61","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"a4c52b86","id":21019,"mutability":"immutable","name":"HUB","nameLocation":"164:3:61","nodeType":"VariableDeclaration","scope":21056,"src":"139:28:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21018,"name":"address","nodeType":"ElementaryTypeName","src":"139:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"body":{"id":21032,"nodeType":"Block","src":"193:73:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21021,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"207:3:61","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"211:6:61","memberName":"sender","nodeType":"MemberAccess","src":"207:10:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":21023,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"221:3:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"207:17:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21030,"nodeType":"IfStatement","src":"203:45:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21025,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"233:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":21027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"240:6:61","memberName":"NotHub","nodeType":"MemberAccess","referencedDeclaration":22133,"src":"233:13:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":21028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233:15:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21029,"nodeType":"RevertStatement","src":"226:22:61"}},{"id":21031,"nodeType":"PlaceholderStatement","src":"258:1:61"}]},"id":21033,"name":"onlyHub","nameLocation":"183:7:61","nodeType":"ModifierDefinition","parameters":{"id":21020,"nodeType":"ParameterList","parameters":[],"src":"190:2:61"},"src":"174:92:61","virtual":false,"visibility":"internal"},{"body":{"id":21054,"nodeType":"Block","src":"297:92:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21038,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21035,"src":"311:3:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":21041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"326:1:61","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":21040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"318:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21039,"name":"address","nodeType":"ElementaryTypeName","src":"318:7:61","typeDescriptions":{}}},"id":21042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318:10:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"311:17:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21049,"nodeType":"IfStatement","src":"307:56:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21044,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"337:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":21046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"344:17:61","memberName":"InitParamsInvalid","nodeType":"MemberAccess","referencedDeclaration":22131,"src":"337:24:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":21047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21048,"nodeType":"RevertStatement","src":"330:33:61"}},{"expression":{"id":21052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21050,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"373:3:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21051,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21035,"src":"379:3:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"373:9:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21053,"nodeType":"ExpressionStatement","src":"373:9:61"}]},"id":21055,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":21036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21035,"mutability":"mutable","name":"hub","nameLocation":"292:3:61","nodeType":"VariableDeclaration","scope":21055,"src":"284:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21034,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283:13:61"},"returnParameters":{"id":21037,"nodeType":"ParameterList","parameters":[],"src":"297:0:61"},"scope":21056,"src":"272:117:61","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":21057,"src":"99:292:61","usedErrors":[22131]}],"src":"39:353:61"},"id":61},"contracts/common/access/HubControllableUpgradeable.sol":{"ast":{"absolutePath":"contracts/common/access/HubControllableUpgradeable.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"Errors":[22162],"HubControllableUpgradeable":[21121],"Initializable":[300],"OwnableUpgradeable":[131]},"id":21122,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":21058,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"39:23:62"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":21059,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21122,"sourceUnit":301,"src":"64:75:62","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","id":21060,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21122,"sourceUnit":132,"src":"140:75:62","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../libraries/Errors.sol","id":21061,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21122,"sourceUnit":22163,"src":"217:33:62","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":21062,"name":"Initializable","nameLocations":["300:13:62"],"nodeType":"IdentifierPath","referencedDeclaration":300,"src":"300:13:62"},"id":21063,"nodeType":"InheritanceSpecifier","src":"300:13:62"},{"baseName":{"id":21064,"name":"OwnableUpgradeable","nameLocations":["315:18:62"],"nodeType":"IdentifierPath","referencedDeclaration":131,"src":"315:18:62"},"id":21065,"nodeType":"InheritanceSpecifier","src":"315:18:62"}],"canonicalName":"HubControllableUpgradeable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21121,"linearizedBaseContracts":[21121,131,2307,300],"name":"HubControllableUpgradeable","nameLocation":"270:26:62","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":21067,"mutability":"mutable","name":"HUB","nameLocation":"357:3:62","nodeType":"VariableDeclaration","scope":21121,"src":"340:20:62","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21066,"name":"address","nodeType":"ElementaryTypeName","src":"340:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":21080,"nodeType":"Block","src":"386:73:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21069,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"400:3:62","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"404:6:62","memberName":"sender","nodeType":"MemberAccess","src":"400:10:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":21071,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"414:3:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"400:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21078,"nodeType":"IfStatement","src":"396:45:62","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21073,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"426:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":21075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"433:6:62","memberName":"NotHub","nodeType":"MemberAccess","referencedDeclaration":22133,"src":"426:13:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":21076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:15:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21077,"nodeType":"RevertStatement","src":"419:22:62"}},{"id":21079,"nodeType":"PlaceholderStatement","src":"451:1:62"}]},"id":21081,"name":"onlyHub","nameLocation":"376:7:62","nodeType":"ModifierDefinition","parameters":{"id":21068,"nodeType":"ParameterList","parameters":[],"src":"383:2:62"},"src":"367:92:62","virtual":false,"visibility":"internal"},{"body":{"id":21095,"nodeType":"Block","src":"534:54:62","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":21088,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"544:14:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":21089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:16:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21090,"nodeType":"ExpressionStatement","src":"544:16:62"},{"expression":{"arguments":[{"id":21092,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21083,"src":"577:3:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21091,"name":"setHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21120,"src":"570:6:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":21093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"570:11:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21094,"nodeType":"ExpressionStatement","src":"570:11:62"}]},"functionSelector":"f414c97d","id":21096,"implemented":true,"kind":"function","modifiers":[{"id":21086,"kind":"modifierInvocation","modifierName":{"id":21085,"name":"onlyInitializing","nameLocations":["517:16:62"],"nodeType":"IdentifierPath","referencedDeclaration":245,"src":"517:16:62"},"nodeType":"ModifierInvocation","src":"517:16:62"}],"name":"__HubControllable_init","nameLocation":"474:22:62","nodeType":"FunctionDefinition","parameters":{"id":21084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21083,"mutability":"mutable","name":"hub","nameLocation":"505:3:62","nodeType":"VariableDeclaration","scope":21096,"src":"497:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21082,"name":"address","nodeType":"ElementaryTypeName","src":"497:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"496:13:62"},"returnParameters":{"id":21087,"nodeType":"ParameterList","parameters":[],"src":"534:0:62"},"scope":21121,"src":"465:123:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":21119,"nodeType":"Block","src":"640:92:62","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21103,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21098,"src":"654:3:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":21106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"669:1:62","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":21105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"661:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21104,"name":"address","nodeType":"ElementaryTypeName","src":"661:7:62","typeDescriptions":{}}},"id":21107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:10:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"654:17:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21114,"nodeType":"IfStatement","src":"650:56:62","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21109,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"680:6:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":21111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"687:17:62","memberName":"InitParamsInvalid","nodeType":"MemberAccess","referencedDeclaration":22131,"src":"680:24:62","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":21112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"680:26:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21113,"nodeType":"RevertStatement","src":"673:33:62"}},{"expression":{"id":21117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21115,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21067,"src":"716:3:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21116,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21098,"src":"722:3:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"716:9:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21118,"nodeType":"ExpressionStatement","src":"716:9:62"}]},"functionSelector":"31962cdc","id":21120,"implemented":true,"kind":"function","modifiers":[{"id":21101,"kind":"modifierInvocation","modifierName":{"id":21100,"name":"onlyOwner","nameLocations":["630:9:62"],"nodeType":"IdentifierPath","referencedDeclaration":45,"src":"630:9:62"},"nodeType":"ModifierInvocation","src":"630:9:62"}],"name":"setHub","nameLocation":"603:6:62","nodeType":"FunctionDefinition","parameters":{"id":21099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21098,"mutability":"mutable","name":"hub","nameLocation":"618:3:62","nodeType":"VariableDeclaration","scope":21120,"src":"610:11:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21097,"name":"address","nodeType":"ElementaryTypeName","src":"610:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"609:13:62"},"returnParameters":{"id":21102,"nodeType":"ParameterList","parameters":[],"src":"640:0:62"},"scope":21121,"src":"594:138:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":21122,"src":"252:482:62","usedErrors":[22131]}],"src":"39:696:62"},"id":62},"contracts/common/access/Whitelistable.sol":{"ast":{"absolutePath":"contracts/common/access/Whitelistable.sol","exportedSymbols":{"Context":[14324],"EnumerableSet":[19820],"Errors":[22162],"IWhitelistable":[21986],"Ownable":[5640],"Whitelistable":[21219]},"id":21220,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":21123,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"39:23:63"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":21124,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21220,"sourceUnit":19821,"src":"64:65:63","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":21125,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21220,"sourceUnit":5641,"src":"130:52:63","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IWhitelistable.sol","file":"../interfaces/IWhitelistable.sol","id":21126,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21220,"sourceUnit":21987,"src":"184:42:63","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../libraries/Errors.sol","id":21127,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21220,"sourceUnit":22163,"src":"227:33:63","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":21128,"name":"IWhitelistable","nameLocations":["297:14:63"],"nodeType":"IdentifierPath","referencedDeclaration":21986,"src":"297:14:63"},"id":21129,"nodeType":"InheritanceSpecifier","src":"297:14:63"},{"baseName":{"id":21130,"name":"Ownable","nameLocations":["313:7:63"],"nodeType":"IdentifierPath","referencedDeclaration":5640,"src":"313:7:63"},"id":21131,"nodeType":"InheritanceSpecifier","src":"313:7:63"}],"canonicalName":"Whitelistable","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":21219,"linearizedBaseContracts":[21219,5640,14324,21986],"name":"Whitelistable","nameLocation":"280:13:63","nodeType":"ContractDefinition","nodes":[{"global":false,"id":21135,"libraryName":{"id":21132,"name":"EnumerableSet","nameLocations":["333:13:63"],"nodeType":"IdentifierPath","referencedDeclaration":19820,"src":"333:13:63"},"nodeType":"UsingForDirective","src":"327:49:63","typeName":{"id":21134,"nodeType":"UserDefinedTypeName","pathNode":{"id":21133,"name":"EnumerableSet.AddressSet","nameLocations":["351:13:63","365:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"351:24:63"},"referencedDeclaration":19533,"src":"351:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":21138,"mutability":"mutable","name":"_whitelist","nameLocation":"415:10:63","nodeType":"VariableDeclaration","scope":21219,"src":"382:43:63","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":21137,"nodeType":"UserDefinedTypeName","pathNode":{"id":21136,"name":"EnumerableSet.AddressSet","nameLocations":["382:13:63","396:10:63"],"nodeType":"IdentifierPath","referencedDeclaration":19533,"src":"382:24:63"},"referencedDeclaration":19533,"src":"382:24:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"body":{"id":21153,"nodeType":"Block","src":"459:96:63","statements":[{"condition":{"id":21145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"473:32:63","subExpression":{"arguments":[{"expression":{"id":21142,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"494:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":21143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"498:6:63","memberName":"sender","nodeType":"MemberAccess","src":"494:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21140,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"474:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"485:8:63","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19614,"src":"474:19:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":21144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"474:31:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21151,"nodeType":"IfStatement","src":"469:68:63","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21146,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"514:6:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":21148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"521:14:63","memberName":"NotWhitelisted","nodeType":"MemberAccess","referencedDeclaration":22137,"src":"514:21:63","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":21149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21150,"nodeType":"RevertStatement","src":"507:30:63"}},{"id":21152,"nodeType":"PlaceholderStatement","src":"547:1:63"}]},"id":21154,"name":"onlyWhitelisted","nameLocation":"441:15:63","nodeType":"ModifierDefinition","parameters":{"id":21139,"nodeType":"ParameterList","parameters":[],"src":"456:2:63"},"src":"432:123:63","virtual":false,"visibility":"internal"},{"baseFunctions":[21961],"body":{"id":21163,"nodeType":"Block","src":"622:43:63","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21159,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"639:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"650:6:63","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19629,"src":"639:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":21161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"639:19:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21158,"id":21162,"nodeType":"Return","src":"632:26:63"}]},"functionSelector":"3edff20f","id":21164,"implemented":true,"kind":"function","modifiers":[],"name":"getWhitelistCount","nameLocation":"570:17:63","nodeType":"FunctionDefinition","parameters":{"id":21155,"nodeType":"ParameterList","parameters":[],"src":"587:2:63"},"returnParameters":{"id":21158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21164,"src":"613:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21156,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"612:9:63"},"scope":21219,"src":"561:104:63","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21968],"body":{"id":21176,"nodeType":"Block","src":"746:44:63","statements":[{"expression":{"arguments":[{"id":21173,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21166,"src":"777:5:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21171,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"763:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"774:2:63","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19656,"src":"763:13:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":21174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"763:20:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":21170,"id":21175,"nodeType":"Return","src":"756:27:63"}]},"functionSelector":"d7511957","id":21177,"implemented":true,"kind":"function","modifiers":[],"name":"getWhitelistMember","nameLocation":"680:18:63","nodeType":"FunctionDefinition","parameters":{"id":21167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21166,"mutability":"mutable","name":"index","nameLocation":"707:5:63","nodeType":"VariableDeclaration","scope":21177,"src":"699:13:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21165,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:63","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:15:63"},"returnParameters":{"id":21170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21177,"src":"737:7:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21168,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:9:63"},"scope":21219,"src":"671:119:63","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21975],"body":{"id":21189,"nodeType":"Block","src":"871:52:63","statements":[{"expression":{"arguments":[{"id":21186,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21179,"src":"908:7:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21184,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"888:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"899:8:63","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19614,"src":"888:19:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":21187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"888:28:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":21183,"id":21188,"nodeType":"Return","src":"881:35:63"}]},"functionSelector":"3af32abf","id":21190,"implemented":true,"kind":"function","modifiers":[],"name":"isWhitelisted","nameLocation":"805:13:63","nodeType":"FunctionDefinition","parameters":{"id":21180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21179,"mutability":"mutable","name":"account","nameLocation":"827:7:63","nodeType":"VariableDeclaration","scope":21190,"src":"819:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21178,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"818:17:63"},"returnParameters":{"id":21183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21182,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21190,"src":"865:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21181,"name":"bool","nodeType":"ElementaryTypeName","src":"865:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"864:6:63"},"scope":21219,"src":"796:127:63","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[21980],"body":{"id":21203,"nodeType":"Block","src":"995:40:63","statements":[{"expression":{"arguments":[{"id":21200,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21192,"src":"1020:7:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21197,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"1005:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1016:3:63","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19560,"src":"1005:14:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":21201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1005:23:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21202,"nodeType":"ExpressionStatement","src":"1005:23:63"}]},"functionSelector":"e43252d7","id":21204,"implemented":true,"kind":"function","modifiers":[{"id":21195,"kind":"modifierInvocation","modifierName":{"id":21194,"name":"onlyOwner","nameLocations":["985:9:63"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"985:9:63"},"nodeType":"ModifierInvocation","src":"985:9:63"}],"name":"addToWhitelist","nameLocation":"938:14:63","nodeType":"FunctionDefinition","parameters":{"id":21193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21192,"mutability":"mutable","name":"account","nameLocation":"961:7:63","nodeType":"VariableDeclaration","scope":21204,"src":"953:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21191,"name":"address","nodeType":"ElementaryTypeName","src":"953:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"952:17:63"},"returnParameters":{"id":21196,"nodeType":"ParameterList","parameters":[],"src":"995:0:63"},"scope":21219,"src":"929:106:63","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[21985],"body":{"id":21217,"nodeType":"Block","src":"1106:43:63","statements":[{"expression":{"arguments":[{"id":21214,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21206,"src":"1134:7:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21211,"name":"_whitelist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21138,"src":"1116:10:63","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$19533_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":21213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1127:6:63","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19587,"src":"1116:17:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$19533_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$19533_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":21215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1116:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21216,"nodeType":"ExpressionStatement","src":"1116:26:63"}]},"functionSelector":"8ab1d681","id":21218,"implemented":true,"kind":"function","modifiers":[{"id":21209,"kind":"modifierInvocation","modifierName":{"id":21208,"name":"onlyOwner","nameLocations":["1096:9:63"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"1096:9:63"},"nodeType":"ModifierInvocation","src":"1096:9:63"}],"name":"removeFromWhitelist","nameLocation":"1050:19:63","nodeType":"FunctionDefinition","parameters":{"id":21207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21206,"mutability":"mutable","name":"account","nameLocation":"1078:7:63","nodeType":"VariableDeclaration","scope":21218,"src":"1070:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21205,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1069:17:63"},"returnParameters":{"id":21210,"nodeType":"ParameterList","parameters":[],"src":"1106:0:63"},"scope":21219,"src":"1041:108:63","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21220,"src":"262:889:63","usedErrors":[]}],"src":"39:1113:63"},"id":63},"contracts/common/interfaces/ICertificateNFT.sol":{"ast":{"absolutePath":"contracts/common/interfaces/ICertificateNFT.sol","exportedSymbols":{"ICertificateNFT":[21239],"IERC165":[15338],"IERC721":[12046]},"id":21240,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21221,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:64"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":21222,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21240,"sourceUnit":12047,"src":"57:58:64","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21223,"name":"IERC721","nameLocations":["146:7:64"],"nodeType":"IdentifierPath","referencedDeclaration":12046,"src":"146:7:64"},"id":21224,"nodeType":"InheritanceSpecifier","src":"146:7:64"}],"canonicalName":"ICertificateNFT","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21239,"linearizedBaseContracts":[21239,12046,15338],"name":"ICertificateNFT","nameLocation":"127:15:64","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d204c45e","id":21233,"implemented":false,"kind":"function","modifiers":[],"name":"safeMint","nameLocation":"169:8:64","nodeType":"FunctionDefinition","parameters":{"id":21229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21226,"mutability":"mutable","name":"to","nameLocation":"186:2:64","nodeType":"VariableDeclaration","scope":21233,"src":"178:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21225,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21228,"mutability":"mutable","name":"uri","nameLocation":"204:3:64","nodeType":"VariableDeclaration","scope":21233,"src":"190:17:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21227,"name":"string","nodeType":"ElementaryTypeName","src":"190:6:64","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"177:31:64"},"returnParameters":{"id":21232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21233,"src":"227:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21230,"name":"uint256","nodeType":"ElementaryTypeName","src":"227:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"226:9:64"},"scope":21239,"src":"160:76:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":21238,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"251:17:64","nodeType":"FunctionDefinition","parameters":{"id":21236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21235,"mutability":"mutable","name":"newOwner","nameLocation":"277:8:64","nodeType":"VariableDeclaration","scope":21238,"src":"269:16:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21234,"name":"address","nodeType":"ElementaryTypeName","src":"269:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"268:18:64"},"returnParameters":{"id":21237,"nodeType":"ParameterList","parameters":[],"src":"295:0:64"},"scope":21239,"src":"242:54:64","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21240,"src":"117:181:64","usedErrors":[]}],"src":"32:267:64"},"id":64},"contracts/common/interfaces/IEnergyWallet.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IEnergyWallet.sol","exportedSymbols":{"IEnergyWallet":[21338]},"id":21339,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21241,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:65"},{"abstract":false,"baseContracts":[],"canonicalName":"IEnergyWallet","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21338,"linearizedBaseContracts":[21338],"name":"IEnergyWallet","nameLocation":"67:13:65","nodeType":"ContractDefinition","nodes":[{"functionSelector":"540e3199","id":21248,"implemented":false,"kind":"function","modifiers":[],"name":"totalEnergyOf","nameLocation":"96:13:65","nodeType":"FunctionDefinition","parameters":{"id":21244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21243,"mutability":"mutable","name":"profileId","nameLocation":"118:9:65","nodeType":"VariableDeclaration","scope":21248,"src":"110:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21242,"name":"uint256","nodeType":"ElementaryTypeName","src":"110:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"109:19:65"},"returnParameters":{"id":21247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21248,"src":"152:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21245,"name":"uint256","nodeType":"ElementaryTypeName","src":"152:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"151:9:65"},"scope":21338,"src":"87:74:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ea6866ad","id":21255,"implemented":false,"kind":"function","modifiers":[],"name":"freeEnergyOf","nameLocation":"176:12:65","nodeType":"FunctionDefinition","parameters":{"id":21251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21250,"mutability":"mutable","name":"profileId","nameLocation":"197:9:65","nodeType":"VariableDeclaration","scope":21255,"src":"189:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21249,"name":"uint256","nodeType":"ElementaryTypeName","src":"189:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"188:19:65"},"returnParameters":{"id":21254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21255,"src":"231:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21252,"name":"uint256","nodeType":"ElementaryTypeName","src":"231:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"230:9:65"},"scope":21338,"src":"167:73:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"319d684e","id":21262,"implemented":false,"kind":"function","modifiers":[],"name":"allocatedEnergyOf","nameLocation":"255:17:65","nodeType":"FunctionDefinition","parameters":{"id":21258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21257,"mutability":"mutable","name":"profileId","nameLocation":"281:9:65","nodeType":"VariableDeclaration","scope":21262,"src":"273:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21256,"name":"uint256","nodeType":"ElementaryTypeName","src":"273:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"272:19:65"},"returnParameters":{"id":21261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21262,"src":"315:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21259,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"314:9:65"},"scope":21338,"src":"246:78:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9dfbfa76","id":21269,"implemented":false,"kind":"function","modifiers":[],"name":"receivedEnergyOf","nameLocation":"339:16:65","nodeType":"FunctionDefinition","parameters":{"id":21265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21264,"mutability":"mutable","name":"profileId","nameLocation":"364:9:65","nodeType":"VariableDeclaration","scope":21269,"src":"356:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21263,"name":"uint256","nodeType":"ElementaryTypeName","src":"356:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"355:19:65"},"returnParameters":{"id":21268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21269,"src":"398:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21266,"name":"uint256","nodeType":"ElementaryTypeName","src":"398:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"397:9:65"},"scope":21338,"src":"330:77:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"25b98c08","id":21280,"implemented":false,"kind":"function","modifiers":[],"name":"energizedBy","nameLocation":"422:11:65","nodeType":"FunctionDefinition","parameters":{"id":21274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21271,"mutability":"mutable","name":"profileId","nameLocation":"442:9:65","nodeType":"VariableDeclaration","scope":21280,"src":"434:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21270,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21273,"mutability":"mutable","name":"index","nameLocation":"461:5:65","nodeType":"VariableDeclaration","scope":21280,"src":"453:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21272,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"433:34:65"},"returnParameters":{"id":21279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21280,"src":"491:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21275,"name":"uint256","nodeType":"ElementaryTypeName","src":"491:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21280,"src":"500:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21277,"name":"uint256","nodeType":"ElementaryTypeName","src":"500:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"490:18:65"},"scope":21338,"src":"413:96:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"43b521bd","id":21291,"implemented":false,"kind":"function","modifiers":[],"name":"energizersOf","nameLocation":"524:12:65","nodeType":"FunctionDefinition","parameters":{"id":21285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21282,"mutability":"mutable","name":"profileId","nameLocation":"545:9:65","nodeType":"VariableDeclaration","scope":21291,"src":"537:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21281,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21284,"mutability":"mutable","name":"index","nameLocation":"564:5:65","nodeType":"VariableDeclaration","scope":21291,"src":"556:13:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21283,"name":"uint256","nodeType":"ElementaryTypeName","src":"556:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"536:34:65"},"returnParameters":{"id":21290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21291,"src":"594:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21286,"name":"uint256","nodeType":"ElementaryTypeName","src":"594:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21291,"src":"603:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21288,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"593:18:65"},"scope":21338,"src":"515:97:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3d107d4d","id":21298,"implemented":false,"kind":"function","modifiers":[],"name":"totalEnergizedBy","nameLocation":"627:16:65","nodeType":"FunctionDefinition","parameters":{"id":21294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21293,"mutability":"mutable","name":"profileId","nameLocation":"652:9:65","nodeType":"VariableDeclaration","scope":21298,"src":"644:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21292,"name":"uint256","nodeType":"ElementaryTypeName","src":"644:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"643:19:65"},"returnParameters":{"id":21297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21298,"src":"686:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21295,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"685:9:65"},"scope":21338,"src":"618:77:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d34e224","id":21305,"implemented":false,"kind":"function","modifiers":[],"name":"totalEnergizersOf","nameLocation":"710:17:65","nodeType":"FunctionDefinition","parameters":{"id":21301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21300,"mutability":"mutable","name":"profileId","nameLocation":"736:9:65","nodeType":"VariableDeclaration","scope":21305,"src":"728:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21299,"name":"uint256","nodeType":"ElementaryTypeName","src":"728:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"727:19:65"},"returnParameters":{"id":21304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21303,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21305,"src":"770:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21302,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"769:9:65"},"scope":21338,"src":"701:78:65","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7d94dfc9","id":21314,"implemented":false,"kind":"function","modifiers":[],"name":"giveEnergy","nameLocation":"794:10:65","nodeType":"FunctionDefinition","parameters":{"id":21312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21307,"mutability":"mutable","name":"from","nameLocation":"813:4:65","nodeType":"VariableDeclaration","scope":21314,"src":"805:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21306,"name":"uint256","nodeType":"ElementaryTypeName","src":"805:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21309,"mutability":"mutable","name":"to","nameLocation":"827:2:65","nodeType":"VariableDeclaration","scope":21314,"src":"819:10:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21308,"name":"uint256","nodeType":"ElementaryTypeName","src":"819:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21311,"mutability":"mutable","name":"amount","nameLocation":"839:6:65","nodeType":"VariableDeclaration","scope":21314,"src":"831:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21310,"name":"uint256","nodeType":"ElementaryTypeName","src":"831:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"804:42:65"},"returnParameters":{"id":21313,"nodeType":"ParameterList","parameters":[],"src":"855:0:65"},"scope":21338,"src":"785:71:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d072007d","id":21323,"implemented":false,"kind":"function","modifiers":[],"name":"removeEnergy","nameLocation":"871:12:65","nodeType":"FunctionDefinition","parameters":{"id":21321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21316,"mutability":"mutable","name":"from","nameLocation":"892:4:65","nodeType":"VariableDeclaration","scope":21323,"src":"884:12:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21315,"name":"uint256","nodeType":"ElementaryTypeName","src":"884:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21318,"mutability":"mutable","name":"to","nameLocation":"906:2:65","nodeType":"VariableDeclaration","scope":21323,"src":"898:10:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21317,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21320,"mutability":"mutable","name":"amount","nameLocation":"918:6:65","nodeType":"VariableDeclaration","scope":21323,"src":"910:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21319,"name":"uint256","nodeType":"ElementaryTypeName","src":"910:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"883:42:65"},"returnParameters":{"id":21322,"nodeType":"ParameterList","parameters":[],"src":"934:0:65"},"scope":21338,"src":"862:73:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"52c5fb8a","id":21330,"implemented":false,"kind":"function","modifiers":[],"name":"createEnergyFor","nameLocation":"950:15:65","nodeType":"FunctionDefinition","parameters":{"id":21328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21325,"mutability":"mutable","name":"profileId","nameLocation":"974:9:65","nodeType":"VariableDeclaration","scope":21330,"src":"966:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21324,"name":"uint256","nodeType":"ElementaryTypeName","src":"966:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21327,"mutability":"mutable","name":"amount","nameLocation":"993:6:65","nodeType":"VariableDeclaration","scope":21330,"src":"985:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21326,"name":"uint256","nodeType":"ElementaryTypeName","src":"985:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"965:35:65"},"returnParameters":{"id":21329,"nodeType":"ParameterList","parameters":[],"src":"1009:0:65"},"scope":21338,"src":"941:69:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e3bfe61b","id":21337,"implemented":false,"kind":"function","modifiers":[],"name":"destroyEnergyFor","nameLocation":"1025:16:65","nodeType":"FunctionDefinition","parameters":{"id":21335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21332,"mutability":"mutable","name":"profileId","nameLocation":"1050:9:65","nodeType":"VariableDeclaration","scope":21337,"src":"1042:17:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1042:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21334,"mutability":"mutable","name":"amount","nameLocation":"1069:6:65","nodeType":"VariableDeclaration","scope":21337,"src":"1061:14:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1041:35:65"},"returnParameters":{"id":21336,"nodeType":"ParameterList","parameters":[],"src":"1085:0:65"},"scope":21338,"src":"1016:70:65","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21339,"src":"57:1031:65","usedErrors":[]}],"src":"32:1057:65"},"id":65},"contracts/common/interfaces/IMy3SecHub.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IMy3SecHub.sol","exportedSymbols":{"DataTypes":[22123],"IMy3SecHub":[21558]},"id":21559,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21340,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:66"},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"../libraries/DataTypes.sol","id":21342,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21559,"sourceUnit":22124,"src":"57:53:66","symbolAliases":[{"foreign":{"id":21341,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"65:9:66","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"IMy3SecHub","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21558,"linearizedBaseContracts":[21558],"name":"IMy3SecHub","nameLocation":"122:10:66","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ed535d9d","id":21350,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultProfile","nameLocation":"331:17:66","nodeType":"FunctionDefinition","parameters":{"id":21345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21344,"mutability":"mutable","name":"account","nameLocation":"357:7:66","nodeType":"VariableDeclaration","scope":21350,"src":"349:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21343,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348:17:66"},"returnParameters":{"id":21349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21350,"src":"389:28:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView"},"typeName":{"id":21347,"nodeType":"UserDefinedTypeName","pathNode":{"id":21346,"name":"DataTypes.ProfileView","nameLocations":["389:9:66","399:11:66"],"nodeType":"IdentifierPath","referencedDeclaration":22025,"src":"389:21:66"},"referencedDeclaration":22025,"src":"389:21:66","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_storage_ptr","typeString":"struct DataTypes.ProfileView"}},"visibility":"internal"}],"src":"388:30:66"},"scope":21558,"src":"322:97:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"df50c5d7","id":21357,"implemented":false,"kind":"function","modifiers":[],"name":"getProfileAccount","nameLocation":"434:17:66","nodeType":"FunctionDefinition","parameters":{"id":21353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21352,"mutability":"mutable","name":"profileId","nameLocation":"460:9:66","nodeType":"VariableDeclaration","scope":21357,"src":"452:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21351,"name":"uint256","nodeType":"ElementaryTypeName","src":"452:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"451:19:66"},"returnParameters":{"id":21356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21357,"src":"494:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21354,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"493:9:66"},"scope":21558,"src":"425:78:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f08f4f64","id":21365,"implemented":false,"kind":"function","modifiers":[],"name":"getProfile","nameLocation":"518:10:66","nodeType":"FunctionDefinition","parameters":{"id":21360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21359,"mutability":"mutable","name":"profileId","nameLocation":"537:9:66","nodeType":"VariableDeclaration","scope":21365,"src":"529:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21358,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:19:66"},"returnParameters":{"id":21364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21365,"src":"571:28:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_memory_ptr","typeString":"struct DataTypes.ProfileView"},"typeName":{"id":21362,"nodeType":"UserDefinedTypeName","pathNode":{"id":21361,"name":"DataTypes.ProfileView","nameLocations":["571:9:66","581:11:66"],"nodeType":"IdentifierPath","referencedDeclaration":22025,"src":"571:21:66"},"referencedDeclaration":22025,"src":"571:21:66","typeDescriptions":{"typeIdentifier":"t_struct$_ProfileView_$22025_storage_ptr","typeString":"struct DataTypes.ProfileView"}},"visibility":"internal"}],"src":"570:30:66"},"scope":21558,"src":"509:92:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f1b2f8bc","id":21370,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultProfile","nameLocation":"616:17:66","nodeType":"FunctionDefinition","parameters":{"id":21368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21367,"mutability":"mutable","name":"profileId","nameLocation":"642:9:66","nodeType":"VariableDeclaration","scope":21370,"src":"634:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21366,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:19:66"},"returnParameters":{"id":21369,"nodeType":"ParameterList","parameters":[],"src":"661:0:66"},"scope":21558,"src":"607:55:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d16d22f5","id":21378,"implemented":false,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"677:13:66","nodeType":"FunctionDefinition","parameters":{"id":21374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21373,"mutability":"mutable","name":"args","nameLocation":"724:4:66","nodeType":"VariableDeclaration","scope":21378,"src":"691:37:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProfile_$22017_calldata_ptr","typeString":"struct DataTypes.CreateProfile"},"typeName":{"id":21372,"nodeType":"UserDefinedTypeName","pathNode":{"id":21371,"name":"DataTypes.CreateProfile","nameLocations":["691:9:66","701:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":22017,"src":"691:23:66"},"referencedDeclaration":22017,"src":"691:23:66","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProfile_$22017_storage_ptr","typeString":"struct DataTypes.CreateProfile"}},"visibility":"internal"}],"src":"690:39:66"},"returnParameters":{"id":21377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21378,"src":"748:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21375,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"747:9:66"},"scope":21558,"src":"668:89:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"75f44a3b","id":21386,"implemented":false,"kind":"function","modifiers":[],"name":"updateProfile","nameLocation":"772:13:66","nodeType":"FunctionDefinition","parameters":{"id":21384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21380,"mutability":"mutable","name":"profileId","nameLocation":"794:9:66","nodeType":"VariableDeclaration","scope":21386,"src":"786:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21379,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21383,"mutability":"mutable","name":"args","nameLocation":"838:4:66","nodeType":"VariableDeclaration","scope":21386,"src":"805:37:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProfile_$22020_calldata_ptr","typeString":"struct DataTypes.UpdateProfile"},"typeName":{"id":21382,"nodeType":"UserDefinedTypeName","pathNode":{"id":21381,"name":"DataTypes.UpdateProfile","nameLocations":["805:9:66","815:13:66"],"nodeType":"IdentifierPath","referencedDeclaration":22020,"src":"805:23:66"},"referencedDeclaration":22020,"src":"805:23:66","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProfile_$22020_storage_ptr","typeString":"struct DataTypes.UpdateProfile"}},"visibility":"internal"}],"src":"785:58:66"},"returnParameters":{"id":21385,"nodeType":"ParameterList","parameters":[],"src":"852:0:66"},"scope":21558,"src":"763:90:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3214a18e","id":21393,"implemented":false,"kind":"function","modifiers":[],"name":"giveEnergyTo","nameLocation":"868:12:66","nodeType":"FunctionDefinition","parameters":{"id":21391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21388,"mutability":"mutable","name":"profileId","nameLocation":"889:9:66","nodeType":"VariableDeclaration","scope":21393,"src":"881:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21387,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21390,"mutability":"mutable","name":"amount","nameLocation":"908:6:66","nodeType":"VariableDeclaration","scope":21393,"src":"900:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21389,"name":"uint256","nodeType":"ElementaryTypeName","src":"900:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"880:35:66"},"returnParameters":{"id":21392,"nodeType":"ParameterList","parameters":[],"src":"924:0:66"},"scope":21558,"src":"859:66:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9e88381a","id":21400,"implemented":false,"kind":"function","modifiers":[],"name":"removeEnergyFrom","nameLocation":"940:16:66","nodeType":"FunctionDefinition","parameters":{"id":21398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21395,"mutability":"mutable","name":"profileId","nameLocation":"965:9:66","nodeType":"VariableDeclaration","scope":21400,"src":"957:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21394,"name":"uint256","nodeType":"ElementaryTypeName","src":"957:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21397,"mutability":"mutable","name":"amount","nameLocation":"984:6:66","nodeType":"VariableDeclaration","scope":21400,"src":"976:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21396,"name":"uint256","nodeType":"ElementaryTypeName","src":"976:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"956:35:66"},"returnParameters":{"id":21399,"nodeType":"ParameterList","parameters":[],"src":"1000:0:66"},"scope":21558,"src":"931:70:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5734e5e3","id":21405,"implemented":false,"kind":"function","modifiers":[],"name":"getOrganizationCount","nameLocation":"1205:20:66","nodeType":"FunctionDefinition","parameters":{"id":21401,"nodeType":"ParameterList","parameters":[],"src":"1225:2:66"},"returnParameters":{"id":21404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21405,"src":"1251:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21402,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:9:66"},"scope":21558,"src":"1196:64:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4526f690","id":21412,"implemented":false,"kind":"function","modifiers":[],"name":"getOrganization","nameLocation":"1275:15:66","nodeType":"FunctionDefinition","parameters":{"id":21408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21407,"mutability":"mutable","name":"index","nameLocation":"1299:5:66","nodeType":"VariableDeclaration","scope":21412,"src":"1291:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21406,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1290:15:66"},"returnParameters":{"id":21411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21412,"src":"1329:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21409,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1328:9:66"},"scope":21558,"src":"1266:72:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d5d8f67","id":21423,"implemented":false,"kind":"function","modifiers":[],"name":"hasWithdrawn","nameLocation":"1353:12:66","nodeType":"FunctionDefinition","parameters":{"id":21419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21414,"mutability":"mutable","name":"organizationAddress","nameLocation":"1374:19:66","nodeType":"VariableDeclaration","scope":21423,"src":"1366:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21413,"name":"address","nodeType":"ElementaryTypeName","src":"1366:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21416,"mutability":"mutable","name":"taskId","nameLocation":"1403:6:66","nodeType":"VariableDeclaration","scope":21423,"src":"1395:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21415,"name":"uint256","nodeType":"ElementaryTypeName","src":"1395:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21418,"mutability":"mutable","name":"profileId","nameLocation":"1419:9:66","nodeType":"VariableDeclaration","scope":21423,"src":"1411:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21417,"name":"uint256","nodeType":"ElementaryTypeName","src":"1411:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1365:64:66"},"returnParameters":{"id":21422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21423,"src":"1453:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21420,"name":"bool","nodeType":"ElementaryTypeName","src":"1453:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1452:6:66"},"scope":21558,"src":"1344:115:66","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6427acca","id":21430,"implemented":false,"kind":"function","modifiers":[],"name":"createOrganization","nameLocation":"1474:18:66","nodeType":"FunctionDefinition","parameters":{"id":21426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21425,"mutability":"mutable","name":"metadataURI","nameLocation":"1509:11:66","nodeType":"VariableDeclaration","scope":21430,"src":"1493:27:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":21424,"name":"string","nodeType":"ElementaryTypeName","src":"1493:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1492:29:66"},"returnParameters":{"id":21429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21430,"src":"1540:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21427,"name":"address","nodeType":"ElementaryTypeName","src":"1540:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1539:9:66"},"scope":21558,"src":"1465:84:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"90be003c","id":21435,"implemented":false,"kind":"function","modifiers":[],"name":"registerOrganization","nameLocation":"1564:20:66","nodeType":"FunctionDefinition","parameters":{"id":21433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21432,"mutability":"mutable","name":"organization","nameLocation":"1593:12:66","nodeType":"VariableDeclaration","scope":21435,"src":"1585:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21431,"name":"address","nodeType":"ElementaryTypeName","src":"1585:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1584:22:66"},"returnParameters":{"id":21434,"nodeType":"ParameterList","parameters":[],"src":"1615:0:66"},"scope":21558,"src":"1555:61:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"beef9895","id":21440,"implemented":false,"kind":"function","modifiers":[],"name":"joinOrganization","nameLocation":"1631:16:66","nodeType":"FunctionDefinition","parameters":{"id":21438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21437,"mutability":"mutable","name":"organizationAddress","nameLocation":"1656:19:66","nodeType":"VariableDeclaration","scope":21440,"src":"1648:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21436,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1647:29:66"},"returnParameters":{"id":21439,"nodeType":"ParameterList","parameters":[],"src":"1685:0:66"},"scope":21558,"src":"1622:64:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4ee2ad7c","id":21445,"implemented":false,"kind":"function","modifiers":[],"name":"leaveOrganization","nameLocation":"1701:17:66","nodeType":"FunctionDefinition","parameters":{"id":21443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21442,"mutability":"mutable","name":"organizationAddress","nameLocation":"1727:19:66","nodeType":"VariableDeclaration","scope":21445,"src":"1719:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21441,"name":"address","nodeType":"ElementaryTypeName","src":"1719:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1718:29:66"},"returnParameters":{"id":21444,"nodeType":"ParameterList","parameters":[],"src":"1756:0:66"},"scope":21558,"src":"1692:65:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f521ebe","id":21454,"implemented":false,"kind":"function","modifiers":[],"name":"logTime","nameLocation":"1772:7:66","nodeType":"FunctionDefinition","parameters":{"id":21452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21447,"mutability":"mutable","name":"organizationAddress","nameLocation":"1788:19:66","nodeType":"VariableDeclaration","scope":21454,"src":"1780:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21446,"name":"address","nodeType":"ElementaryTypeName","src":"1780:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21449,"mutability":"mutable","name":"taskId","nameLocation":"1817:6:66","nodeType":"VariableDeclaration","scope":21454,"src":"1809:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1809:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21451,"mutability":"mutable","name":"time","nameLocation":"1833:4:66","nodeType":"VariableDeclaration","scope":21454,"src":"1825:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21450,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1779:59:66"},"returnParameters":{"id":21453,"nodeType":"ParameterList","parameters":[],"src":"1847:0:66"},"scope":21558,"src":"1763:85:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":21461,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"1863:8:66","nodeType":"FunctionDefinition","parameters":{"id":21459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21456,"mutability":"mutable","name":"organizationAddress","nameLocation":"1880:19:66","nodeType":"VariableDeclaration","scope":21461,"src":"1872:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21455,"name":"address","nodeType":"ElementaryTypeName","src":"1872:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21458,"mutability":"mutable","name":"taskId","nameLocation":"1909:6:66","nodeType":"VariableDeclaration","scope":21461,"src":"1901:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1901:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:45:66"},"returnParameters":{"id":21460,"nodeType":"ParameterList","parameters":[],"src":"1925:0:66"},"scope":21558,"src":"1854:72:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0c816de4","id":21468,"implemented":false,"kind":"function","modifiers":[],"name":"issueCertificate","nameLocation":"2129:16:66","nodeType":"FunctionDefinition","parameters":{"id":21466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21463,"mutability":"mutable","name":"profileId","nameLocation":"2154:9:66","nodeType":"VariableDeclaration","scope":21468,"src":"2146:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21462,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21465,"mutability":"mutable","name":"uri","nameLocation":"2179:3:66","nodeType":"VariableDeclaration","scope":21468,"src":"2165:17:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21464,"name":"string","nodeType":"ElementaryTypeName","src":"2165:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2145:38:66"},"returnParameters":{"id":21467,"nodeType":"ParameterList","parameters":[],"src":"2192:0:66"},"scope":21558,"src":"2120:73:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0ce51f56","id":21477,"implemented":false,"kind":"function","modifiers":[],"name":"issueCertificate","nameLocation":"2208:16:66","nodeType":"FunctionDefinition","parameters":{"id":21475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21470,"mutability":"mutable","name":"organizationAddress","nameLocation":"2233:19:66","nodeType":"VariableDeclaration","scope":21477,"src":"2225:27:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21469,"name":"address","nodeType":"ElementaryTypeName","src":"2225:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21472,"mutability":"mutable","name":"profileId","nameLocation":"2262:9:66","nodeType":"VariableDeclaration","scope":21477,"src":"2254:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21471,"name":"uint256","nodeType":"ElementaryTypeName","src":"2254:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21474,"mutability":"mutable","name":"uri","nameLocation":"2287:3:66","nodeType":"VariableDeclaration","scope":21477,"src":"2273:17:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21473,"name":"string","nodeType":"ElementaryTypeName","src":"2273:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2224:67:66"},"returnParameters":{"id":21476,"nodeType":"ParameterList","parameters":[],"src":"2300:0:66"},"scope":21558,"src":"2199:102:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"16b726e5","id":21484,"implemented":false,"kind":"function","modifiers":[],"name":"emitPendingMemberApproved","nameLocation":"2501:25:66","nodeType":"FunctionDefinition","parameters":{"id":21482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21479,"mutability":"mutable","name":"organization","nameLocation":"2535:12:66","nodeType":"VariableDeclaration","scope":21484,"src":"2527:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21478,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21481,"mutability":"mutable","name":"profileId","nameLocation":"2557:9:66","nodeType":"VariableDeclaration","scope":21484,"src":"2549:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2526:41:66"},"returnParameters":{"id":21483,"nodeType":"ParameterList","parameters":[],"src":"2576:0:66"},"scope":21558,"src":"2492:85:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ed94a4d5","id":21491,"implemented":false,"kind":"function","modifiers":[],"name":"emitPendingMemberRejected","nameLocation":"2592:25:66","nodeType":"FunctionDefinition","parameters":{"id":21489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21486,"mutability":"mutable","name":"organization","nameLocation":"2626:12:66","nodeType":"VariableDeclaration","scope":21491,"src":"2618:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21485,"name":"address","nodeType":"ElementaryTypeName","src":"2618:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21488,"mutability":"mutable","name":"profileId","nameLocation":"2648:9:66","nodeType":"VariableDeclaration","scope":21491,"src":"2640:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21487,"name":"uint256","nodeType":"ElementaryTypeName","src":"2640:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2617:41:66"},"returnParameters":{"id":21490,"nodeType":"ParameterList","parameters":[],"src":"2667:0:66"},"scope":21558,"src":"2583:85:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5421eed8","id":21498,"implemented":false,"kind":"function","modifiers":[],"name":"emitProjectCreated","nameLocation":"2683:18:66","nodeType":"FunctionDefinition","parameters":{"id":21496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21493,"mutability":"mutable","name":"organization","nameLocation":"2710:12:66","nodeType":"VariableDeclaration","scope":21498,"src":"2702:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21492,"name":"address","nodeType":"ElementaryTypeName","src":"2702:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21495,"mutability":"mutable","name":"projectId","nameLocation":"2732:9:66","nodeType":"VariableDeclaration","scope":21498,"src":"2724:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21494,"name":"uint256","nodeType":"ElementaryTypeName","src":"2724:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2701:41:66"},"returnParameters":{"id":21497,"nodeType":"ParameterList","parameters":[],"src":"2751:0:66"},"scope":21558,"src":"2674:78:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"96937b43","id":21505,"implemented":false,"kind":"function","modifiers":[],"name":"emitProjectUpdated","nameLocation":"2767:18:66","nodeType":"FunctionDefinition","parameters":{"id":21503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21500,"mutability":"mutable","name":"organization","nameLocation":"2794:12:66","nodeType":"VariableDeclaration","scope":21505,"src":"2786:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21499,"name":"address","nodeType":"ElementaryTypeName","src":"2786:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21502,"mutability":"mutable","name":"projectId","nameLocation":"2816:9:66","nodeType":"VariableDeclaration","scope":21505,"src":"2808:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21501,"name":"uint256","nodeType":"ElementaryTypeName","src":"2808:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2785:41:66"},"returnParameters":{"id":21504,"nodeType":"ParameterList","parameters":[],"src":"2835:0:66"},"scope":21558,"src":"2758:78:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3c819124","id":21514,"implemented":false,"kind":"function","modifiers":[],"name":"emitProjectMemberAdded","nameLocation":"2851:22:66","nodeType":"FunctionDefinition","parameters":{"id":21512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21507,"mutability":"mutable","name":"organization","nameLocation":"2882:12:66","nodeType":"VariableDeclaration","scope":21514,"src":"2874:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21506,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21509,"mutability":"mutable","name":"projectId","nameLocation":"2904:9:66","nodeType":"VariableDeclaration","scope":21514,"src":"2896:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21508,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21511,"mutability":"mutable","name":"profileId","nameLocation":"2923:9:66","nodeType":"VariableDeclaration","scope":21514,"src":"2915:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2915:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2873:60:66"},"returnParameters":{"id":21513,"nodeType":"ParameterList","parameters":[],"src":"2942:0:66"},"scope":21558,"src":"2842:101:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"927aa63c","id":21523,"implemented":false,"kind":"function","modifiers":[],"name":"emitProjectMemberRemoved","nameLocation":"2958:24:66","nodeType":"FunctionDefinition","parameters":{"id":21521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21516,"mutability":"mutable","name":"organization","nameLocation":"2991:12:66","nodeType":"VariableDeclaration","scope":21523,"src":"2983:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21515,"name":"address","nodeType":"ElementaryTypeName","src":"2983:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21518,"mutability":"mutable","name":"projectId","nameLocation":"3013:9:66","nodeType":"VariableDeclaration","scope":21523,"src":"3005:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21517,"name":"uint256","nodeType":"ElementaryTypeName","src":"3005:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21520,"mutability":"mutable","name":"profileId","nameLocation":"3032:9:66","nodeType":"VariableDeclaration","scope":21523,"src":"3024:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21519,"name":"uint256","nodeType":"ElementaryTypeName","src":"3024:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2982:60:66"},"returnParameters":{"id":21522,"nodeType":"ParameterList","parameters":[],"src":"3051:0:66"},"scope":21558,"src":"2949:103:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a8d91b02","id":21532,"implemented":false,"kind":"function","modifiers":[],"name":"emitTaskCreated","nameLocation":"3067:15:66","nodeType":"FunctionDefinition","parameters":{"id":21530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21525,"mutability":"mutable","name":"organization","nameLocation":"3091:12:66","nodeType":"VariableDeclaration","scope":21532,"src":"3083:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21524,"name":"address","nodeType":"ElementaryTypeName","src":"3083:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21527,"mutability":"mutable","name":"projectId","nameLocation":"3113:9:66","nodeType":"VariableDeclaration","scope":21532,"src":"3105:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3105:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21529,"mutability":"mutable","name":"taskId","nameLocation":"3132:6:66","nodeType":"VariableDeclaration","scope":21532,"src":"3124:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21528,"name":"uint256","nodeType":"ElementaryTypeName","src":"3124:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3082:57:66"},"returnParameters":{"id":21531,"nodeType":"ParameterList","parameters":[],"src":"3148:0:66"},"scope":21558,"src":"3058:91:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6d30ec62","id":21539,"implemented":false,"kind":"function","modifiers":[],"name":"emitTaskUpdated","nameLocation":"3164:15:66","nodeType":"FunctionDefinition","parameters":{"id":21537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21534,"mutability":"mutable","name":"organization","nameLocation":"3188:12:66","nodeType":"VariableDeclaration","scope":21539,"src":"3180:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21533,"name":"address","nodeType":"ElementaryTypeName","src":"3180:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21536,"mutability":"mutable","name":"taskId","nameLocation":"3210:6:66","nodeType":"VariableDeclaration","scope":21539,"src":"3202:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21535,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:38:66"},"returnParameters":{"id":21538,"nodeType":"ParameterList","parameters":[],"src":"3226:0:66"},"scope":21558,"src":"3155:72:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2f6da008","id":21548,"implemented":false,"kind":"function","modifiers":[],"name":"emitTaskMemberAdded","nameLocation":"3242:19:66","nodeType":"FunctionDefinition","parameters":{"id":21546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21541,"mutability":"mutable","name":"organization","nameLocation":"3270:12:66","nodeType":"VariableDeclaration","scope":21548,"src":"3262:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21540,"name":"address","nodeType":"ElementaryTypeName","src":"3262:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21543,"mutability":"mutable","name":"taskId","nameLocation":"3292:6:66","nodeType":"VariableDeclaration","scope":21548,"src":"3284:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21542,"name":"uint256","nodeType":"ElementaryTypeName","src":"3284:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21545,"mutability":"mutable","name":"profileId","nameLocation":"3308:9:66","nodeType":"VariableDeclaration","scope":21548,"src":"3300:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21544,"name":"uint256","nodeType":"ElementaryTypeName","src":"3300:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3261:57:66"},"returnParameters":{"id":21547,"nodeType":"ParameterList","parameters":[],"src":"3327:0:66"},"scope":21558,"src":"3233:95:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"538be3a4","id":21557,"implemented":false,"kind":"function","modifiers":[],"name":"emitTaskMemberRemoved","nameLocation":"3343:21:66","nodeType":"FunctionDefinition","parameters":{"id":21555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21550,"mutability":"mutable","name":"organization","nameLocation":"3373:12:66","nodeType":"VariableDeclaration","scope":21557,"src":"3365:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21549,"name":"address","nodeType":"ElementaryTypeName","src":"3365:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21552,"mutability":"mutable","name":"taskId","nameLocation":"3395:6:66","nodeType":"VariableDeclaration","scope":21557,"src":"3387:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21551,"name":"uint256","nodeType":"ElementaryTypeName","src":"3387:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21554,"mutability":"mutable","name":"profileId","nameLocation":"3411:9:66","nodeType":"VariableDeclaration","scope":21557,"src":"3403:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21553,"name":"uint256","nodeType":"ElementaryTypeName","src":"3403:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3364:57:66"},"returnParameters":{"id":21556,"nodeType":"ParameterList","parameters":[],"src":"3430:0:66"},"scope":21558,"src":"3334:97:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21559,"src":"112:3321:66","usedErrors":[]}],"src":"32:3402:66"},"id":66},"contracts/common/interfaces/IMy3SecProfiles.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IMy3SecProfiles.sol","exportedSymbols":{"IERC165Upgradeable":[2538],"IERC721Upgradeable":[1404],"IMy3SecProfiles":[21601]},"id":21602,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21560,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:67"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol","id":21561,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21602,"sourceUnit":1405,"src":"57:81:67","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21562,"name":"IERC721Upgradeable","nameLocations":["169:18:67"],"nodeType":"IdentifierPath","referencedDeclaration":1404,"src":"169:18:67"},"id":21563,"nodeType":"InheritanceSpecifier","src":"169:18:67"}],"canonicalName":"IMy3SecProfiles","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21601,"linearizedBaseContracts":[21601,1404,2538],"name":"IMy3SecProfiles","nameLocation":"150:15:67","nodeType":"ContractDefinition","nodes":[{"functionSelector":"05b186b6","id":21570,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultProfileId","nameLocation":"203:19:67","nodeType":"FunctionDefinition","parameters":{"id":21566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21565,"mutability":"mutable","name":"account","nameLocation":"231:7:67","nodeType":"VariableDeclaration","scope":21570,"src":"223:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21564,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"222:17:67"},"returnParameters":{"id":21569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21570,"src":"263:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21567,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"262:9:67"},"scope":21601,"src":"194:78:67","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e93a724a","id":21577,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultProfile","nameLocation":"287:17:67","nodeType":"FunctionDefinition","parameters":{"id":21575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21572,"mutability":"mutable","name":"account","nameLocation":"313:7:67","nodeType":"VariableDeclaration","scope":21577,"src":"305:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21571,"name":"address","nodeType":"ElementaryTypeName","src":"305:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21574,"mutability":"mutable","name":"profileId","nameLocation":"330:9:67","nodeType":"VariableDeclaration","scope":21577,"src":"322:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21573,"name":"uint256","nodeType":"ElementaryTypeName","src":"322:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"304:36:67"},"returnParameters":{"id":21576,"nodeType":"ParameterList","parameters":[],"src":"349:0:67"},"scope":21601,"src":"278:72:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7765eba1","id":21586,"implemented":false,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"365:13:67","nodeType":"FunctionDefinition","parameters":{"id":21582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21579,"mutability":"mutable","name":"to","nameLocation":"387:2:67","nodeType":"VariableDeclaration","scope":21586,"src":"379:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21578,"name":"address","nodeType":"ElementaryTypeName","src":"379:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21581,"mutability":"mutable","name":"uri","nameLocation":"405:3:67","nodeType":"VariableDeclaration","scope":21586,"src":"391:17:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21580,"name":"string","nodeType":"ElementaryTypeName","src":"391:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"378:31:67"},"returnParameters":{"id":21585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21586,"src":"428:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21583,"name":"uint256","nodeType":"ElementaryTypeName","src":"428:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"427:9:67"},"scope":21601,"src":"356:81:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89c7e0a0","id":21593,"implemented":false,"kind":"function","modifiers":[],"name":"updateProfile","nameLocation":"452:13:67","nodeType":"FunctionDefinition","parameters":{"id":21591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21588,"mutability":"mutable","name":"profileId","nameLocation":"474:9:67","nodeType":"VariableDeclaration","scope":21593,"src":"466:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21587,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21590,"mutability":"mutable","name":"uri","nameLocation":"499:3:67","nodeType":"VariableDeclaration","scope":21593,"src":"485:17:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21589,"name":"string","nodeType":"ElementaryTypeName","src":"485:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"465:38:67"},"returnParameters":{"id":21592,"nodeType":"ParameterList","parameters":[],"src":"512:0:67"},"scope":21601,"src":"443:70:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c87b56dd","id":21600,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"528:8:67","nodeType":"FunctionDefinition","parameters":{"id":21596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21595,"mutability":"mutable","name":"tokenId","nameLocation":"545:7:67","nodeType":"VariableDeclaration","scope":21600,"src":"537:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21594,"name":"uint256","nodeType":"ElementaryTypeName","src":"537:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"536:17:67"},"returnParameters":{"id":21599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21600,"src":"577:13:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21597,"name":"string","nodeType":"ElementaryTypeName","src":"577:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"576:15:67"},"scope":21601,"src":"519:73:67","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":21602,"src":"140:454:67","usedErrors":[]}],"src":"32:563:67"},"id":67},"contracts/common/interfaces/IMy3SecToken.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IMy3SecToken.sol","exportedSymbols":{"IERC20":[10010],"IMy3SecToken":[21607]},"id":21608,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21603,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:68"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":21604,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21608,"sourceUnit":10011,"src":"57:56:68","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21605,"name":"IERC20","nameLocations":["141:6:68"],"nodeType":"IdentifierPath","referencedDeclaration":10010,"src":"141:6:68"},"id":21606,"nodeType":"InheritanceSpecifier","src":"141:6:68"}],"canonicalName":"IMy3SecToken","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21607,"linearizedBaseContracts":[21607,10010],"name":"IMy3SecToken","nameLocation":"125:12:68","nodeType":"ContractDefinition","nodes":[],"scope":21608,"src":"115:35:68","usedErrors":[]}],"src":"32:119:68"},"id":68},"contracts/common/interfaces/IOrganization.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IOrganization.sol","exportedSymbols":{"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"IOrganization":[21873],"IWhitelistable":[21986]},"id":21874,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21609,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:69"},{"absolutePath":"contracts/common/interfaces/IWhitelistable.sol","file":"../interfaces/IWhitelistable.sol","id":21610,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21874,"sourceUnit":21987,"src":"57:42:69","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"../libraries/DataTypes.sol","id":21611,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21874,"sourceUnit":22124,"src":"100:36:69","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21612,"name":"IWhitelistable","nameLocations":["165:14:69"],"nodeType":"IdentifierPath","referencedDeclaration":21986,"src":"165:14:69"},"id":21613,"nodeType":"InheritanceSpecifier","src":"165:14:69"}],"canonicalName":"IOrganization","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21873,"linearizedBaseContracts":[21873,21986],"name":"IOrganization","nameLocation":"148:13:69","nodeType":"ContractDefinition","nodes":[{"functionSelector":"86a92af7","id":21618,"implemented":false,"kind":"function","modifiers":[],"name":"getMetadataURI","nameLocation":"195:14:69","nodeType":"FunctionDefinition","parameters":{"id":21614,"nodeType":"ParameterList","parameters":[],"src":"209:2:69"},"returnParameters":{"id":21617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21618,"src":"235:13:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21615,"name":"string","nodeType":"ElementaryTypeName","src":"235:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"234:15:69"},"scope":21873,"src":"186:64:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"997072f7","id":21623,"implemented":false,"kind":"function","modifiers":[],"name":"getMemberCount","nameLocation":"265:14:69","nodeType":"FunctionDefinition","parameters":{"id":21619,"nodeType":"ParameterList","parameters":[],"src":"279:2:69"},"returnParameters":{"id":21622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21621,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21623,"src":"305:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21620,"name":"uint256","nodeType":"ElementaryTypeName","src":"305:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"304:9:69"},"scope":21873,"src":"256:58:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ab3545e5","id":21630,"implemented":false,"kind":"function","modifiers":[],"name":"getMember","nameLocation":"329:9:69","nodeType":"FunctionDefinition","parameters":{"id":21626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21625,"mutability":"mutable","name":"index","nameLocation":"347:5:69","nodeType":"VariableDeclaration","scope":21630,"src":"339:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21624,"name":"uint256","nodeType":"ElementaryTypeName","src":"339:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"338:15:69"},"returnParameters":{"id":21629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21630,"src":"377:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21627,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"376:9:69"},"scope":21873,"src":"320:66:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d50c7377","id":21637,"implemented":false,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"401:8:69","nodeType":"FunctionDefinition","parameters":{"id":21633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21632,"mutability":"mutable","name":"profileId","nameLocation":"418:9:69","nodeType":"VariableDeclaration","scope":21637,"src":"410:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21631,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:19:69"},"returnParameters":{"id":21636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21637,"src":"452:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21634,"name":"bool","nodeType":"ElementaryTypeName","src":"452:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"451:6:69"},"scope":21873,"src":"392:66:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bd9d867c","id":21642,"implemented":false,"kind":"function","modifiers":[],"name":"getPendingMemberCount","nameLocation":"473:21:69","nodeType":"FunctionDefinition","parameters":{"id":21638,"nodeType":"ParameterList","parameters":[],"src":"494:2:69"},"returnParameters":{"id":21641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21642,"src":"520:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21639,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"519:9:69"},"scope":21873,"src":"464:65:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c591493f","id":21649,"implemented":false,"kind":"function","modifiers":[],"name":"getPendingMember","nameLocation":"544:16:69","nodeType":"FunctionDefinition","parameters":{"id":21645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21644,"mutability":"mutable","name":"index","nameLocation":"569:5:69","nodeType":"VariableDeclaration","scope":21649,"src":"561:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21643,"name":"uint256","nodeType":"ElementaryTypeName","src":"561:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"560:15:69"},"returnParameters":{"id":21648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21649,"src":"599:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21646,"name":"uint256","nodeType":"ElementaryTypeName","src":"599:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"598:9:69"},"scope":21873,"src":"535:73:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c763bbf4","id":21656,"implemented":false,"kind":"function","modifiers":[],"name":"isPendingMember","nameLocation":"623:15:69","nodeType":"FunctionDefinition","parameters":{"id":21652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21651,"mutability":"mutable","name":"profileId","nameLocation":"647:9:69","nodeType":"VariableDeclaration","scope":21656,"src":"639:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21650,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"638:19:69"},"returnParameters":{"id":21655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21656,"src":"681:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21653,"name":"bool","nodeType":"ElementaryTypeName","src":"681:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"680:6:69"},"scope":21873,"src":"614:73:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"750521f5","id":21661,"implemented":false,"kind":"function","modifiers":[],"name":"setMetadataURI","nameLocation":"702:14:69","nodeType":"FunctionDefinition","parameters":{"id":21659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21658,"mutability":"mutable","name":"metadataURI","nameLocation":"731:11:69","nodeType":"VariableDeclaration","scope":21661,"src":"717:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21657,"name":"string","nodeType":"ElementaryTypeName","src":"717:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"716:27:69"},"returnParameters":{"id":21660,"nodeType":"ParameterList","parameters":[],"src":"752:0:69"},"scope":21873,"src":"693:60:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"049878f3","id":21666,"implemented":false,"kind":"function","modifiers":[],"name":"join","nameLocation":"768:4:69","nodeType":"FunctionDefinition","parameters":{"id":21664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21663,"mutability":"mutable","name":"profileId","nameLocation":"781:9:69","nodeType":"VariableDeclaration","scope":21666,"src":"773:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21662,"name":"uint256","nodeType":"ElementaryTypeName","src":"773:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"772:19:69"},"returnParameters":{"id":21665,"nodeType":"ParameterList","parameters":[],"src":"800:0:69"},"scope":21873,"src":"759:42:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"67dfd4c9","id":21671,"implemented":false,"kind":"function","modifiers":[],"name":"leave","nameLocation":"816:5:69","nodeType":"FunctionDefinition","parameters":{"id":21669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21668,"mutability":"mutable","name":"profileId","nameLocation":"830:9:69","nodeType":"VariableDeclaration","scope":21671,"src":"822:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21667,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:19:69"},"returnParameters":{"id":21670,"nodeType":"ParameterList","parameters":[],"src":"849:0:69"},"scope":21873,"src":"807:43:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06e30412","id":21676,"implemented":false,"kind":"function","modifiers":[],"name":"approvePendingMember","nameLocation":"865:20:69","nodeType":"FunctionDefinition","parameters":{"id":21674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21673,"mutability":"mutable","name":"profileId","nameLocation":"894:9:69","nodeType":"VariableDeclaration","scope":21676,"src":"886:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21672,"name":"uint256","nodeType":"ElementaryTypeName","src":"886:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"885:19:69"},"returnParameters":{"id":21675,"nodeType":"ParameterList","parameters":[],"src":"913:0:69"},"scope":21873,"src":"856:58:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c59db1af","id":21681,"implemented":false,"kind":"function","modifiers":[],"name":"rejectPendingMember","nameLocation":"929:19:69","nodeType":"FunctionDefinition","parameters":{"id":21679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21678,"mutability":"mutable","name":"profileId","nameLocation":"957:9:69","nodeType":"VariableDeclaration","scope":21681,"src":"949:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21677,"name":"uint256","nodeType":"ElementaryTypeName","src":"949:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"948:19:69"},"returnParameters":{"id":21680,"nodeType":"ParameterList","parameters":[],"src":"976:0:69"},"scope":21873,"src":"920:57:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3bcff3b0","id":21686,"implemented":false,"kind":"function","modifiers":[],"name":"getProjectCount","nameLocation":"1176:15:69","nodeType":"FunctionDefinition","parameters":{"id":21682,"nodeType":"ParameterList","parameters":[],"src":"1191:2:69"},"returnParameters":{"id":21685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21686,"src":"1217:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21683,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1216:9:69"},"scope":21873,"src":"1167:59:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f0f3f2c8","id":21694,"implemented":false,"kind":"function","modifiers":[],"name":"getProject","nameLocation":"1241:10:69","nodeType":"FunctionDefinition","parameters":{"id":21689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21688,"mutability":"mutable","name":"index","nameLocation":"1260:5:69","nodeType":"VariableDeclaration","scope":21694,"src":"1252:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1251:15:69"},"returnParameters":{"id":21693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21694,"src":"1290:28:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_memory_ptr","typeString":"struct DataTypes.ProjectView"},"typeName":{"id":21691,"nodeType":"UserDefinedTypeName","pathNode":{"id":21690,"name":"DataTypes.ProjectView","nameLocations":["1290:9:69","1300:11:69"],"nodeType":"IdentifierPath","referencedDeclaration":22063,"src":"1290:21:69"},"referencedDeclaration":22063,"src":"1290:21:69","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_storage_ptr","typeString":"struct DataTypes.ProjectView"}},"visibility":"internal"}],"src":"1289:30:69"},"scope":21873,"src":"1232:88:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"254c290d","id":21701,"implemented":false,"kind":"function","modifiers":[],"name":"getProjectMemberCount","nameLocation":"1335:21:69","nodeType":"FunctionDefinition","parameters":{"id":21697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21696,"mutability":"mutable","name":"projectId","nameLocation":"1365:9:69","nodeType":"VariableDeclaration","scope":21701,"src":"1357:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21695,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1356:19:69"},"returnParameters":{"id":21700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21701,"src":"1399:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21698,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1398:9:69"},"scope":21873,"src":"1326:82:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"49386c56","id":21710,"implemented":false,"kind":"function","modifiers":[],"name":"getProjectMember","nameLocation":"1423:16:69","nodeType":"FunctionDefinition","parameters":{"id":21706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21703,"mutability":"mutable","name":"projectId","nameLocation":"1448:9:69","nodeType":"VariableDeclaration","scope":21710,"src":"1440:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1440:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21705,"mutability":"mutable","name":"index","nameLocation":"1467:5:69","nodeType":"VariableDeclaration","scope":21710,"src":"1459:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21704,"name":"uint256","nodeType":"ElementaryTypeName","src":"1459:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1439:34:69"},"returnParameters":{"id":21709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21710,"src":"1497:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1496:9:69"},"scope":21873,"src":"1414:92:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"fad001a2","id":21719,"implemented":false,"kind":"function","modifiers":[],"name":"isProjectMember","nameLocation":"1521:15:69","nodeType":"FunctionDefinition","parameters":{"id":21715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21712,"mutability":"mutable","name":"projectId","nameLocation":"1545:9:69","nodeType":"VariableDeclaration","scope":21719,"src":"1537:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21711,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21714,"mutability":"mutable","name":"profileId","nameLocation":"1564:9:69","nodeType":"VariableDeclaration","scope":21719,"src":"1556:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21713,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1536:38:69"},"returnParameters":{"id":21718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21719,"src":"1598:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21716,"name":"bool","nodeType":"ElementaryTypeName","src":"1598:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1597:6:69"},"scope":21873,"src":"1512:92:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"41aafef7","id":21727,"implemented":false,"kind":"function","modifiers":[],"name":"createProject","nameLocation":"1619:13:69","nodeType":"FunctionDefinition","parameters":{"id":21723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21722,"mutability":"mutable","name":"args","nameLocation":"1666:4:69","nodeType":"VariableDeclaration","scope":21727,"src":"1633:37:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProject_$22033_calldata_ptr","typeString":"struct DataTypes.CreateProject"},"typeName":{"id":21721,"nodeType":"UserDefinedTypeName","pathNode":{"id":21720,"name":"DataTypes.CreateProject","nameLocations":["1633:9:69","1643:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":22033,"src":"1633:23:69"},"referencedDeclaration":22033,"src":"1633:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProject_$22033_storage_ptr","typeString":"struct DataTypes.CreateProject"}},"visibility":"internal"}],"src":"1632:39:69"},"returnParameters":{"id":21726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21727,"src":"1690:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21724,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1689:9:69"},"scope":21873,"src":"1610:89:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2565d6c5","id":21735,"implemented":false,"kind":"function","modifiers":[],"name":"updateProject","nameLocation":"1714:13:69","nodeType":"FunctionDefinition","parameters":{"id":21733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21729,"mutability":"mutable","name":"projectId","nameLocation":"1736:9:69","nodeType":"VariableDeclaration","scope":21735,"src":"1728:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21728,"name":"uint256","nodeType":"ElementaryTypeName","src":"1728:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21732,"mutability":"mutable","name":"args","nameLocation":"1780:4:69","nodeType":"VariableDeclaration","scope":21735,"src":"1747:37:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_calldata_ptr","typeString":"struct DataTypes.UpdateProject"},"typeName":{"id":21731,"nodeType":"UserDefinedTypeName","pathNode":{"id":21730,"name":"DataTypes.UpdateProject","nameLocations":["1747:9:69","1757:13:69"],"nodeType":"IdentifierPath","referencedDeclaration":22039,"src":"1747:23:69"},"referencedDeclaration":22039,"src":"1747:23:69","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_storage_ptr","typeString":"struct DataTypes.UpdateProject"}},"visibility":"internal"}],"src":"1727:58:69"},"returnParameters":{"id":21734,"nodeType":"ParameterList","parameters":[],"src":"1794:0:69"},"scope":21873,"src":"1705:90:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c7ea81fc","id":21742,"implemented":false,"kind":"function","modifiers":[],"name":"addProjectMember","nameLocation":"1810:16:69","nodeType":"FunctionDefinition","parameters":{"id":21740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21737,"mutability":"mutable","name":"projectId","nameLocation":"1835:9:69","nodeType":"VariableDeclaration","scope":21742,"src":"1827:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21736,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21739,"mutability":"mutable","name":"profileId","nameLocation":"1854:9:69","nodeType":"VariableDeclaration","scope":21742,"src":"1846:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1846:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:38:69"},"returnParameters":{"id":21741,"nodeType":"ParameterList","parameters":[],"src":"1873:0:69"},"scope":21873,"src":"1801:73:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7d542a4f","id":21749,"implemented":false,"kind":"function","modifiers":[],"name":"removeProjectMember","nameLocation":"1889:19:69","nodeType":"FunctionDefinition","parameters":{"id":21747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21744,"mutability":"mutable","name":"projectId","nameLocation":"1917:9:69","nodeType":"VariableDeclaration","scope":21749,"src":"1909:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1909:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21746,"mutability":"mutable","name":"profileId","nameLocation":"1936:9:69","nodeType":"VariableDeclaration","scope":21749,"src":"1928:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21745,"name":"uint256","nodeType":"ElementaryTypeName","src":"1928:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1908:38:69"},"returnParameters":{"id":21748,"nodeType":"ParameterList","parameters":[],"src":"1955:0:69"},"scope":21873,"src":"1880:76:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"76a79dcc","id":21756,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskCount","nameLocation":"2152:12:69","nodeType":"FunctionDefinition","parameters":{"id":21752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21751,"mutability":"mutable","name":"projectId","nameLocation":"2173:9:69","nodeType":"VariableDeclaration","scope":21756,"src":"2165:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21750,"name":"uint256","nodeType":"ElementaryTypeName","src":"2165:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2164:19:69"},"returnParameters":{"id":21755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21756,"src":"2207:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21753,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:9:69"},"scope":21873,"src":"2143:73:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"52dd4eb1","id":21766,"implemented":false,"kind":"function","modifiers":[],"name":"getTask","nameLocation":"2231:7:69","nodeType":"FunctionDefinition","parameters":{"id":21761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21758,"mutability":"mutable","name":"projectId","nameLocation":"2247:9:69","nodeType":"VariableDeclaration","scope":21766,"src":"2239:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21760,"mutability":"mutable","name":"index","nameLocation":"2266:5:69","nodeType":"VariableDeclaration","scope":21766,"src":"2258:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21759,"name":"uint256","nodeType":"ElementaryTypeName","src":"2258:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2238:34:69"},"returnParameters":{"id":21765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21766,"src":"2296:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":21763,"nodeType":"UserDefinedTypeName","pathNode":{"id":21762,"name":"DataTypes.TaskView","nameLocations":["2296:9:69","2306:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"2296:18:69"},"referencedDeclaration":22111,"src":"2296:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"src":"2295:27:69"},"scope":21873,"src":"2222:101:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1d65e77e","id":21774,"implemented":false,"kind":"function","modifiers":[],"name":"getTask","nameLocation":"2338:7:69","nodeType":"FunctionDefinition","parameters":{"id":21769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21768,"mutability":"mutable","name":"taskId","nameLocation":"2354:6:69","nodeType":"VariableDeclaration","scope":21774,"src":"2346:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21767,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:16:69"},"returnParameters":{"id":21773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21774,"src":"2385:25:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":21771,"nodeType":"UserDefinedTypeName","pathNode":{"id":21770,"name":"DataTypes.TaskView","nameLocations":["2385:9:69","2395:8:69"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"2385:18:69"},"referencedDeclaration":22111,"src":"2385:18:69","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"src":"2384:27:69"},"scope":21873,"src":"2329:83:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2825ee48","id":21781,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskMemberCount","nameLocation":"2427:18:69","nodeType":"FunctionDefinition","parameters":{"id":21777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21776,"mutability":"mutable","name":"taskId","nameLocation":"2454:6:69","nodeType":"VariableDeclaration","scope":21781,"src":"2446:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2446:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2445:16:69"},"returnParameters":{"id":21780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21781,"src":"2485:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21778,"name":"uint256","nodeType":"ElementaryTypeName","src":"2485:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2484:9:69"},"scope":21873,"src":"2418:76:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"daf91ffc","id":21790,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskMember","nameLocation":"2509:13:69","nodeType":"FunctionDefinition","parameters":{"id":21786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21783,"mutability":"mutable","name":"taskId","nameLocation":"2531:6:69","nodeType":"VariableDeclaration","scope":21790,"src":"2523:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21782,"name":"uint256","nodeType":"ElementaryTypeName","src":"2523:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21785,"mutability":"mutable","name":"index","nameLocation":"2547:5:69","nodeType":"VariableDeclaration","scope":21790,"src":"2539:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21784,"name":"uint256","nodeType":"ElementaryTypeName","src":"2539:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2522:31:69"},"returnParameters":{"id":21789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21790,"src":"2577:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21787,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2576:9:69"},"scope":21873,"src":"2500:86:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ab4fbac3","id":21799,"implemented":false,"kind":"function","modifiers":[],"name":"isTaskMember","nameLocation":"2601:12:69","nodeType":"FunctionDefinition","parameters":{"id":21795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21792,"mutability":"mutable","name":"taskId","nameLocation":"2622:6:69","nodeType":"VariableDeclaration","scope":21799,"src":"2614:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21791,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21794,"mutability":"mutable","name":"profileId","nameLocation":"2638:9:69","nodeType":"VariableDeclaration","scope":21799,"src":"2630:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21793,"name":"uint256","nodeType":"ElementaryTypeName","src":"2630:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2613:35:69"},"returnParameters":{"id":21798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21799,"src":"2672:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21796,"name":"bool","nodeType":"ElementaryTypeName","src":"2672:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2671:6:69"},"scope":21873,"src":"2592:86:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ad91a095","id":21806,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskLoggedTimeCount","nameLocation":"2693:22:69","nodeType":"FunctionDefinition","parameters":{"id":21802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21801,"mutability":"mutable","name":"taskId","nameLocation":"2724:6:69","nodeType":"VariableDeclaration","scope":21806,"src":"2716:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21800,"name":"uint256","nodeType":"ElementaryTypeName","src":"2716:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2715:16:69"},"returnParameters":{"id":21805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21806,"src":"2755:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21803,"name":"uint256","nodeType":"ElementaryTypeName","src":"2755:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2754:9:69"},"scope":21873,"src":"2684:80:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"07450adc","id":21817,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskLoggedTime","nameLocation":"2779:17:69","nodeType":"FunctionDefinition","parameters":{"id":21811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21808,"mutability":"mutable","name":"taskId","nameLocation":"2805:6:69","nodeType":"VariableDeclaration","scope":21817,"src":"2797:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21807,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21810,"mutability":"mutable","name":"index","nameLocation":"2821:5:69","nodeType":"VariableDeclaration","scope":21817,"src":"2813:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21809,"name":"uint256","nodeType":"ElementaryTypeName","src":"2813:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2796:31:69"},"returnParameters":{"id":21816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21817,"src":"2851:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2851:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21817,"src":"2860:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21814,"name":"uint256","nodeType":"ElementaryTypeName","src":"2860:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2850:18:69"},"scope":21873,"src":"2770:99:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0e1e20a2","id":21826,"implemented":false,"kind":"function","modifiers":[],"name":"getTaskLoggedTimeOfProfile","nameLocation":"2884:26:69","nodeType":"FunctionDefinition","parameters":{"id":21822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21819,"mutability":"mutable","name":"taskId","nameLocation":"2919:6:69","nodeType":"VariableDeclaration","scope":21826,"src":"2911:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21818,"name":"uint256","nodeType":"ElementaryTypeName","src":"2911:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21821,"mutability":"mutable","name":"profileId","nameLocation":"2935:9:69","nodeType":"VariableDeclaration","scope":21826,"src":"2927:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21820,"name":"uint256","nodeType":"ElementaryTypeName","src":"2927:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2910:35:69"},"returnParameters":{"id":21825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21826,"src":"2969:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21823,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2968:9:69"},"scope":21873,"src":"2875:103:69","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"afcefa71","id":21836,"implemented":false,"kind":"function","modifiers":[],"name":"createTask","nameLocation":"2993:10:69","nodeType":"FunctionDefinition","parameters":{"id":21832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21828,"mutability":"mutable","name":"projectId","nameLocation":"3012:9:69","nodeType":"VariableDeclaration","scope":21836,"src":"3004:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3004:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21831,"mutability":"mutable","name":"args","nameLocation":"3053:4:69","nodeType":"VariableDeclaration","scope":21836,"src":"3023:34:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_calldata_ptr","typeString":"struct DataTypes.CreateTask"},"typeName":{"id":21830,"nodeType":"UserDefinedTypeName","pathNode":{"id":21829,"name":"DataTypes.CreateTask","nameLocations":["3023:9:69","3033:10:69"],"nodeType":"IdentifierPath","referencedDeclaration":22074,"src":"3023:20:69"},"referencedDeclaration":22074,"src":"3023:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_storage_ptr","typeString":"struct DataTypes.CreateTask"}},"visibility":"internal"}],"src":"3003:55:69"},"returnParameters":{"id":21835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21836,"src":"3077:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21833,"name":"uint256","nodeType":"ElementaryTypeName","src":"3077:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3076:9:69"},"scope":21873,"src":"2984:102:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2a10fb85","id":21844,"implemented":false,"kind":"function","modifiers":[],"name":"updateTask","nameLocation":"3101:10:69","nodeType":"FunctionDefinition","parameters":{"id":21842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21838,"mutability":"mutable","name":"taskId","nameLocation":"3120:6:69","nodeType":"VariableDeclaration","scope":21844,"src":"3112:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21837,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21841,"mutability":"mutable","name":"args","nameLocation":"3158:4:69","nodeType":"VariableDeclaration","scope":21844,"src":"3128:34:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_calldata_ptr","typeString":"struct DataTypes.UpdateTask"},"typeName":{"id":21840,"nodeType":"UserDefinedTypeName","pathNode":{"id":21839,"name":"DataTypes.UpdateTask","nameLocations":["3128:9:69","3138:10:69"],"nodeType":"IdentifierPath","referencedDeclaration":22083,"src":"3128:20:69"},"referencedDeclaration":22083,"src":"3128:20:69","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_storage_ptr","typeString":"struct DataTypes.UpdateTask"}},"visibility":"internal"}],"src":"3111:52:69"},"returnParameters":{"id":21843,"nodeType":"ParameterList","parameters":[],"src":"3172:0:69"},"scope":21873,"src":"3092:81:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1599bea5","id":21851,"implemented":false,"kind":"function","modifiers":[],"name":"addTaskMember","nameLocation":"3188:13:69","nodeType":"FunctionDefinition","parameters":{"id":21849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21846,"mutability":"mutable","name":"taskId","nameLocation":"3210:6:69","nodeType":"VariableDeclaration","scope":21851,"src":"3202:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21845,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21848,"mutability":"mutable","name":"profileId","nameLocation":"3226:9:69","nodeType":"VariableDeclaration","scope":21851,"src":"3218:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21847,"name":"uint256","nodeType":"ElementaryTypeName","src":"3218:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:35:69"},"returnParameters":{"id":21850,"nodeType":"ParameterList","parameters":[],"src":"3245:0:69"},"scope":21873,"src":"3179:67:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3e2de334","id":21858,"implemented":false,"kind":"function","modifiers":[],"name":"removeTaskMember","nameLocation":"3261:16:69","nodeType":"FunctionDefinition","parameters":{"id":21856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21853,"mutability":"mutable","name":"taskId","nameLocation":"3286:6:69","nodeType":"VariableDeclaration","scope":21858,"src":"3278:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21852,"name":"uint256","nodeType":"ElementaryTypeName","src":"3278:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21855,"mutability":"mutable","name":"profileId","nameLocation":"3302:9:69","nodeType":"VariableDeclaration","scope":21858,"src":"3294:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21854,"name":"uint256","nodeType":"ElementaryTypeName","src":"3294:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3277:35:69"},"returnParameters":{"id":21857,"nodeType":"ParameterList","parameters":[],"src":"3321:0:69"},"scope":21873,"src":"3252:70:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6989fd6b","id":21867,"implemented":false,"kind":"function","modifiers":[],"name":"updateTaskTime","nameLocation":"3337:14:69","nodeType":"FunctionDefinition","parameters":{"id":21865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21860,"mutability":"mutable","name":"projectId","nameLocation":"3360:9:69","nodeType":"VariableDeclaration","scope":21867,"src":"3352:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21859,"name":"uint256","nodeType":"ElementaryTypeName","src":"3352:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21862,"mutability":"mutable","name":"taskId","nameLocation":"3379:6:69","nodeType":"VariableDeclaration","scope":21867,"src":"3371:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21861,"name":"uint256","nodeType":"ElementaryTypeName","src":"3371:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21864,"mutability":"mutable","name":"time","nameLocation":"3395:4:69","nodeType":"VariableDeclaration","scope":21867,"src":"3387:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21863,"name":"uint256","nodeType":"ElementaryTypeName","src":"3387:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3351:49:69"},"returnParameters":{"id":21866,"nodeType":"ParameterList","parameters":[],"src":"3409:0:69"},"scope":21873,"src":"3328:82:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f2fde38b","id":21872,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"3611:17:69","nodeType":"FunctionDefinition","parameters":{"id":21870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21869,"mutability":"mutable","name":"newOwner","nameLocation":"3637:8:69","nodeType":"VariableDeclaration","scope":21872,"src":"3629:16:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21868,"name":"address","nodeType":"ElementaryTypeName","src":"3629:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3628:18:69"},"returnParameters":{"id":21871,"nodeType":"ParameterList","parameters":[],"src":"3655:0:69"},"scope":21873,"src":"3602:54:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21874,"src":"138:3520:69","usedErrors":[]}],"src":"32:3627:69"},"id":69},"contracts/common/interfaces/ISkillRegistry.sol":{"ast":{"absolutePath":"contracts/common/interfaces/ISkillRegistry.sol","exportedSymbols":{"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"ISkillRegistry":[21914]},"id":21915,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21875,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:70"},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"../libraries/DataTypes.sol","id":21876,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21915,"sourceUnit":22124,"src":"57:36:70","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ISkillRegistry","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21914,"linearizedBaseContracts":[21914],"name":"ISkillRegistry","nameLocation":"105:14:70","nodeType":"ContractDefinition","nodes":[{"functionSelector":"05f53b29","id":21881,"implemented":false,"kind":"function","modifiers":[],"name":"getSkillCount","nameLocation":"135:13:70","nodeType":"FunctionDefinition","parameters":{"id":21877,"nodeType":"ParameterList","parameters":[],"src":"148:2:70"},"returnParameters":{"id":21880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21881,"src":"174:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21878,"name":"uint256","nodeType":"ElementaryTypeName","src":"174:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"173:9:70"},"scope":21914,"src":"126:57:70","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bd880fae","id":21889,"implemented":false,"kind":"function","modifiers":[],"name":"getSkill","nameLocation":"198:8:70","nodeType":"FunctionDefinition","parameters":{"id":21884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21883,"mutability":"mutable","name":"index","nameLocation":"215:5:70","nodeType":"VariableDeclaration","scope":21889,"src":"207:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21882,"name":"uint256","nodeType":"ElementaryTypeName","src":"207:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"206:15:70"},"returnParameters":{"id":21888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21889,"src":"245:26:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_memory_ptr","typeString":"struct DataTypes.SkillView"},"typeName":{"id":21886,"nodeType":"UserDefinedTypeName","pathNode":{"id":21885,"name":"DataTypes.SkillView","nameLocations":["245:9:70","255:9:70"],"nodeType":"IdentifierPath","referencedDeclaration":22122,"src":"245:19:70"},"referencedDeclaration":22122,"src":"245:19:70","typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_storage_ptr","typeString":"struct DataTypes.SkillView"}},"visibility":"internal"}],"src":"244:28:70"},"scope":21914,"src":"189:84:70","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"714c5398","id":21894,"implemented":false,"kind":"function","modifiers":[],"name":"getBaseURI","nameLocation":"288:10:70","nodeType":"FunctionDefinition","parameters":{"id":21890,"nodeType":"ParameterList","parameters":[],"src":"298:2:70"},"returnParameters":{"id":21893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21894,"src":"324:13:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21891,"name":"string","nodeType":"ElementaryTypeName","src":"324:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"323:15:70"},"scope":21914,"src":"279:60:70","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"55f804b3","id":21899,"implemented":false,"kind":"function","modifiers":[],"name":"setBaseURI","nameLocation":"354:10:70","nodeType":"FunctionDefinition","parameters":{"id":21897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21896,"mutability":"mutable","name":"baseURI","nameLocation":"379:7:70","nodeType":"VariableDeclaration","scope":21899,"src":"365:21:70","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21895,"name":"string","nodeType":"ElementaryTypeName","src":"365:6:70","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"364:23:70"},"returnParameters":{"id":21898,"nodeType":"ParameterList","parameters":[],"src":"396:0:70"},"scope":21914,"src":"345:52:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3fa9b1e4","id":21905,"implemented":false,"kind":"function","modifiers":[],"name":"createSkill","nameLocation":"412:11:70","nodeType":"FunctionDefinition","parameters":{"id":21903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21902,"mutability":"mutable","name":"args","nameLocation":"455:4:70","nodeType":"VariableDeclaration","scope":21905,"src":"424:35:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateSkill_$22114_calldata_ptr","typeString":"struct DataTypes.CreateSkill"},"typeName":{"id":21901,"nodeType":"UserDefinedTypeName","pathNode":{"id":21900,"name":"DataTypes.CreateSkill","nameLocations":["424:9:70","434:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":22114,"src":"424:21:70"},"referencedDeclaration":22114,"src":"424:21:70","typeDescriptions":{"typeIdentifier":"t_struct$_CreateSkill_$22114_storage_ptr","typeString":"struct DataTypes.CreateSkill"}},"visibility":"internal"}],"src":"423:37:70"},"returnParameters":{"id":21904,"nodeType":"ParameterList","parameters":[],"src":"469:0:70"},"scope":21914,"src":"403:67:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8c2576b2","id":21913,"implemented":false,"kind":"function","modifiers":[],"name":"updateSkill","nameLocation":"485:11:70","nodeType":"FunctionDefinition","parameters":{"id":21911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21907,"mutability":"mutable","name":"id","nameLocation":"505:2:70","nodeType":"VariableDeclaration","scope":21913,"src":"497:10:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21906,"name":"uint256","nodeType":"ElementaryTypeName","src":"497:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21910,"mutability":"mutable","name":"args","nameLocation":"540:4:70","nodeType":"VariableDeclaration","scope":21913,"src":"509:35:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateSkill_$22117_calldata_ptr","typeString":"struct DataTypes.UpdateSkill"},"typeName":{"id":21909,"nodeType":"UserDefinedTypeName","pathNode":{"id":21908,"name":"DataTypes.UpdateSkill","nameLocations":["509:9:70","519:11:70"],"nodeType":"IdentifierPath","referencedDeclaration":22117,"src":"509:21:70"},"referencedDeclaration":22117,"src":"509:21:70","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateSkill_$22117_storage_ptr","typeString":"struct DataTypes.UpdateSkill"}},"visibility":"internal"}],"src":"496:49:70"},"returnParameters":{"id":21912,"nodeType":"ParameterList","parameters":[],"src":"554:0:70"},"scope":21914,"src":"476:79:70","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21915,"src":"95:462:70","usedErrors":[]}],"src":"32:526:70"},"id":70},"contracts/common/interfaces/ISkillWallet.sol":{"ast":{"absolutePath":"contracts/common/interfaces/ISkillWallet.sol","exportedSymbols":{"ISkillWallet":[21944]},"id":21945,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21916,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:71"},{"abstract":false,"baseContracts":[],"canonicalName":"ISkillWallet","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21944,"linearizedBaseContracts":[21944],"name":"ISkillWallet","nameLocation":"67:12:71","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a59acb85","id":21923,"implemented":false,"kind":"function","modifiers":[],"name":"getSkillCount","nameLocation":"95:13:71","nodeType":"FunctionDefinition","parameters":{"id":21919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21918,"mutability":"mutable","name":"profileID","nameLocation":"117:9:71","nodeType":"VariableDeclaration","scope":21923,"src":"109:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21917,"name":"uint256","nodeType":"ElementaryTypeName","src":"109:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"108:19:71"},"returnParameters":{"id":21922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21923,"src":"151:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21920,"name":"uint256","nodeType":"ElementaryTypeName","src":"151:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"150:9:71"},"scope":21944,"src":"86:74:71","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b74044bc","id":21934,"implemented":false,"kind":"function","modifiers":[],"name":"getSkill","nameLocation":"175:8:71","nodeType":"FunctionDefinition","parameters":{"id":21928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21925,"mutability":"mutable","name":"profileID","nameLocation":"192:9:71","nodeType":"VariableDeclaration","scope":21934,"src":"184:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21924,"name":"uint256","nodeType":"ElementaryTypeName","src":"184:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21927,"mutability":"mutable","name":"index","nameLocation":"211:5:71","nodeType":"VariableDeclaration","scope":21934,"src":"203:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21926,"name":"uint256","nodeType":"ElementaryTypeName","src":"203:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"183:34:71"},"returnParameters":{"id":21933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21934,"src":"241:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21929,"name":"uint256","nodeType":"ElementaryTypeName","src":"241:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21934,"src":"250:7:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21931,"name":"uint256","nodeType":"ElementaryTypeName","src":"250:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"240:18:71"},"scope":21944,"src":"166:93:71","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95933f88","id":21943,"implemented":false,"kind":"function","modifiers":[],"name":"recordExperience","nameLocation":"274:16:71","nodeType":"FunctionDefinition","parameters":{"id":21941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21936,"mutability":"mutable","name":"profileID","nameLocation":"299:9:71","nodeType":"VariableDeclaration","scope":21943,"src":"291:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21935,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21938,"mutability":"mutable","name":"skillID","nameLocation":"318:7:71","nodeType":"VariableDeclaration","scope":21943,"src":"310:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21937,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21940,"mutability":"mutable","name":"amount","nameLocation":"335:6:71","nodeType":"VariableDeclaration","scope":21943,"src":"327:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21939,"name":"uint256","nodeType":"ElementaryTypeName","src":"327:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"290:52:71"},"returnParameters":{"id":21942,"nodeType":"ParameterList","parameters":[],"src":"351:0:71"},"scope":21944,"src":"265:87:71","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21945,"src":"57:297:71","usedErrors":[]}],"src":"32:323:71"},"id":71},"contracts/common/interfaces/ITimeWallet.sol":{"ast":{"absolutePath":"contracts/common/interfaces/ITimeWallet.sol","exportedSymbols":{"ITimeWallet":[21954]},"id":21955,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21946,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:72"},{"abstract":false,"baseContracts":[],"canonicalName":"ITimeWallet","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21954,"linearizedBaseContracts":[21954],"name":"ITimeWallet","nameLocation":"67:11:72","nodeType":"ContractDefinition","nodes":[{"functionSelector":"581823bd","id":21953,"implemented":false,"kind":"function","modifiers":[],"name":"spendTimeFor","nameLocation":"94:12:72","nodeType":"FunctionDefinition","parameters":{"id":21951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21948,"mutability":"mutable","name":"profileId","nameLocation":"115:9:72","nodeType":"VariableDeclaration","scope":21953,"src":"107:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21947,"name":"uint256","nodeType":"ElementaryTypeName","src":"107:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21950,"mutability":"mutable","name":"time","nameLocation":"134:4:72","nodeType":"VariableDeclaration","scope":21953,"src":"126:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21949,"name":"uint256","nodeType":"ElementaryTypeName","src":"126:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"106:33:72"},"returnParameters":{"id":21952,"nodeType":"ParameterList","parameters":[],"src":"148:0:72"},"scope":21954,"src":"85:64:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21955,"src":"57:94:72","usedErrors":[]}],"src":"32:120:72"},"id":72},"contracts/common/interfaces/IWhitelistable.sol":{"ast":{"absolutePath":"contracts/common/interfaces/IWhitelistable.sol","exportedSymbols":{"IWhitelistable":[21986]},"id":21987,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21956,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:73"},{"abstract":false,"baseContracts":[],"canonicalName":"IWhitelistable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":21986,"linearizedBaseContracts":[21986],"name":"IWhitelistable","nameLocation":"67:14:73","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3edff20f","id":21961,"implemented":false,"kind":"function","modifiers":[],"name":"getWhitelistCount","nameLocation":"97:17:73","nodeType":"FunctionDefinition","parameters":{"id":21957,"nodeType":"ParameterList","parameters":[],"src":"114:2:73"},"returnParameters":{"id":21960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21961,"src":"140:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21958,"name":"uint256","nodeType":"ElementaryTypeName","src":"140:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"139:9:73"},"scope":21986,"src":"88:61:73","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d7511957","id":21968,"implemented":false,"kind":"function","modifiers":[],"name":"getWhitelistMember","nameLocation":"164:18:73","nodeType":"FunctionDefinition","parameters":{"id":21964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21963,"mutability":"mutable","name":"index","nameLocation":"191:5:73","nodeType":"VariableDeclaration","scope":21968,"src":"183:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21962,"name":"uint256","nodeType":"ElementaryTypeName","src":"183:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182:15:73"},"returnParameters":{"id":21967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21968,"src":"221:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21965,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"220:9:73"},"scope":21986,"src":"155:75:73","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3af32abf","id":21975,"implemented":false,"kind":"function","modifiers":[],"name":"isWhitelisted","nameLocation":"245:13:73","nodeType":"FunctionDefinition","parameters":{"id":21971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21970,"mutability":"mutable","name":"account","nameLocation":"267:7:73","nodeType":"VariableDeclaration","scope":21975,"src":"259:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21969,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"258:17:73"},"returnParameters":{"id":21974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21975,"src":"299:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21972,"name":"bool","nodeType":"ElementaryTypeName","src":"299:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"298:6:73"},"scope":21986,"src":"236:69:73","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e43252d7","id":21980,"implemented":false,"kind":"function","modifiers":[],"name":"addToWhitelist","nameLocation":"320:14:73","nodeType":"FunctionDefinition","parameters":{"id":21978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21977,"mutability":"mutable","name":"account","nameLocation":"343:7:73","nodeType":"VariableDeclaration","scope":21980,"src":"335:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21976,"name":"address","nodeType":"ElementaryTypeName","src":"335:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"334:17:73"},"returnParameters":{"id":21979,"nodeType":"ParameterList","parameters":[],"src":"360:0:73"},"scope":21986,"src":"311:50:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8ab1d681","id":21985,"implemented":false,"kind":"function","modifiers":[],"name":"removeFromWhitelist","nameLocation":"376:19:73","nodeType":"FunctionDefinition","parameters":{"id":21983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21982,"mutability":"mutable","name":"account","nameLocation":"404:7:73","nodeType":"VariableDeclaration","scope":21985,"src":"396:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21981,"name":"address","nodeType":"ElementaryTypeName","src":"396:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"395:17:73"},"returnParameters":{"id":21984,"nodeType":"ParameterList","parameters":[],"src":"421:0:73"},"scope":21986,"src":"367:55:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":21987,"src":"57:367:73","usedErrors":[]}],"src":"32:393:73"},"id":73},"contracts/common/libraries/Constants.sol":{"ast":{"absolutePath":"contracts/common/libraries/Constants.sol","exportedSymbols":{"Constants":[22010]},"id":22011,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":21988,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:74"},{"abstract":false,"baseContracts":[],"canonicalName":"Constants","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":22010,"linearizedBaseContracts":[22010],"name":"Constants","nameLocation":"65:9:74","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":21991,"mutability":"constant","name":"PROFILE_INITIAL_ENERGY","nameLocation":"106:22:74","nodeType":"VariableDeclaration","scope":22010,"src":"81:52:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":21989,"name":"uint16","nodeType":"ElementaryTypeName","src":"81:6:74","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3130","id":21990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:2:74","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"constant":true,"id":21994,"mutability":"constant","name":"TIME_WALLET_SLOT_SIZE","nameLocation":"165:21:74","nodeType":"VariableDeclaration","scope":22010,"src":"139:56:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21992,"name":"uint256","nodeType":"ElementaryTypeName","src":"139:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":21993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189:6:74","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"visibility":"internal"},{"constant":true,"id":21997,"mutability":"constant","name":"DAO_VOTING_DELAY","nameLocation":"227:16:74","nodeType":"VariableDeclaration","scope":22010,"src":"201:51:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21995,"name":"uint256","nodeType":"ElementaryTypeName","src":"201:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":21996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246:6:74","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"visibility":"internal"},{"constant":true,"id":22000,"mutability":"constant","name":"DAO_VOTING_PERIOD","nameLocation":"284:17:74","nodeType":"VariableDeclaration","scope":22010,"src":"258:52:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21998,"name":"uint256","nodeType":"ElementaryTypeName","src":"258:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":21999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"304:6:74","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_604800_by_1","typeString":"int_const 604800"},"value":"7"},"visibility":"internal"},{"constant":true,"id":22003,"mutability":"constant","name":"DAO_PROPOSAL_THRESHOLD","nameLocation":"342:22:74","nodeType":"VariableDeclaration","scope":22010,"src":"316:52:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22001,"name":"uint256","nodeType":"ElementaryTypeName","src":"316:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":22002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"367:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"constant":true,"id":22006,"mutability":"constant","name":"DAO_QUORUM","nameLocation":"400:10:74","nodeType":"VariableDeclaration","scope":22010,"src":"374:40:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22004,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34","id":22005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"413:1:74","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"constant":true,"id":22009,"mutability":"constant","name":"DAO_TIMELOCK_DELAY","nameLocation":"446:18:74","nodeType":"VariableDeclaration","scope":22010,"src":"420:53:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22007,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":22008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"467:6:74","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"visibility":"internal"}],"scope":22011,"src":"57:419:74","usedErrors":[]}],"src":"32:445:74"},"id":74},"contracts/common/libraries/DataTypes.sol":{"ast":{"absolutePath":"contracts/common/libraries/DataTypes.sol","exportedSymbols":{"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820]},"id":22124,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22012,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:75"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","id":22013,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22124,"sourceUnit":19208,"src":"57:65:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":22014,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22124,"sourceUnit":19821,"src":"123:65:75","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"DataTypes","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":22123,"linearizedBaseContracts":[22123],"name":"DataTypes","nameLocation":"198:9:75","nodeType":"ContractDefinition","nodes":[{"canonicalName":"DataTypes.CreateProfile","id":22017,"members":[{"constant":false,"id":22016,"mutability":"mutable","name":"metadataURI","nameLocation":"252:11:75","nodeType":"VariableDeclaration","scope":22017,"src":"245:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22015,"name":"string","nodeType":"ElementaryTypeName","src":"245:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"CreateProfile","nameLocation":"221:13:75","nodeType":"StructDefinition","scope":22123,"src":"214:56:75","visibility":"public"},{"canonicalName":"DataTypes.UpdateProfile","id":22020,"members":[{"constant":false,"id":22019,"mutability":"mutable","name":"metadataURI","nameLocation":"314:11:75","nodeType":"VariableDeclaration","scope":22020,"src":"307:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22018,"name":"string","nodeType":"ElementaryTypeName","src":"307:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"UpdateProfile","nameLocation":"283:13:75","nodeType":"StructDefinition","scope":22123,"src":"276:56:75","visibility":"public"},{"canonicalName":"DataTypes.ProfileView","id":22025,"members":[{"constant":false,"id":22022,"mutability":"mutable","name":"id","nameLocation":"375:2:75","nodeType":"VariableDeclaration","scope":22025,"src":"367:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22021,"name":"uint256","nodeType":"ElementaryTypeName","src":"367:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22024,"mutability":"mutable","name":"metadataURI","nameLocation":"394:11:75","nodeType":"VariableDeclaration","scope":22025,"src":"387:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22023,"name":"string","nodeType":"ElementaryTypeName","src":"387:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ProfileView","nameLocation":"345:11:75","nodeType":"StructDefinition","scope":22123,"src":"338:74:75","visibility":"public"},{"canonicalName":"DataTypes.ProjectStatus","id":22030,"members":[{"id":22026,"name":"NOT_STARTED","nameLocation":"447:11:75","nodeType":"EnumValue","src":"447:11:75"},{"id":22027,"name":"IN_PROGRESS","nameLocation":"468:11:75","nodeType":"EnumValue","src":"468:11:75"},{"id":22028,"name":"COMPLETED","nameLocation":"489:9:75","nodeType":"EnumValue","src":"489:9:75"},{"id":22029,"name":"CANCELED","nameLocation":"508:8:75","nodeType":"EnumValue","src":"508:8:75"}],"name":"ProjectStatus","nameLocation":"423:13:75","nodeType":"EnumDefinition","src":"418:104:75"},{"canonicalName":"DataTypes.CreateProject","id":22033,"members":[{"constant":false,"id":22032,"mutability":"mutable","name":"metadataURI","nameLocation":"566:11:75","nodeType":"VariableDeclaration","scope":22033,"src":"559:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22031,"name":"string","nodeType":"ElementaryTypeName","src":"559:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"CreateProject","nameLocation":"535:13:75","nodeType":"StructDefinition","scope":22123,"src":"528:56:75","visibility":"public"},{"canonicalName":"DataTypes.UpdateProject","id":22039,"members":[{"constant":false,"id":22035,"mutability":"mutable","name":"metadataURI","nameLocation":"628:11:75","nodeType":"VariableDeclaration","scope":22039,"src":"621:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22034,"name":"string","nodeType":"ElementaryTypeName","src":"621:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22038,"mutability":"mutable","name":"status","nameLocation":"663:6:75","nodeType":"VariableDeclaration","scope":22039,"src":"649:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"},"typeName":{"id":22037,"nodeType":"UserDefinedTypeName","pathNode":{"id":22036,"name":"ProjectStatus","nameLocations":["649:13:75"],"nodeType":"IdentifierPath","referencedDeclaration":22030,"src":"649:13:75"},"referencedDeclaration":22030,"src":"649:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"visibility":"internal"}],"name":"UpdateProject","nameLocation":"597:13:75","nodeType":"StructDefinition","scope":22123,"src":"590:86:75","visibility":"public"},{"canonicalName":"DataTypes.Project","id":22053,"members":[{"constant":false,"id":22041,"mutability":"mutable","name":"id","nameLocation":"715:2:75","nodeType":"VariableDeclaration","scope":22053,"src":"707:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22040,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22043,"mutability":"mutable","name":"metadataURI","nameLocation":"734:11:75","nodeType":"VariableDeclaration","scope":22053,"src":"727:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22042,"name":"string","nodeType":"ElementaryTypeName","src":"727:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22046,"mutability":"mutable","name":"status","nameLocation":"769:6:75","nodeType":"VariableDeclaration","scope":22053,"src":"755:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"},"typeName":{"id":22045,"nodeType":"UserDefinedTypeName","pathNode":{"id":22044,"name":"ProjectStatus","nameLocations":["755:13:75"],"nodeType":"IdentifierPath","referencedDeclaration":22030,"src":"755:13:75"},"referencedDeclaration":22030,"src":"755:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"visibility":"internal"},{"constant":false,"id":22049,"mutability":"mutable","name":"members","nameLocation":"807:7:75","nodeType":"VariableDeclaration","scope":22053,"src":"785:29:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":22048,"nodeType":"UserDefinedTypeName","pathNode":{"id":22047,"name":"EnumerableSet.UintSet","nameLocations":["785:13:75","799:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"785:21:75"},"referencedDeclaration":19690,"src":"785:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":22052,"mutability":"mutable","name":"tasks","nameLocation":"834:5:75","nodeType":"VariableDeclaration","scope":22053,"src":"824:15:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22050,"name":"uint256","nodeType":"ElementaryTypeName","src":"824:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22051,"nodeType":"ArrayTypeName","src":"824:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"Project","nameLocation":"689:7:75","nodeType":"StructDefinition","scope":22123,"src":"682:164:75","visibility":"public"},{"canonicalName":"DataTypes.ProjectView","id":22063,"members":[{"constant":false,"id":22055,"mutability":"mutable","name":"id","nameLocation":"889:2:75","nodeType":"VariableDeclaration","scope":22063,"src":"881:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22054,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22057,"mutability":"mutable","name":"metadataURI","nameLocation":"908:11:75","nodeType":"VariableDeclaration","scope":22063,"src":"901:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22056,"name":"string","nodeType":"ElementaryTypeName","src":"901:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22060,"mutability":"mutable","name":"status","nameLocation":"943:6:75","nodeType":"VariableDeclaration","scope":22063,"src":"929:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"},"typeName":{"id":22059,"nodeType":"UserDefinedTypeName","pathNode":{"id":22058,"name":"ProjectStatus","nameLocations":["929:13:75"],"nodeType":"IdentifierPath","referencedDeclaration":22030,"src":"929:13:75"},"referencedDeclaration":22030,"src":"929:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"visibility":"internal"},{"constant":false,"id":22062,"mutability":"mutable","name":"taskCount","nameLocation":"967:9:75","nodeType":"VariableDeclaration","scope":22063,"src":"959:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22061,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProjectView","nameLocation":"859:11:75","nodeType":"StructDefinition","scope":22123,"src":"852:131:75","visibility":"public"},{"canonicalName":"DataTypes.TaskStatus","id":22068,"members":[{"id":22064,"name":"NOT_STARTED","nameLocation":"1015:11:75","nodeType":"EnumValue","src":"1015:11:75"},{"id":22065,"name":"IN_PROGRESS","nameLocation":"1036:11:75","nodeType":"EnumValue","src":"1036:11:75"},{"id":22066,"name":"COMPLETED","nameLocation":"1057:9:75","nodeType":"EnumValue","src":"1057:9:75"},{"id":22067,"name":"CANCELED","nameLocation":"1076:8:75","nodeType":"EnumValue","src":"1076:8:75"}],"name":"TaskStatus","nameLocation":"994:10:75","nodeType":"EnumDefinition","src":"989:101:75"},{"canonicalName":"DataTypes.CreateTask","id":22074,"members":[{"constant":false,"id":22070,"mutability":"mutable","name":"metadataURI","nameLocation":"1131:11:75","nodeType":"VariableDeclaration","scope":22074,"src":"1124:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22069,"name":"string","nodeType":"ElementaryTypeName","src":"1124:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22073,"mutability":"mutable","name":"skills","nameLocation":"1162:6:75","nodeType":"VariableDeclaration","scope":22074,"src":"1152:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22071,"name":"uint256","nodeType":"ElementaryTypeName","src":"1152:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22072,"nodeType":"ArrayTypeName","src":"1152:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"CreateTask","nameLocation":"1103:10:75","nodeType":"StructDefinition","scope":22123,"src":"1096:79:75","visibility":"public"},{"canonicalName":"DataTypes.UpdateTask","id":22083,"members":[{"constant":false,"id":22076,"mutability":"mutable","name":"metadataURI","nameLocation":"1216:11:75","nodeType":"VariableDeclaration","scope":22083,"src":"1209:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22075,"name":"string","nodeType":"ElementaryTypeName","src":"1209:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22079,"mutability":"mutable","name":"status","nameLocation":"1248:6:75","nodeType":"VariableDeclaration","scope":22083,"src":"1237:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},"typeName":{"id":22078,"nodeType":"UserDefinedTypeName","pathNode":{"id":22077,"name":"TaskStatus","nameLocations":["1237:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":22068,"src":"1237:10:75"},"referencedDeclaration":22068,"src":"1237:10:75","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"visibility":"internal"},{"constant":false,"id":22082,"mutability":"mutable","name":"skills","nameLocation":"1274:6:75","nodeType":"VariableDeclaration","scope":22083,"src":"1264:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22081,"nodeType":"ArrayTypeName","src":"1264:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"UpdateTask","nameLocation":"1188:10:75","nodeType":"StructDefinition","scope":22123,"src":"1181:106:75","visibility":"public"},{"canonicalName":"DataTypes.Task","id":22100,"members":[{"constant":false,"id":22085,"mutability":"mutable","name":"id","nameLocation":"1323:2:75","nodeType":"VariableDeclaration","scope":22100,"src":"1315:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22087,"mutability":"mutable","name":"metadataURI","nameLocation":"1342:11:75","nodeType":"VariableDeclaration","scope":22100,"src":"1335:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22086,"name":"string","nodeType":"ElementaryTypeName","src":"1335:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22090,"mutability":"mutable","name":"status","nameLocation":"1374:6:75","nodeType":"VariableDeclaration","scope":22100,"src":"1363:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},"typeName":{"id":22089,"nodeType":"UserDefinedTypeName","pathNode":{"id":22088,"name":"TaskStatus","nameLocations":["1363:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":22068,"src":"1363:10:75"},"referencedDeclaration":22068,"src":"1363:10:75","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"visibility":"internal"},{"constant":false,"id":22093,"mutability":"mutable","name":"skills","nameLocation":"1400:6:75","nodeType":"VariableDeclaration","scope":22100,"src":"1390:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22091,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22092,"nodeType":"ArrayTypeName","src":"1390:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":22096,"mutability":"mutable","name":"members","nameLocation":"1438:7:75","nodeType":"VariableDeclaration","scope":22100,"src":"1416:29:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":22095,"nodeType":"UserDefinedTypeName","pathNode":{"id":22094,"name":"EnumerableSet.UintSet","nameLocations":["1416:13:75","1430:7:75"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"1416:21:75"},"referencedDeclaration":19690,"src":"1416:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":22099,"mutability":"mutable","name":"loggedTime","nameLocation":"1483:10:75","nodeType":"VariableDeclaration","scope":22100,"src":"1455:38:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"},"typeName":{"id":22098,"nodeType":"UserDefinedTypeName","pathNode":{"id":22097,"name":"EnumerableMap.UintToUintMap","nameLocations":["1455:13:75","1469:13:75"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"1455:27:75"},"referencedDeclaration":18331,"src":"1455:27:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}},"visibility":"internal"}],"name":"Task","nameLocation":"1300:4:75","nodeType":"StructDefinition","scope":22123,"src":"1293:207:75","visibility":"public"},{"canonicalName":"DataTypes.TaskView","id":22111,"members":[{"constant":false,"id":22102,"mutability":"mutable","name":"id","nameLocation":"1540:2:75","nodeType":"VariableDeclaration","scope":22111,"src":"1532:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1532:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22104,"mutability":"mutable","name":"metadataURI","nameLocation":"1559:11:75","nodeType":"VariableDeclaration","scope":22111,"src":"1552:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22103,"name":"string","nodeType":"ElementaryTypeName","src":"1552:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22107,"mutability":"mutable","name":"status","nameLocation":"1591:6:75","nodeType":"VariableDeclaration","scope":22111,"src":"1580:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},"typeName":{"id":22106,"nodeType":"UserDefinedTypeName","pathNode":{"id":22105,"name":"TaskStatus","nameLocations":["1580:10:75"],"nodeType":"IdentifierPath","referencedDeclaration":22068,"src":"1580:10:75"},"referencedDeclaration":22068,"src":"1580:10:75","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"visibility":"internal"},{"constant":false,"id":22110,"mutability":"mutable","name":"skills","nameLocation":"1617:6:75","nodeType":"VariableDeclaration","scope":22111,"src":"1607:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22108,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22109,"nodeType":"ArrayTypeName","src":"1607:9:75","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"TaskView","nameLocation":"1513:8:75","nodeType":"StructDefinition","scope":22123,"src":"1506:124:75","visibility":"public"},{"canonicalName":"DataTypes.CreateSkill","id":22114,"members":[{"constant":false,"id":22113,"mutability":"mutable","name":"metadataURI","nameLocation":"1672:11:75","nodeType":"VariableDeclaration","scope":22114,"src":"1665:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22112,"name":"string","nodeType":"ElementaryTypeName","src":"1665:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"CreateSkill","nameLocation":"1643:11:75","nodeType":"StructDefinition","scope":22123,"src":"1636:54:75","visibility":"public"},{"canonicalName":"DataTypes.UpdateSkill","id":22117,"members":[{"constant":false,"id":22116,"mutability":"mutable","name":"metadataURI","nameLocation":"1732:11:75","nodeType":"VariableDeclaration","scope":22117,"src":"1725:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22115,"name":"string","nodeType":"ElementaryTypeName","src":"1725:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"UpdateSkill","nameLocation":"1703:11:75","nodeType":"StructDefinition","scope":22123,"src":"1696:54:75","visibility":"public"},{"canonicalName":"DataTypes.SkillView","id":22122,"members":[{"constant":false,"id":22119,"mutability":"mutable","name":"id","nameLocation":"1791:2:75","nodeType":"VariableDeclaration","scope":22122,"src":"1783:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22118,"name":"uint256","nodeType":"ElementaryTypeName","src":"1783:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22121,"mutability":"mutable","name":"metadataURI","nameLocation":"1810:11:75","nodeType":"VariableDeclaration","scope":22122,"src":"1803:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":22120,"name":"string","nodeType":"ElementaryTypeName","src":"1803:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"SkillView","nameLocation":"1763:9:75","nodeType":"StructDefinition","scope":22123,"src":"1756:72:75","visibility":"public"}],"scope":22124,"src":"190:1640:75","usedErrors":[]}],"src":"32:1799:75"},"id":75},"contracts/common/libraries/Errors.sol":{"ast":{"absolutePath":"contracts/common/libraries/Errors.sol","exportedSymbols":{"Errors":[22162]},"id":22163,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22125,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:76"},{"abstract":false,"baseContracts":[],"canonicalName":"Errors","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":22162,"linearizedBaseContracts":[22162],"name":"Errors","nameLocation":"65:6:76","nodeType":"ContractDefinition","nodes":[{"errorSelector":"6eefed20","id":22127,"name":"InvalidContract","nameLocation":"84:15:76","nodeType":"ErrorDefinition","parameters":{"id":22126,"nodeType":"ParameterList","parameters":[],"src":"99:2:76"},"src":"78:24:76"},{"errorSelector":"4e23d035","id":22129,"name":"IndexOutOfBounds","nameLocation":"113:16:76","nodeType":"ErrorDefinition","parameters":{"id":22128,"nodeType":"ParameterList","parameters":[],"src":"129:2:76"},"src":"107:25:76"},{"errorSelector":"48be0eb3","id":22131,"name":"InitParamsInvalid","nameLocation":"143:17:76","nodeType":"ErrorDefinition","parameters":{"id":22130,"nodeType":"ParameterList","parameters":[],"src":"160:2:76"},"src":"137:26:76"},{"errorSelector":"9de97418","id":22133,"name":"NotHub","nameLocation":"174:6:76","nodeType":"ErrorDefinition","parameters":{"id":22132,"nodeType":"ParameterList","parameters":[],"src":"180:2:76"},"src":"168:15:76"},{"errorSelector":"b56f932c","id":22135,"name":"NotGovernance","nameLocation":"194:13:76","nodeType":"ErrorDefinition","parameters":{"id":22134,"nodeType":"ParameterList","parameters":[],"src":"207:2:76"},"src":"188:22:76"},{"errorSelector":"584a7938","id":22137,"name":"NotWhitelisted","nameLocation":"221:14:76","nodeType":"ErrorDefinition","parameters":{"id":22136,"nodeType":"ParameterList","parameters":[],"src":"235:2:76"},"src":"215:23:76"},{"errorSelector":"f194fae5","id":22139,"name":"NotProfileOwner","nameLocation":"249:15:76","nodeType":"ErrorDefinition","parameters":{"id":22138,"nodeType":"ParameterList","parameters":[],"src":"264:2:76"},"src":"243:24:76"},{"errorSelector":"aba47339","id":22141,"name":"NotRegistered","nameLocation":"278:13:76","nodeType":"ErrorDefinition","parameters":{"id":22140,"nodeType":"ParameterList","parameters":[],"src":"291:2:76"},"src":"272:22:76"},{"errorSelector":"cc802764","id":22143,"name":"CallerNotOrganization","nameLocation":"305:21:76","nodeType":"ErrorDefinition","parameters":{"id":22142,"nodeType":"ParameterList","parameters":[],"src":"326:2:76"},"src":"299:30:76"},{"errorSelector":"3a81d6fc","id":22145,"name":"AlreadyRegistered","nameLocation":"340:17:76","nodeType":"ErrorDefinition","parameters":{"id":22144,"nodeType":"ParameterList","parameters":[],"src":"357:2:76"},"src":"334:26:76"},{"errorSelector":"810074be","id":22147,"name":"AlreadyMember","nameLocation":"371:13:76","nodeType":"ErrorDefinition","parameters":{"id":22146,"nodeType":"ParameterList","parameters":[],"src":"384:2:76"},"src":"365:22:76"},{"errorSelector":"291fc442","id":22149,"name":"NotMember","nameLocation":"398:9:76","nodeType":"ErrorDefinition","parameters":{"id":22148,"nodeType":"ParameterList","parameters":[],"src":"407:2:76"},"src":"392:18:76"},{"errorSelector":"71460961","id":22151,"name":"NotPendingMember","nameLocation":"421:16:76","nodeType":"ErrorDefinition","parameters":{"id":22150,"nodeType":"ParameterList","parameters":[],"src":"437:2:76"},"src":"415:25:76"},{"errorSelector":"a4fd7c6b","id":22153,"name":"ExceededLoggableTime","nameLocation":"451:20:76","nodeType":"ErrorDefinition","parameters":{"id":22152,"nodeType":"ParameterList","parameters":[],"src":"471:2:76"},"src":"445:29:76"},{"errorSelector":"01f4bca5","id":22155,"name":"SkillNotFound","nameLocation":"485:13:76","nodeType":"ErrorDefinition","parameters":{"id":22154,"nodeType":"ParameterList","parameters":[],"src":"498:2:76"},"src":"479:22:76"},{"errorSelector":"5fd76e04","id":22157,"name":"NotCompleted","nameLocation":"512:12:76","nodeType":"ErrorDefinition","parameters":{"id":22156,"nodeType":"ParameterList","parameters":[],"src":"524:2:76"},"src":"506:21:76"},{"errorSelector":"195332a5","id":22159,"name":"AlreadyCompleted","nameLocation":"538:16:76","nodeType":"ErrorDefinition","parameters":{"id":22158,"nodeType":"ParameterList","parameters":[],"src":"554:2:76"},"src":"532:25:76"},{"errorSelector":"6507689f","id":22161,"name":"AlreadyWithdrawn","nameLocation":"568:16:76","nodeType":"ErrorDefinition","parameters":{"id":22160,"nodeType":"ParameterList","parameters":[],"src":"584:2:76"},"src":"562:25:76"}],"scope":22163,"src":"57:532:76","usedErrors":[22127,22129,22131,22133,22135,22137,22139,22141,22143,22145,22147,22149,22151,22153,22155,22157,22159,22161]}],"src":"32:558:76"},"id":76},"contracts/common/libraries/Events.sol":{"ast":{"absolutePath":"contracts/common/libraries/Events.sol","exportedSymbols":{"Events":[22299]},"id":22300,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22164,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:77"},{"abstract":false,"baseContracts":[],"canonicalName":"Events","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":22299,"linearizedBaseContracts":[22299],"name":"Events","nameLocation":"65:6:77","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"9f150021d8fd04eb219a39e3019273bddf99a9a2e434dd2aa8132e32ea9244b0","id":22170,"name":"ProfileCreated","nameLocation":"84:14:77","nodeType":"EventDefinition","parameters":{"id":22169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22166,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"115:9:77","nodeType":"VariableDeclaration","scope":22170,"src":"99:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22165,"name":"uint256","nodeType":"ElementaryTypeName","src":"99:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22168,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"142:5:77","nodeType":"VariableDeclaration","scope":22170,"src":"126:21:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22167,"name":"address","nodeType":"ElementaryTypeName","src":"126:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"98:50:77"},"src":"78:71:77"},{"anonymous":false,"eventSelector":"71d67da8a79dc210dc79fd6a8fdfdff23836aca4f7cc199c8b9133efd7fd2f8e","id":22178,"name":"EnergyGiven","nameLocation":"160:11:77","nodeType":"EventDefinition","parameters":{"id":22177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22172,"indexed":true,"mutability":"mutable","name":"fromProfileId","nameLocation":"188:13:77","nodeType":"VariableDeclaration","scope":22178,"src":"172:29:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22171,"name":"uint256","nodeType":"ElementaryTypeName","src":"172:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22174,"indexed":true,"mutability":"mutable","name":"toProfileId","nameLocation":"219:11:77","nodeType":"VariableDeclaration","scope":22178,"src":"203:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22173,"name":"uint256","nodeType":"ElementaryTypeName","src":"203:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22176,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"240:6:77","nodeType":"VariableDeclaration","scope":22178,"src":"232:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22175,"name":"uint256","nodeType":"ElementaryTypeName","src":"232:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"171:76:77"},"src":"154:94:77"},{"anonymous":false,"eventSelector":"49a87a0e6655ec27b4a9d6753fe60d0250be8ab38b0e960432b1e53ec3558f5b","id":22186,"name":"EnergyRemoved","nameLocation":"259:13:77","nodeType":"EventDefinition","parameters":{"id":22185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22180,"indexed":true,"mutability":"mutable","name":"fromProfileId","nameLocation":"289:13:77","nodeType":"VariableDeclaration","scope":22186,"src":"273:29:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22179,"name":"uint256","nodeType":"ElementaryTypeName","src":"273:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22182,"indexed":true,"mutability":"mutable","name":"toProfileId","nameLocation":"320:11:77","nodeType":"VariableDeclaration","scope":22186,"src":"304:27:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22181,"name":"uint256","nodeType":"ElementaryTypeName","src":"304:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22184,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"341:6:77","nodeType":"VariableDeclaration","scope":22186,"src":"333:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22183,"name":"uint256","nodeType":"ElementaryTypeName","src":"333:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"272:76:77"},"src":"253:96:77"},{"anonymous":false,"eventSelector":"2178e9c576507a4c15d3deab489af3f699a3dedbff9a7ef27c43a017027710e5","id":22190,"name":"OrganizationRegistered","nameLocation":"360:22:77","nodeType":"EventDefinition","parameters":{"id":22189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22188,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"399:12:77","nodeType":"VariableDeclaration","scope":22190,"src":"383:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22187,"name":"address","nodeType":"ElementaryTypeName","src":"383:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"382:30:77"},"src":"354:59:77"},{"anonymous":false,"eventSelector":"2915d2d906edf65600a39d4eb3ea934d8baff7fddb8eea64b2f2a12c361dbeb0","id":22196,"name":"OrganizationJoined","nameLocation":"424:18:77","nodeType":"EventDefinition","parameters":{"id":22195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22192,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"459:12:77","nodeType":"VariableDeclaration","scope":22196,"src":"443:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22191,"name":"address","nodeType":"ElementaryTypeName","src":"443:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22194,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"489:9:77","nodeType":"VariableDeclaration","scope":22196,"src":"473:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22193,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"442:57:77"},"src":"418:82:77"},{"anonymous":false,"eventSelector":"475d0ee72b70b83c26b41bbb4096ec07e54a91f28f853454d471c748b9606c36","id":22202,"name":"OrganizationLeft","nameLocation":"511:16:77","nodeType":"EventDefinition","parameters":{"id":22201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22198,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"544:12:77","nodeType":"VariableDeclaration","scope":22202,"src":"528:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22197,"name":"address","nodeType":"ElementaryTypeName","src":"528:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22200,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"574:9:77","nodeType":"VariableDeclaration","scope":22202,"src":"558:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22199,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"527:57:77"},"src":"505:80:77"},{"anonymous":false,"eventSelector":"fd925958b6ac7f4827324762864f38411a50c60c4a503761d9b6b96a16ab1a13","id":22208,"name":"PendingMemberApproved","nameLocation":"596:21:77","nodeType":"EventDefinition","parameters":{"id":22207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22204,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"634:12:77","nodeType":"VariableDeclaration","scope":22208,"src":"618:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22203,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22206,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"664:9:77","nodeType":"VariableDeclaration","scope":22208,"src":"648:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22205,"name":"uint256","nodeType":"ElementaryTypeName","src":"648:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"617:57:77"},"src":"590:85:77"},{"anonymous":false,"eventSelector":"66143dd708399cdc1a0caff468a9f98669777affcf1c8baa850011d0fdb7e501","id":22214,"name":"PendingMemberRejected","nameLocation":"686:21:77","nodeType":"EventDefinition","parameters":{"id":22213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22210,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"724:12:77","nodeType":"VariableDeclaration","scope":22214,"src":"708:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22209,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22212,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"754:9:77","nodeType":"VariableDeclaration","scope":22214,"src":"738:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22211,"name":"uint256","nodeType":"ElementaryTypeName","src":"738:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"707:57:77"},"src":"680:85:77"},{"anonymous":false,"eventSelector":"20bfd29f3d906f96fc35742fac45a554b19cbd4e21f8c4c1d84cb58fdfc32c89","id":22220,"name":"ProjectCreated","nameLocation":"776:14:77","nodeType":"EventDefinition","parameters":{"id":22219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22216,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"807:12:77","nodeType":"VariableDeclaration","scope":22220,"src":"791:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22215,"name":"address","nodeType":"ElementaryTypeName","src":"791:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22218,"indexed":true,"mutability":"mutable","name":"projectId","nameLocation":"837:9:77","nodeType":"VariableDeclaration","scope":22220,"src":"821:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22217,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"790:57:77"},"src":"770:78:77"},{"anonymous":false,"eventSelector":"c1756fd99ac9a2b1b22b5e701ddb022b897a002144d045b77ac35ce46610fef6","id":22226,"name":"ProjectUpdated","nameLocation":"859:14:77","nodeType":"EventDefinition","parameters":{"id":22225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22222,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"890:12:77","nodeType":"VariableDeclaration","scope":22226,"src":"874:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22221,"name":"address","nodeType":"ElementaryTypeName","src":"874:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22224,"indexed":true,"mutability":"mutable","name":"projectId","nameLocation":"920:9:77","nodeType":"VariableDeclaration","scope":22226,"src":"904:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22223,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"873:57:77"},"src":"853:78:77"},{"anonymous":false,"eventSelector":"b19d43bc2d0d4c9827d7bd1bc5d099f158bb76a4433ffa60f180d0807ac0b066","id":22234,"name":"ProjectMemberAdded","nameLocation":"942:18:77","nodeType":"EventDefinition","parameters":{"id":22233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22228,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"977:12:77","nodeType":"VariableDeclaration","scope":22234,"src":"961:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22227,"name":"address","nodeType":"ElementaryTypeName","src":"961:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22230,"indexed":true,"mutability":"mutable","name":"projectId","nameLocation":"1007:9:77","nodeType":"VariableDeclaration","scope":22234,"src":"991:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22229,"name":"uint256","nodeType":"ElementaryTypeName","src":"991:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22232,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1034:9:77","nodeType":"VariableDeclaration","scope":22234,"src":"1018:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22231,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"960:84:77"},"src":"936:109:77"},{"anonymous":false,"eventSelector":"d146d896a0849059091b2c287efec9c8dc93ac62d6e694ef347ffa5a4c3f602f","id":22242,"name":"ProjectMemberRemoved","nameLocation":"1056:20:77","nodeType":"EventDefinition","parameters":{"id":22241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22236,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1093:12:77","nodeType":"VariableDeclaration","scope":22242,"src":"1077:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22235,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22238,"indexed":true,"mutability":"mutable","name":"projectId","nameLocation":"1123:9:77","nodeType":"VariableDeclaration","scope":22242,"src":"1107:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1107:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22240,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1150:9:77","nodeType":"VariableDeclaration","scope":22242,"src":"1134:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1076:84:77"},"src":"1050:111:77"},{"anonymous":false,"eventSelector":"68dac2ef7ff122a4dd4f78b2ef3cf6512e8079afe1bf2190c1c0ba71496825fa","id":22250,"name":"TaskCreated","nameLocation":"1172:11:77","nodeType":"EventDefinition","parameters":{"id":22249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22244,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1200:12:77","nodeType":"VariableDeclaration","scope":22250,"src":"1184:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22243,"name":"address","nodeType":"ElementaryTypeName","src":"1184:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22246,"indexed":true,"mutability":"mutable","name":"projectId","nameLocation":"1230:9:77","nodeType":"VariableDeclaration","scope":22250,"src":"1214:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1214:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22248,"indexed":true,"mutability":"mutable","name":"taskId","nameLocation":"1257:6:77","nodeType":"VariableDeclaration","scope":22250,"src":"1241:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22247,"name":"uint256","nodeType":"ElementaryTypeName","src":"1241:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1183:81:77"},"src":"1166:99:77"},{"anonymous":false,"eventSelector":"dd45ee3ab47561676021bcd5e8462ddd1f17b96c086186a3de32fe7b20c50d70","id":22256,"name":"TaskUpdated","nameLocation":"1276:11:77","nodeType":"EventDefinition","parameters":{"id":22255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22252,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1304:12:77","nodeType":"VariableDeclaration","scope":22256,"src":"1288:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22251,"name":"address","nodeType":"ElementaryTypeName","src":"1288:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22254,"indexed":true,"mutability":"mutable","name":"taskId","nameLocation":"1334:6:77","nodeType":"VariableDeclaration","scope":22256,"src":"1318:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22253,"name":"uint256","nodeType":"ElementaryTypeName","src":"1318:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1287:54:77"},"src":"1270:72:77"},{"anonymous":false,"eventSelector":"c34c0f5b92b25cb7f016cf70c271757c6c1d7e5e704874bb6f44199a9aced177","id":22264,"name":"TaskMemberAdded","nameLocation":"1353:15:77","nodeType":"EventDefinition","parameters":{"id":22263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22258,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1385:12:77","nodeType":"VariableDeclaration","scope":22264,"src":"1369:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22257,"name":"address","nodeType":"ElementaryTypeName","src":"1369:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22260,"indexed":true,"mutability":"mutable","name":"taskId","nameLocation":"1415:6:77","nodeType":"VariableDeclaration","scope":22264,"src":"1399:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22262,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1439:9:77","nodeType":"VariableDeclaration","scope":22264,"src":"1423:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22261,"name":"uint256","nodeType":"ElementaryTypeName","src":"1423:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1368:81:77"},"src":"1347:103:77"},{"anonymous":false,"eventSelector":"4c2ea744845c67b745989f4f03c2e6a7ee2ebbaca9ab879014638c47324ae172","id":22272,"name":"TaskMemberRemoved","nameLocation":"1461:17:77","nodeType":"EventDefinition","parameters":{"id":22271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22266,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1495:12:77","nodeType":"VariableDeclaration","scope":22272,"src":"1479:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22265,"name":"address","nodeType":"ElementaryTypeName","src":"1479:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22268,"indexed":true,"mutability":"mutable","name":"taskId","nameLocation":"1525:6:77","nodeType":"VariableDeclaration","scope":22272,"src":"1509:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1509:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22270,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1549:9:77","nodeType":"VariableDeclaration","scope":22272,"src":"1533:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1533:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1478:81:77"},"src":"1455:105:77"},{"anonymous":false,"eventSelector":"6eb8a62f67e4ea664b22930fed1d0bd4c2adc51f8e334396238b9c513d066caf","id":22278,"name":"TimeLogged","nameLocation":"1571:10:77","nodeType":"EventDefinition","parameters":{"id":22277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22274,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1598:9:77","nodeType":"VariableDeclaration","scope":22278,"src":"1582:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22273,"name":"uint256","nodeType":"ElementaryTypeName","src":"1582:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22276,"indexed":false,"mutability":"mutable","name":"time","nameLocation":"1617:4:77","nodeType":"VariableDeclaration","scope":22278,"src":"1609:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22275,"name":"uint256","nodeType":"ElementaryTypeName","src":"1609:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1581:41:77"},"src":"1565:58:77"},{"anonymous":false,"eventSelector":"866b27cc904c4c5a032d369444d532a0dda150b00640dd3f77db68e2a0c378f4","id":22286,"name":"ExperienceWithdrawn","nameLocation":"1634:19:77","nodeType":"EventDefinition","parameters":{"id":22285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22280,"indexed":true,"mutability":"mutable","name":"organization","nameLocation":"1670:12:77","nodeType":"VariableDeclaration","scope":22286,"src":"1654:28:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22279,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22282,"indexed":true,"mutability":"mutable","name":"taskId","nameLocation":"1700:6:77","nodeType":"VariableDeclaration","scope":22286,"src":"1684:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22281,"name":"uint256","nodeType":"ElementaryTypeName","src":"1684:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22284,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1724:9:77","nodeType":"VariableDeclaration","scope":22286,"src":"1708:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22283,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1653:81:77"},"src":"1628:107:77"},{"anonymous":false,"eventSelector":"22b345891f7ed770623196d690a94cfb1906bda0a1a7510e8526979c4792bc74","id":22290,"name":"SkillCreated","nameLocation":"1746:12:77","nodeType":"EventDefinition","parameters":{"id":22289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22288,"indexed":true,"mutability":"mutable","name":"skillId","nameLocation":"1775:7:77","nodeType":"VariableDeclaration","scope":22290,"src":"1759:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22287,"name":"uint256","nodeType":"ElementaryTypeName","src":"1759:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1758:25:77"},"src":"1740:44:77"},{"anonymous":false,"eventSelector":"65db4d653a1dec19354793622d6b806e92c72ac3f02709ab594eaf33c3a96866","id":22298,"name":"CertificateIssued","nameLocation":"1795:17:77","nodeType":"EventDefinition","parameters":{"id":22297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22292,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"1821:4:77","nodeType":"VariableDeclaration","scope":22298,"src":"1813:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22291,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22294,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1843:9:77","nodeType":"VariableDeclaration","scope":22298,"src":"1827:25:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22293,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22296,"indexed":true,"mutability":"mutable","name":"certificateId","nameLocation":"1870:13:77","nodeType":"VariableDeclaration","scope":22298,"src":"1854:29:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:72:77"},"src":"1789:96:77"}],"scope":22300,"src":"57:1830:77","usedErrors":[]}],"src":"32:1856:77"},"id":77},"contracts/governance/My3SecGovernance.sol":{"ast":{"absolutePath":"contracts/governance/My3SecGovernance.sol","exportedSymbols":{"AccessControl":[5454],"Address":[12931],"Checkpoints":[14302],"Constants":[22010],"Context":[14324],"DoubleEndedQueue":[18085],"ECDSA":[15148],"EIP712":[15302],"ERC165":[15326],"Governor":[6948],"GovernorCountingSimple":[8385],"GovernorSettings":[8563],"GovernorTimelockControl":[8940],"GovernorVotes":[8982],"GovernorVotesQuorumFraction":[9185],"IAccessControl":[5527],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"IGovernor":[7245],"IGovernorTimelock":[9226],"IVotes":[9304],"Math":[16203],"My3SecGovernance":[22539],"SafeCast":[17744],"Strings":[14573],"TimelockController":[8159],"Timers":[14787]},"id":22540,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22301,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:78"},{"absolutePath":"@openzeppelin/contracts/governance/Governor.sol","file":"@openzeppelin/contracts/governance/Governor.sol","id":22302,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":6949,"src":"57:57:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol","id":22303,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":8564,"src":"115:76:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol","id":22304,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":8386,"src":"192:82:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol","id":22305,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":8983,"src":"275:73:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol","id":22306,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":9186,"src":"349:87:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","file":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol","id":22307,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":8941,"src":"437:83:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Constants.sol","file":"../common/libraries/Constants.sol","id":22308,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22540,"sourceUnit":22011,"src":"522:43:78","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22309,"name":"Governor","nameLocations":["600:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"600:8:78"},"id":22310,"nodeType":"InheritanceSpecifier","src":"600:8:78"},{"baseName":{"id":22311,"name":"GovernorSettings","nameLocations":["614:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":8563,"src":"614:16:78"},"id":22312,"nodeType":"InheritanceSpecifier","src":"614:16:78"},{"baseName":{"id":22313,"name":"GovernorCountingSimple","nameLocations":["636:22:78"],"nodeType":"IdentifierPath","referencedDeclaration":8385,"src":"636:22:78"},"id":22314,"nodeType":"InheritanceSpecifier","src":"636:22:78"},{"baseName":{"id":22315,"name":"GovernorVotes","nameLocations":["664:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":8982,"src":"664:13:78"},"id":22316,"nodeType":"InheritanceSpecifier","src":"664:13:78"},{"baseName":{"id":22317,"name":"GovernorVotesQuorumFraction","nameLocations":["683:27:78"],"nodeType":"IdentifierPath","referencedDeclaration":9185,"src":"683:27:78"},"id":22318,"nodeType":"InheritanceSpecifier","src":"683:27:78"},{"baseName":{"id":22319,"name":"GovernorTimelockControl","nameLocations":["716:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"716:23:78"},"id":22320,"nodeType":"InheritanceSpecifier","src":"716:23:78"}],"canonicalName":"My3SecGovernance","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":22539,"linearizedBaseContracts":[22539,8940,9185,8982,8385,8563,6948,9345,12064,9226,7245,15302,15326,15338,14324],"name":"My3SecGovernance","nameLocation":"576:16:78","nodeType":"ContractDefinition","nodes":[{"body":{"id":22350,"nodeType":"Block","src":"1114:2:78","statements":[]},"id":22351,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d793353656320476f7665726e616e6365","id":22329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"842:19:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_13f4b36183b8b83872a53e3d9a2a75ca80893ab43feca9cbcfd7a686cdc1d022","typeString":"literal_string \"My3Sec Governance\""},"value":"My3Sec Governance"}],"id":22330,"kind":"baseConstructorSpecifier","modifierName":{"id":22328,"name":"Governor","nameLocations":["833:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"833:8:78"},"nodeType":"ModifierInvocation","src":"833:29:78"},{"arguments":[{"expression":{"id":22332,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"888:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":22333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"898:16:78","memberName":"DAO_VOTING_DELAY","nodeType":"MemberAccess","referencedDeclaration":21997,"src":"888:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22334,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"916:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":22335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"926:17:78","memberName":"DAO_VOTING_PERIOD","nodeType":"MemberAccess","referencedDeclaration":22000,"src":"916:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22336,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"945:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":22337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"955:22:78","memberName":"DAO_PROPOSAL_THRESHOLD","nodeType":"MemberAccess","referencedDeclaration":22003,"src":"945:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22338,"kind":"baseConstructorSpecifier","modifierName":{"id":22331,"name":"GovernorSettings","nameLocations":["871:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":8563,"src":"871:16:78"},"nodeType":"ModifierInvocation","src":"871:107:78"},{"arguments":[{"id":22340,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22323,"src":"1001:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}}],"id":22341,"kind":"baseConstructorSpecifier","modifierName":{"id":22339,"name":"GovernorVotes","nameLocations":["987:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":8982,"src":"987:13:78"},"nodeType":"ModifierInvocation","src":"987:21:78"},{"arguments":[{"expression":{"id":22343,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"1045:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":22344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1055:10:78","memberName":"DAO_QUORUM","nodeType":"MemberAccess","referencedDeclaration":22006,"src":"1045:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22345,"kind":"baseConstructorSpecifier","modifierName":{"id":22342,"name":"GovernorVotesQuorumFraction","nameLocations":["1017:27:78"],"nodeType":"IdentifierPath","referencedDeclaration":9185,"src":"1017:27:78"},"nodeType":"ModifierInvocation","src":"1017:49:78"},{"arguments":[{"id":22347,"name":"_timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22326,"src":"1099:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}}],"id":22348,"kind":"baseConstructorSpecifier","modifierName":{"id":22346,"name":"GovernorTimelockControl","nameLocations":["1075:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"1075:23:78"},"nodeType":"ModifierInvocation","src":"1075:34:78"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22323,"mutability":"mutable","name":"_token","nameLocation":"774:6:78","nodeType":"VariableDeclaration","scope":22351,"src":"767:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"},"typeName":{"id":22322,"nodeType":"UserDefinedTypeName","pathNode":{"id":22321,"name":"IVotes","nameLocations":["767:6:78"],"nodeType":"IdentifierPath","referencedDeclaration":9304,"src":"767:6:78"},"referencedDeclaration":9304,"src":"767:6:78","typeDescriptions":{"typeIdentifier":"t_contract$_IVotes_$9304","typeString":"contract IVotes"}},"visibility":"internal"},{"constant":false,"id":22326,"mutability":"mutable","name":"_timelock","nameLocation":"809:9:78","nodeType":"VariableDeclaration","scope":22351,"src":"790:28:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"},"typeName":{"id":22325,"nodeType":"UserDefinedTypeName","pathNode":{"id":22324,"name":"TimelockController","nameLocations":["790:18:78"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"790:18:78"},"referencedDeclaration":8159,"src":"790:18:78","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockController_$8159","typeString":"contract TimelockController"}},"visibility":"internal"}],"src":"757:67:78"},"returnParameters":{"id":22349,"nodeType":"ParameterList","parameters":[],"src":"1114:0:78"},"scope":22539,"src":"746:370:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7092,8448],"body":{"id":22363,"nodeType":"Block","src":"1281:43:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22359,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1298:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1304:11:78","memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":8448,"src":"1298:17:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":22361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22358,"id":22362,"nodeType":"Return","src":"1291:26:78"}]},"functionSelector":"3932abb1","id":22364,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nameLocation":"1199:11:78","nodeType":"FunctionDefinition","overrides":{"id":22355,"nodeType":"OverrideSpecifier","overrides":[{"id":22353,"name":"IGovernor","nameLocations":["1234:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"1234:9:78"},{"id":22354,"name":"GovernorSettings","nameLocations":["1245:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":8563,"src":"1245:16:78"}],"src":"1225:37:78"},"parameters":{"id":22352,"nodeType":"ParameterList","parameters":[],"src":"1210:2:78"},"returnParameters":{"id":22358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22364,"src":"1272:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22356,"name":"uint256","nodeType":"ElementaryTypeName","src":"1272:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1271:9:78"},"scope":22539,"src":"1190:134:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[7098,8458],"body":{"id":22376,"nodeType":"Block","src":"1422:44:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22372,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1439:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1445:12:78","memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":8458,"src":"1439:18:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":22374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1439:20:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22371,"id":22375,"nodeType":"Return","src":"1432:27:78"}]},"functionSelector":"02a251a3","id":22377,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nameLocation":"1339:12:78","nodeType":"FunctionDefinition","overrides":{"id":22368,"nodeType":"OverrideSpecifier","overrides":[{"id":22366,"name":"IGovernor","nameLocations":["1375:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"1375:9:78"},{"id":22367,"name":"GovernorSettings","nameLocations":["1386:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":8563,"src":"1386:16:78"}],"src":"1366:37:78"},"parameters":{"id":22365,"nodeType":"ParameterList","parameters":[],"src":"1351:2:78"},"returnParameters":{"id":22371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22377,"src":"1413:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22369,"name":"uint256","nodeType":"ElementaryTypeName","src":"1413:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1412:9:78"},"scope":22539,"src":"1330:136:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[7106,9114],"body":{"id":22392,"nodeType":"Block","src":"1602:49:78","statements":[{"expression":{"arguments":[{"id":22389,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22379,"src":"1632:11:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22387,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1619:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1625:6:78","memberName":"quorum","nodeType":"MemberAccess","referencedDeclaration":9114,"src":"1619:12:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":22390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22386,"id":22391,"nodeType":"Return","src":"1612:32:78"}]},"functionSelector":"f8ce560a","id":22393,"implemented":true,"kind":"function","modifiers":[],"name":"quorum","nameLocation":"1481:6:78","nodeType":"FunctionDefinition","overrides":{"id":22383,"nodeType":"OverrideSpecifier","overrides":[{"id":22381,"name":"IGovernor","nameLocations":["1544:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"1544:9:78"},{"id":22382,"name":"GovernorVotesQuorumFraction","nameLocations":["1555:27:78"],"nodeType":"IdentifierPath","referencedDeclaration":9185,"src":"1555:27:78"}],"src":"1535:48:78"},"parameters":{"id":22380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22379,"mutability":"mutable","name":"blockNumber","nameLocation":"1505:11:78","nodeType":"VariableDeclaration","scope":22393,"src":"1497:19:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22378,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1487:35:78"},"returnParameters":{"id":22386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22393,"src":"1593:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22384,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1592:9:78"},"scope":22539,"src":"1472:179:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5966,8690],"body":{"id":22409,"nodeType":"Block","src":"1772:47:78","statements":[{"expression":{"arguments":[{"id":22406,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22395,"src":"1801:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22404,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1789:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1795:5:78","memberName":"state","nodeType":"MemberAccess","referencedDeclaration":8690,"src":"1789:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6963_$","typeString":"function (uint256) view returns (enum IGovernor.ProposalState)"}},"id":22407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1789:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"functionReturnParameters":22403,"id":22408,"nodeType":"Return","src":"1782:30:78"}]},"functionSelector":"3e4f49e6","id":22410,"implemented":true,"kind":"function","modifiers":[],"name":"state","nameLocation":"1666:5:78","nodeType":"FunctionDefinition","overrides":{"id":22399,"nodeType":"OverrideSpecifier","overrides":[{"id":22397,"name":"Governor","nameLocations":["1713:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"1713:8:78"},{"id":22398,"name":"GovernorTimelockControl","nameLocations":["1723:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"1723:23:78"}],"src":"1704:43:78"},"parameters":{"id":22396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22395,"mutability":"mutable","name":"proposalId","nameLocation":"1680:10:78","nodeType":"VariableDeclaration","scope":22410,"src":"1672:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22394,"name":"uint256","nodeType":"ElementaryTypeName","src":"1672:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1671:20:78"},"returnParameters":{"id":22403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22410,"src":"1757:13:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"},"typeName":{"id":22401,"nodeType":"UserDefinedTypeName","pathNode":{"id":22400,"name":"ProposalState","nameLocations":["1757:13:78"],"nodeType":"IdentifierPath","referencedDeclaration":6963,"src":"1757:13:78"},"referencedDeclaration":6963,"src":"1757:13:78","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$6963","typeString":"enum IGovernor.ProposalState"}},"visibility":"internal"}],"src":"1756:15:78"},"scope":22539,"src":"1657:162:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6206,7155],"body":{"id":22437,"nodeType":"Block","src":"2039:78:78","statements":[{"expression":{"arguments":[{"id":22431,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22413,"src":"2070:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":22432,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22416,"src":"2079:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":22433,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22419,"src":"2087:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":22434,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22421,"src":"2098:11:78","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22429,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2056:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2062:7:78","memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":6206,"src":"2056:13:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,string memory) returns (uint256)"}},"id":22435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2056:54:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22428,"id":22436,"nodeType":"Return","src":"2049:61:78"}]},"functionSelector":"7d5e81e2","id":22438,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nameLocation":"1834:7:78","nodeType":"FunctionDefinition","overrides":{"id":22425,"nodeType":"OverrideSpecifier","overrides":[{"id":22423,"name":"Governor","nameLocations":["2000:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2000:8:78"},{"id":22424,"name":"IGovernor","nameLocations":["2010:9:78"],"nodeType":"IdentifierPath","referencedDeclaration":7245,"src":"2010:9:78"}],"src":"1991:29:78"},"parameters":{"id":22422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22413,"mutability":"mutable","name":"targets","nameLocation":"1868:7:78","nodeType":"VariableDeclaration","scope":22438,"src":"1851:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":22411,"name":"address","nodeType":"ElementaryTypeName","src":"1851:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22412,"nodeType":"ArrayTypeName","src":"1851:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":22416,"mutability":"mutable","name":"values","nameLocation":"1902:6:78","nodeType":"VariableDeclaration","scope":22438,"src":"1885:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1885:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22415,"nodeType":"ArrayTypeName","src":"1885:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":22419,"mutability":"mutable","name":"calldatas","nameLocation":"1933:9:78","nodeType":"VariableDeclaration","scope":22438,"src":"1918:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":22417,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":22418,"nodeType":"ArrayTypeName","src":"1918:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":22421,"mutability":"mutable","name":"description","nameLocation":"1966:11:78","nodeType":"VariableDeclaration","scope":22438,"src":"1952:25:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22420,"name":"string","nodeType":"ElementaryTypeName","src":"1952:6:78","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1841:142:78"},"returnParameters":{"id":22428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22438,"src":"2030:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22426,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2029:9:78"},"scope":22539,"src":"1825:292:78","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6009,8468],"body":{"id":22450,"nodeType":"Block","src":"2219:49:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22446,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2236:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2242:17:78","memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":8468,"src":"2236:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":22448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2236:25:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22445,"id":22449,"nodeType":"Return","src":"2229:32:78"}]},"functionSelector":"b58131b0","id":22451,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nameLocation":"2132:17:78","nodeType":"FunctionDefinition","overrides":{"id":22442,"nodeType":"OverrideSpecifier","overrides":[{"id":22440,"name":"Governor","nameLocations":["2173:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2173:8:78"},{"id":22441,"name":"GovernorSettings","nameLocations":["2183:16:78"],"nodeType":"IdentifierPath","referencedDeclaration":8563,"src":"2183:16:78"}],"src":"2164:36:78"},"parameters":{"id":22439,"nodeType":"ParameterList","parameters":[],"src":"2149:2:78"},"returnParameters":{"id":22445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22451,"src":"2210:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22443,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2209:9:78"},"scope":22539,"src":"2123:145:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6351,8839],"body":{"id":22480,"nodeType":"Block","src":"2513:88:78","statements":[{"expression":{"arguments":[{"id":22473,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22453,"src":"2538:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22474,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22456,"src":"2550:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":22475,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22459,"src":"2559:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":22476,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22462,"src":"2567:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":22477,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22464,"src":"2578:15:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22470,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2523:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2529:8:78","memberName":"_execute","nodeType":"MemberAccess","referencedDeclaration":8839,"src":"2523:14:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}},"id":22478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2523:71:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22479,"nodeType":"ExpressionStatement","src":"2523:71:78"}]},"id":22481,"implemented":true,"kind":"function","modifiers":[],"name":"_execute","nameLocation":"2283:8:78","nodeType":"FunctionDefinition","overrides":{"id":22468,"nodeType":"OverrideSpecifier","overrides":[{"id":22466,"name":"Governor","nameLocations":["2478:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2478:8:78"},{"id":22467,"name":"GovernorTimelockControl","nameLocations":["2488:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"2488:23:78"}],"src":"2469:43:78"},"parameters":{"id":22465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22453,"mutability":"mutable","name":"proposalId","nameLocation":"2309:10:78","nodeType":"VariableDeclaration","scope":22481,"src":"2301:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22452,"name":"uint256","nodeType":"ElementaryTypeName","src":"2301:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22456,"mutability":"mutable","name":"targets","nameLocation":"2346:7:78","nodeType":"VariableDeclaration","scope":22481,"src":"2329:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":22454,"name":"address","nodeType":"ElementaryTypeName","src":"2329:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22455,"nodeType":"ArrayTypeName","src":"2329:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":22459,"mutability":"mutable","name":"values","nameLocation":"2380:6:78","nodeType":"VariableDeclaration","scope":22481,"src":"2363:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22457,"name":"uint256","nodeType":"ElementaryTypeName","src":"2363:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22458,"nodeType":"ArrayTypeName","src":"2363:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":22462,"mutability":"mutable","name":"calldatas","nameLocation":"2411:9:78","nodeType":"VariableDeclaration","scope":22481,"src":"2396:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":22460,"name":"bytes","nodeType":"ElementaryTypeName","src":"2396:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":22461,"nodeType":"ArrayTypeName","src":"2396:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":22464,"mutability":"mutable","name":"descriptionHash","nameLocation":"2438:15:78","nodeType":"VariableDeclaration","scope":22481,"src":"2430:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2430:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2291:168:78"},"returnParameters":{"id":22469,"nodeType":"ParameterList","parameters":[],"src":"2513:0:78"},"scope":22539,"src":"2274:327:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6514,8890],"body":{"id":22508,"nodeType":"Block","src":"2835:82:78","statements":[{"expression":{"arguments":[{"id":22502,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22484,"src":"2866:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":22503,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22487,"src":"2875:6:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":22504,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22490,"src":"2883:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":22505,"name":"descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22492,"src":"2894:15:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22500,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2852:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2858:7:78","memberName":"_cancel","nodeType":"MemberAccess","referencedDeclaration":8890,"src":"2852:13:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) returns (uint256)"}},"id":22506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:58:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22499,"id":22507,"nodeType":"Return","src":"2845:65:78"}]},"id":22509,"implemented":true,"kind":"function","modifiers":[],"name":"_cancel","nameLocation":"2616:7:78","nodeType":"FunctionDefinition","overrides":{"id":22496,"nodeType":"OverrideSpecifier","overrides":[{"id":22494,"name":"Governor","nameLocations":["2782:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2782:8:78"},{"id":22495,"name":"GovernorTimelockControl","nameLocations":["2792:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"2792:23:78"}],"src":"2773:43:78"},"parameters":{"id":22493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22484,"mutability":"mutable","name":"targets","nameLocation":"2650:7:78","nodeType":"VariableDeclaration","scope":22509,"src":"2633:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":22482,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22483,"nodeType":"ArrayTypeName","src":"2633:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":22487,"mutability":"mutable","name":"values","nameLocation":"2684:6:78","nodeType":"VariableDeclaration","scope":22509,"src":"2667:23:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":22485,"name":"uint256","nodeType":"ElementaryTypeName","src":"2667:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22486,"nodeType":"ArrayTypeName","src":"2667:9:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":22490,"mutability":"mutable","name":"calldatas","nameLocation":"2715:9:78","nodeType":"VariableDeclaration","scope":22509,"src":"2700:24:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":22488,"name":"bytes","nodeType":"ElementaryTypeName","src":"2700:5:78","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":22489,"nodeType":"ArrayTypeName","src":"2700:7:78","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":22492,"mutability":"mutable","name":"descriptionHash","nameLocation":"2742:15:78","nodeType":"VariableDeclaration","scope":22509,"src":"2734:23:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2734:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:140:78"},"returnParameters":{"id":22499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22509,"src":"2826:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22497,"name":"uint256","nodeType":"ElementaryTypeName","src":"2826:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2825:9:78"},"scope":22539,"src":"2607:310:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6881,8903],"body":{"id":22521,"nodeType":"Block","src":"3020:41:78","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22517,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3037:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3043:9:78","memberName":"_executor","nodeType":"MemberAccess","referencedDeclaration":8903,"src":"3037:15:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3037:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":22516,"id":22520,"nodeType":"Return","src":"3030:24:78"}]},"id":22522,"implemented":true,"kind":"function","modifiers":[],"name":"_executor","nameLocation":"2932:9:78","nodeType":"FunctionDefinition","overrides":{"id":22513,"nodeType":"OverrideSpecifier","overrides":[{"id":22511,"name":"Governor","nameLocations":["2967:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"2967:8:78"},{"id":22512,"name":"GovernorTimelockControl","nameLocations":["2977:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"2977:23:78"}],"src":"2958:43:78"},"parameters":{"id":22510,"nodeType":"ParameterList","parameters":[],"src":"2941:2:78"},"returnParameters":{"id":22516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22522,"src":"3011:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22514,"name":"address","nodeType":"ElementaryTypeName","src":"3011:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3010:9:78"},"scope":22539,"src":"2923:138:78","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[5827,8623],"body":{"id":22537,"nodeType":"Block","src":"3199:60:78","statements":[{"expression":{"arguments":[{"id":22534,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22524,"src":"3240:11:78","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":22532,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3216:5:78","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecGovernance_$22539_$","typeString":"type(contract super My3SecGovernance)"}},"id":22533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3222:17:78","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":8623,"src":"3216:23:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":22535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:36:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":22531,"id":22536,"nodeType":"Return","src":"3209:43:78"}]},"functionSelector":"01ffc9a7","id":22538,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3076:17:78","nodeType":"FunctionDefinition","overrides":{"id":22528,"nodeType":"OverrideSpecifier","overrides":[{"id":22526,"name":"Governor","nameLocations":["3149:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":6948,"src":"3149:8:78"},{"id":22527,"name":"GovernorTimelockControl","nameLocations":["3159:23:78"],"nodeType":"IdentifierPath","referencedDeclaration":8940,"src":"3159:23:78"}],"src":"3140:43:78"},"parameters":{"id":22525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22524,"mutability":"mutable","name":"interfaceId","nameLocation":"3110:11:78","nodeType":"VariableDeclaration","scope":22538,"src":"3103:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":22523,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3103:6:78","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3093:34:78"},"returnParameters":{"id":22531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22538,"src":"3193:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22529,"name":"bool","nodeType":"ElementaryTypeName","src":"3193:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3192:6:78"},"scope":22539,"src":"3067:192:78","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":22540,"src":"567:2694:78","usedErrors":[17751]}],"src":"32:3230:78"},"id":78},"contracts/governance/My3SecToken.sol":{"ast":{"absolutePath":"contracts/governance/My3SecToken.sol","exportedSymbols":{"Context":[14324],"Counters":[14398],"ECDSA":[15148],"EIP712":[15302],"ERC20":[9932],"ERC20Burnable":[10054],"ERC20Permit":[10949],"ERC20Votes":[10752],"Errors":[22162],"HubControllable":[21056],"IERC20":[10010],"IERC20Metadata":[10777],"IERC20Permit":[10985],"IVotes":[9304],"Math":[16203],"My3SecToken":[22661],"SafeCast":[17744],"Strings":[14573]},"id":22662,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22541,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:79"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":22542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22662,"sourceUnit":9933,"src":"57:55:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":22543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22662,"sourceUnit":10055,"src":"113:74:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol","id":22544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22662,"sourceUnit":10950,"src":"188:78:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol","id":22545,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22662,"sourceUnit":10753,"src":"267:71:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/HubControllable.sol","file":"../common/access/HubControllable.sol","id":22546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22662,"sourceUnit":21057,"src":"340:46:79","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22548,"name":"ERC20","nameLocations":["854:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"854:5:79"},"id":22549,"nodeType":"InheritanceSpecifier","src":"854:5:79"},{"baseName":{"id":22550,"name":"ERC20Burnable","nameLocations":["861:13:79"],"nodeType":"IdentifierPath","referencedDeclaration":10054,"src":"861:13:79"},"id":22551,"nodeType":"InheritanceSpecifier","src":"861:13:79"},{"baseName":{"id":22552,"name":"ERC20Permit","nameLocations":["876:11:79"],"nodeType":"IdentifierPath","referencedDeclaration":10949,"src":"876:11:79"},"id":22553,"nodeType":"InheritanceSpecifier","src":"876:11:79"},{"baseName":{"id":22554,"name":"ERC20Votes","nameLocations":["889:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":10752,"src":"889:10:79"},"id":22555,"nodeType":"InheritanceSpecifier","src":"889:10:79"},{"baseName":{"id":22556,"name":"HubControllable","nameLocations":["901:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":21056,"src":"901:15:79"},"id":22557,"nodeType":"InheritanceSpecifier","src":"901:15:79"}],"canonicalName":"My3SecToken","contractDependencies":[],"contractKind":"contract","documentation":{"id":22547,"nodeType":"StructuredDocumentation","src":"388:441:79","text":" @title My3SecToken contract\n @dev This is the implementation of the ERC20 My3Sec Token.\n The token is initially owned by the deployer address that can mint tokens to create the initial\n distribution. For convenience, an initial supply can be passed in the constructor that will be\n assigned to the deployer.\n The My3Sec rewards system (to be defined) should be added as a minter to distribute rewards to the users."},"fullyImplemented":true,"id":22661,"linearizedBaseContracts":[22661,21056,10752,10949,15302,10985,10054,9932,10777,10010,14324,9304],"name":"My3SecToken","nameLocation":"839:11:79","nodeType":"ContractDefinition","nodes":[{"body":{"id":22586,"nodeType":"Block","src":"1184:68:79","statements":[{"expression":{"arguments":[{"expression":{"id":22576,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1200:3:79","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1204:6:79","memberName":"sender","nodeType":"MemberAccess","src":"1200:10:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22578,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22562,"src":"1212:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":22579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1228:2:79","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22580,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9420,"src":"1234:8:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":22581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:10:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1228:16:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1212:32:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22575,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[22642],"referencedDeclaration":22642,"src":"1194:5:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":22584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1194:51:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22585,"nodeType":"ExpressionStatement","src":"1194:51:79"}]},"documentation":{"id":22558,"nodeType":"StructuredDocumentation","src":"923:108:79","text":" @dev My3Sec Token Contract Constructor.\n @param initialSupply Initial supply of M3S"},"id":22587,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d793353656320546f6b656e","id":22565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1112:14:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_4615d027359ab78b131ea2492a16040a5e128f7e1b34efa781dd6fe7af68ea68","typeString":"literal_string \"My3Sec Token\""},"value":"My3Sec Token"},{"hexValue":"4d3353","id":22566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1128:5:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_349afb6fe980ea00368b0028269d5bade60d6e55489fa198f60a438eb1f65ea1","typeString":"literal_string \"M3S\""},"value":"M3S"}],"id":22567,"kind":"baseConstructorSpecifier","modifierName":{"id":22564,"name":"ERC20","nameLocations":["1106:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"1106:5:79"},"nodeType":"ModifierInvocation","src":"1106:28:79"},{"arguments":[{"hexValue":"4d793353656320546f6b656e","id":22569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1147:14:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_4615d027359ab78b131ea2492a16040a5e128f7e1b34efa781dd6fe7af68ea68","typeString":"literal_string \"My3Sec Token\""},"value":"My3Sec Token"}],"id":22570,"kind":"baseConstructorSpecifier","modifierName":{"id":22568,"name":"ERC20Permit","nameLocations":["1135:11:79"],"nodeType":"IdentifierPath","referencedDeclaration":10949,"src":"1135:11:79"},"nodeType":"ModifierInvocation","src":"1135:27:79"},{"arguments":[{"id":22572,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22560,"src":"1179:3:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":22573,"kind":"baseConstructorSpecifier","modifierName":{"id":22571,"name":"HubControllable","nameLocations":["1163:15:79"],"nodeType":"IdentifierPath","referencedDeclaration":21056,"src":"1163:15:79"},"nodeType":"ModifierInvocation","src":"1163:20:79"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22560,"mutability":"mutable","name":"hub","nameLocation":"1065:3:79","nodeType":"VariableDeclaration","scope":22587,"src":"1057:11:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22559,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22562,"mutability":"mutable","name":"initialSupply","nameLocation":"1086:13:79","nodeType":"VariableDeclaration","scope":22587,"src":"1078:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22561,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1047:58:79"},"returnParameters":{"id":22574,"nodeType":"ParameterList","parameters":[],"src":"1184:0:79"},"scope":22661,"src":"1036:216:79","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22602,"nodeType":"Block","src":"1458:34:79","statements":[{"expression":{"arguments":[{"id":22598,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22590,"src":"1474:2:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22599,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22592,"src":"1478:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22597,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[22642],"referencedDeclaration":22642,"src":"1468:5:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":22600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1468:17:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22601,"nodeType":"ExpressionStatement","src":"1468:17:79"}]},"documentation":{"id":22588,"nodeType":"StructuredDocumentation","src":"1258:138:79","text":" Mint new tokens.\n @param to Address to send the newly minted tokens\n @param amount Amount of tokens to mint"},"functionSelector":"40c10f19","id":22603,"implemented":true,"kind":"function","modifiers":[{"id":22595,"kind":"modifierInvocation","modifierName":{"id":22594,"name":"onlyHub","nameLocations":["1450:7:79"],"nodeType":"IdentifierPath","referencedDeclaration":21033,"src":"1450:7:79"},"nodeType":"ModifierInvocation","src":"1450:7:79"}],"name":"mint","nameLocation":"1410:4:79","nodeType":"FunctionDefinition","parameters":{"id":22593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22590,"mutability":"mutable","name":"to","nameLocation":"1423:2:79","nodeType":"VariableDeclaration","scope":22603,"src":"1415:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22589,"name":"address","nodeType":"ElementaryTypeName","src":"1415:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22592,"mutability":"mutable","name":"amount","nameLocation":"1435:6:79","nodeType":"VariableDeclaration","scope":22603,"src":"1427:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22591,"name":"uint256","nodeType":"ElementaryTypeName","src":"1427:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1414:28:79"},"returnParameters":{"id":22596,"nodeType":"ParameterList","parameters":[],"src":"1458:0:79"},"scope":22661,"src":"1401:91:79","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[9931,10498],"body":{"id":22623,"nodeType":"Block","src":"1674:60:79","statements":[{"expression":{"arguments":[{"id":22618,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22605,"src":"1710:4:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22619,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22607,"src":"1716:2:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22620,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22609,"src":"1720:6:79","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":22615,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1684:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecToken_$22661_$","typeString":"type(contract super My3SecToken)"}},"id":22617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:19:79","memberName":"_afterTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":10498,"src":"1684:25:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:43:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22622,"nodeType":"ExpressionStatement","src":"1684:43:79"}]},"id":22624,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"1575:19:79","nodeType":"FunctionDefinition","overrides":{"id":22613,"nodeType":"OverrideSpecifier","overrides":[{"id":22611,"name":"ERC20","nameLocations":["1655:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"1655:5:79"},{"id":22612,"name":"ERC20Votes","nameLocations":["1662:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":10752,"src":"1662:10:79"}],"src":"1646:27:79"},"parameters":{"id":22610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22605,"mutability":"mutable","name":"from","nameLocation":"1603:4:79","nodeType":"VariableDeclaration","scope":22624,"src":"1595:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22604,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22607,"mutability":"mutable","name":"to","nameLocation":"1617:2:79","nodeType":"VariableDeclaration","scope":22624,"src":"1609:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22606,"name":"address","nodeType":"ElementaryTypeName","src":"1609:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22609,"mutability":"mutable","name":"amount","nameLocation":"1629:6:79","nodeType":"VariableDeclaration","scope":22624,"src":"1621:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22608,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1594:42:79"},"returnParameters":{"id":22614,"nodeType":"ParameterList","parameters":[],"src":"1674:0:79"},"scope":22661,"src":"1566:168:79","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[9749,10445],"body":{"id":22641,"nodeType":"Block","src":"1820:40:79","statements":[{"expression":{"arguments":[{"id":22637,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22626,"src":"1842:2:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22638,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22628,"src":"1846:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22634,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1830:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecToken_$22661_$","typeString":"type(contract super My3SecToken)"}},"id":22636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1836:5:79","memberName":"_mint","nodeType":"MemberAccess","referencedDeclaration":10445,"src":"1830:11:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":22639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1830:23:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22640,"nodeType":"ExpressionStatement","src":"1830:23:79"}]},"id":22642,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"1749:5:79","nodeType":"FunctionDefinition","overrides":{"id":22632,"nodeType":"OverrideSpecifier","overrides":[{"id":22630,"name":"ERC20","nameLocations":["1801:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"1801:5:79"},{"id":22631,"name":"ERC20Votes","nameLocations":["1808:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":10752,"src":"1808:10:79"}],"src":"1792:27:79"},"parameters":{"id":22629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22626,"mutability":"mutable","name":"to","nameLocation":"1763:2:79","nodeType":"VariableDeclaration","scope":22642,"src":"1755:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22625,"name":"address","nodeType":"ElementaryTypeName","src":"1755:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22628,"mutability":"mutable","name":"amount","nameLocation":"1775:6:79","nodeType":"VariableDeclaration","scope":22642,"src":"1767:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22627,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1754:28:79"},"returnParameters":{"id":22633,"nodeType":"ParameterList","parameters":[],"src":"1820:0:79"},"scope":22661,"src":"1740:120:79","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[9821,10468],"body":{"id":22659,"nodeType":"Block","src":"1951:45:79","statements":[{"expression":{"arguments":[{"id":22655,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22644,"src":"1973:7:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22656,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22646,"src":"1982:6:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22652,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1961:5:79","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecToken_$22661_$","typeString":"type(contract super My3SecToken)"}},"id":22654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1967:5:79","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":10468,"src":"1961:11:79","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":22657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1961:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22658,"nodeType":"ExpressionStatement","src":"1961:28:79"}]},"id":22660,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1875:5:79","nodeType":"FunctionDefinition","overrides":{"id":22650,"nodeType":"OverrideSpecifier","overrides":[{"id":22648,"name":"ERC20","nameLocations":["1932:5:79"],"nodeType":"IdentifierPath","referencedDeclaration":9932,"src":"1932:5:79"},{"id":22649,"name":"ERC20Votes","nameLocations":["1939:10:79"],"nodeType":"IdentifierPath","referencedDeclaration":10752,"src":"1939:10:79"}],"src":"1923:27:79"},"parameters":{"id":22647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22644,"mutability":"mutable","name":"account","nameLocation":"1889:7:79","nodeType":"VariableDeclaration","scope":22660,"src":"1881:15:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22643,"name":"address","nodeType":"ElementaryTypeName","src":"1881:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22646,"mutability":"mutable","name":"amount","nameLocation":"1906:6:79","nodeType":"VariableDeclaration","scope":22660,"src":"1898:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22645,"name":"uint256","nodeType":"ElementaryTypeName","src":"1898:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1880:33:79"},"returnParameters":{"id":22651,"nodeType":"ParameterList","parameters":[],"src":"1951:0:79"},"scope":22661,"src":"1866:130:79","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":22662,"src":"830:1168:79","usedErrors":[22131,22133]}],"src":"32:1967:79"},"id":79},"contracts/governance/SkillRegistry.sol":{"ast":{"absolutePath":"contracts/governance/SkillRegistry.sol","exportedSymbols":{"Context":[14324],"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"Errors":[22162],"Events":[22299],"ISkillRegistry":[21914],"Math":[16203],"Ownable":[5640],"SkillRegistry":[22875],"Strings":[14573]},"id":22876,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22663,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:80"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":22664,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":5641,"src":"57:52:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":22665,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":14574,"src":"110:51:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ISkillRegistry.sol","file":"../common/interfaces/ISkillRegistry.sol","id":22666,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":21915,"src":"163:49:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"../common/libraries/DataTypes.sol","id":22667,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":22124,"src":"213:43:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Events.sol","file":"../common/libraries/Events.sol","id":22668,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":22300,"src":"257:40:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../common/libraries/Errors.sol","id":22669,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22876,"sourceUnit":22163,"src":"298:40:80","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22670,"name":"ISkillRegistry","nameLocations":["366:14:80"],"nodeType":"IdentifierPath","referencedDeclaration":21914,"src":"366:14:80"},"id":22671,"nodeType":"InheritanceSpecifier","src":"366:14:80"},{"baseName":{"id":22672,"name":"Ownable","nameLocations":["382:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":5640,"src":"382:7:80"},"id":22673,"nodeType":"InheritanceSpecifier","src":"382:7:80"}],"canonicalName":"SkillRegistry","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":22875,"linearizedBaseContracts":[22875,5640,14324,21914],"name":"SkillRegistry","nameLocation":"349:13:80","nodeType":"ContractDefinition","nodes":[{"global":false,"id":22676,"libraryName":{"id":22674,"name":"Strings","nameLocations":["402:7:80"],"nodeType":"IdentifierPath","referencedDeclaration":14573,"src":"402:7:80"},"nodeType":"UsingForDirective","src":"396:26:80","typeName":{"id":22675,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":22679,"mutability":"mutable","name":"_skills","nameLocation":"446:7:80","nodeType":"VariableDeclaration","scope":22875,"src":"428:25:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string[]"},"typeName":{"baseType":{"id":22677,"name":"string","nodeType":"ElementaryTypeName","src":"428:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":22678,"nodeType":"ArrayTypeName","src":"428:8:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":22681,"mutability":"mutable","name":"_baseURI","nameLocation":"475:8:80","nodeType":"VariableDeclaration","scope":22875,"src":"459:24:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":22680,"name":"string","nodeType":"ElementaryTypeName","src":"459:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"body":{"id":22700,"nodeType":"Block","src":"538:116:80","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":22687,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22683,"src":"558:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"552:5:80","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":22685,"name":"bytes","nodeType":"ElementaryTypeName","src":"552:5:80","typeDescriptions":{}}},"id":22688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"552:14:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"567:6:80","memberName":"length","nodeType":"MemberAccess","src":"552:21:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":22690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"576:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"552:25:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22698,"nodeType":"IfStatement","src":"548:89:80","trueBody":{"id":22697,"nodeType":"Block","src":"579:58:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22692,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"600:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":22694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:17:80","memberName":"InitParamsInvalid","nodeType":"MemberAccess","referencedDeclaration":22131,"src":"600:24:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":22695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"600:26:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22696,"nodeType":"RevertStatement","src":"593:33:80"}]}},{"id":22699,"nodeType":"PlaceholderStatement","src":"646:1:80"}]},"id":22701,"name":"baseURINotEmpty","nameLocation":"499:15:80","nodeType":"ModifierDefinition","parameters":{"id":22684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22683,"mutability":"mutable","name":"baseURI","nameLocation":"529:7:80","nodeType":"VariableDeclaration","scope":22701,"src":"515:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22682,"name":"string","nodeType":"ElementaryTypeName","src":"515:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"514:23:80"},"src":"490:164:80","virtual":false,"visibility":"internal"},{"body":{"id":22724,"nodeType":"Block","src":"693:132:80","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22705,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"707:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"715:6:80","memberName":"length","nodeType":"MemberAccess","src":"707:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":22707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"724:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"707:18:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22709,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"729:2:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22710,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"734:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"742:6:80","memberName":"length","nodeType":"MemberAccess","src":"734:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"751:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"734:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"729:23:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"707:45:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22722,"nodeType":"IfStatement","src":"703:105:80","trueBody":{"id":22721,"nodeType":"Block","src":"754:54:80","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22716,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"775:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":22718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"782:13:80","memberName":"SkillNotFound","nodeType":"MemberAccess","referencedDeclaration":22155,"src":"775:20:80","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":22719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:22:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22720,"nodeType":"RevertStatement","src":"768:29:80"}]}},{"id":22723,"nodeType":"PlaceholderStatement","src":"817:1:80"}]},"id":22725,"name":"skillExists","nameLocation":"669:11:80","nodeType":"ModifierDefinition","parameters":{"id":22704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22703,"mutability":"mutable","name":"id","nameLocation":"689:2:80","nodeType":"VariableDeclaration","scope":22725,"src":"681:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22702,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"680:12:80"},"src":"660:165:80","virtual":false,"visibility":"internal"},{"body":{"id":22737,"nodeType":"Block","src":"891:35:80","statements":[{"expression":{"id":22735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22733,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22681,"src":"901:8:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22734,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22727,"src":"912:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"901:18:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":22736,"nodeType":"ExpressionStatement","src":"901:18:80"}]},"id":22738,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":22730,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22727,"src":"882:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":22731,"kind":"modifierInvocation","modifierName":{"id":22729,"name":"baseURINotEmpty","nameLocations":["866:15:80"],"nodeType":"IdentifierPath","referencedDeclaration":22701,"src":"866:15:80"},"nodeType":"ModifierInvocation","src":"866:24:80"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22727,"mutability":"mutable","name":"baseURI","nameLocation":"857:7:80","nodeType":"VariableDeclaration","scope":22738,"src":"843:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22726,"name":"string","nodeType":"ElementaryTypeName","src":"843:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"842:23:80"},"returnParameters":{"id":22732,"nodeType":"ParameterList","parameters":[],"src":"891:0:80"},"scope":22875,"src":"831:95:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21881],"body":{"id":22747,"nodeType":"Block","src":"1024:38:80","statements":[{"expression":{"expression":{"id":22744,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"1041:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1049:6:80","memberName":"length","nodeType":"MemberAccess","src":"1041:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22743,"id":22746,"nodeType":"Return","src":"1034:21:80"}]},"documentation":{"id":22739,"nodeType":"StructuredDocumentation","src":"932:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"05f53b29","id":22748,"implemented":true,"kind":"function","modifiers":[],"name":"getSkillCount","nameLocation":"976:13:80","nodeType":"FunctionDefinition","parameters":{"id":22740,"nodeType":"ParameterList","parameters":[],"src":"989:2:80"},"returnParameters":{"id":22743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22742,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22748,"src":"1015:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1015:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:9:80"},"scope":22875,"src":"967:95:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21889],"body":{"id":22796,"nodeType":"Block","src":"1206:272:80","statements":[{"assignments":[22761],"declarations":[{"constant":false,"id":22761,"mutability":"mutable","name":"metadataURI","nameLocation":"1230:11:80","nodeType":"VariableDeclaration","scope":22796,"src":"1216:25:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22760,"name":"string","nodeType":"ElementaryTypeName","src":"1216:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":22765,"initialValue":{"baseExpression":{"id":22762,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"1244:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22764,"indexExpression":{"id":22763,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"1252:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1244:14:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1216:42:80"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":22768,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22761,"src":"1278:11:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1272:5:80","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":22766,"name":"bytes","nodeType":"ElementaryTypeName","src":"1272:5:80","typeDescriptions":{}}},"id":22769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1272:18:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":22770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1291:6:80","memberName":"length","nodeType":"MemberAccess","src":"1272:25:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":22771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1300:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1272:29:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22780,"nodeType":"IfStatement","src":"1268:106:80","trueBody":{"id":22779,"nodeType":"Block","src":"1303:71:80","statements":[{"expression":{"arguments":[{"id":22775,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"1344:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22776,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22761,"src":"1351:11:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22773,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"1324:9:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":22774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1334:9:80","memberName":"SkillView","nodeType":"MemberAccess","referencedDeclaration":22122,"src":"1324:19:80","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SkillView_$22122_storage_ptr_$","typeString":"type(struct DataTypes.SkillView storage pointer)"}},"id":22777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1324:39:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_memory_ptr","typeString":"struct DataTypes.SkillView memory"}},"functionReturnParameters":22759,"id":22778,"nodeType":"Return","src":"1317:46:80"}]}},{"expression":{"arguments":[{"id":22783,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"1411:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":22788,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22681,"src":"1442:8:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":22789,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"1452:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1458:8:80","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":14456,"src":"1452:14:80","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":22791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1452:16:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1425:3:80","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1429:12:80","memberName":"encodePacked","nodeType":"MemberAccess","src":"1425:16:80","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":22792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1425:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1418:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":22784,"name":"string","nodeType":"ElementaryTypeName","src":"1418:6:80","typeDescriptions":{}}},"id":22793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:52:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22781,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"1391:9:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":22782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1401:9:80","memberName":"SkillView","nodeType":"MemberAccess","referencedDeclaration":22122,"src":"1391:19:80","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SkillView_$22122_storage_ptr_$","typeString":"type(struct DataTypes.SkillView storage pointer)"}},"id":22794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1391:80:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_memory_ptr","typeString":"struct DataTypes.SkillView memory"}},"functionReturnParameters":22759,"id":22795,"nodeType":"Return","src":"1384:87:80"}]},"documentation":{"id":22749,"nodeType":"StructuredDocumentation","src":"1068:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"bd880fae","id":22797,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":22754,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"1162:5:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22755,"kind":"modifierInvocation","modifierName":{"id":22753,"name":"skillExists","nameLocations":["1150:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":22725,"src":"1150:11:80"},"nodeType":"ModifierInvocation","src":"1150:18:80"}],"name":"getSkill","nameLocation":"1112:8:80","nodeType":"FunctionDefinition","parameters":{"id":22752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22751,"mutability":"mutable","name":"index","nameLocation":"1129:5:80","nodeType":"VariableDeclaration","scope":22797,"src":"1121:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22750,"name":"uint256","nodeType":"ElementaryTypeName","src":"1121:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1120:15:80"},"returnParameters":{"id":22759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22797,"src":"1178:26:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_memory_ptr","typeString":"struct DataTypes.SkillView"},"typeName":{"id":22757,"nodeType":"UserDefinedTypeName","pathNode":{"id":22756,"name":"DataTypes.SkillView","nameLocations":["1178:9:80","1188:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":22122,"src":"1178:19:80"},"referencedDeclaration":22122,"src":"1178:19:80","typeDescriptions":{"typeIdentifier":"t_struct$_SkillView_$22122_storage_ptr","typeString":"struct DataTypes.SkillView"}},"visibility":"internal"}],"src":"1177:28:80"},"scope":22875,"src":"1103:375:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21894],"body":{"id":22805,"nodeType":"Block","src":"1579:32:80","statements":[{"expression":{"id":22803,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22681,"src":"1596:8:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":22802,"id":22804,"nodeType":"Return","src":"1589:15:80"}]},"documentation":{"id":22798,"nodeType":"StructuredDocumentation","src":"1484:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"714c5398","id":22806,"implemented":true,"kind":"function","modifiers":[],"name":"getBaseURI","nameLocation":"1528:10:80","nodeType":"FunctionDefinition","parameters":{"id":22799,"nodeType":"ParameterList","parameters":[],"src":"1538:2:80"},"returnParameters":{"id":22802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22801,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22806,"src":"1564:13:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22800,"name":"string","nodeType":"ElementaryTypeName","src":"1564:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1563:15:80"},"scope":22875,"src":"1519:92:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21899],"body":{"id":22821,"nodeType":"Block","src":"1739:35:80","statements":[{"expression":{"id":22819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22817,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22681,"src":"1749:8:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22818,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22809,"src":"1760:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1749:18:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":22820,"nodeType":"ExpressionStatement","src":"1749:18:80"}]},"documentation":{"id":22807,"nodeType":"StructuredDocumentation","src":"1617:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"55f804b3","id":22822,"implemented":true,"kind":"function","modifiers":[{"id":22812,"kind":"modifierInvocation","modifierName":{"id":22811,"name":"onlyOwner","nameLocations":["1704:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"1704:9:80"},"nodeType":"ModifierInvocation","src":"1704:9:80"},{"arguments":[{"id":22814,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22809,"src":"1730:7:80","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":22815,"kind":"modifierInvocation","modifierName":{"id":22813,"name":"baseURINotEmpty","nameLocations":["1714:15:80"],"nodeType":"IdentifierPath","referencedDeclaration":22701,"src":"1714:15:80"},"nodeType":"ModifierInvocation","src":"1714:24:80"}],"name":"setBaseURI","nameLocation":"1661:10:80","nodeType":"FunctionDefinition","parameters":{"id":22810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22809,"mutability":"mutable","name":"baseURI","nameLocation":"1686:7:80","nodeType":"VariableDeclaration","scope":22822,"src":"1672:21:80","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22808,"name":"string","nodeType":"ElementaryTypeName","src":"1672:6:80","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1671:23:80"},"returnParameters":{"id":22816,"nodeType":"ParameterList","parameters":[],"src":"1739:0:80"},"scope":22875,"src":"1652:122:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21905],"body":{"id":22851,"nodeType":"Block","src":"1892:126:80","statements":[{"expression":{"arguments":[{"expression":{"id":22834,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22826,"src":"1915:4:80","typeDescriptions":{"typeIdentifier":"t_struct$_CreateSkill_$22114_calldata_ptr","typeString":"struct DataTypes.CreateSkill calldata"}},"id":22835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1920:11:80","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22113,"src":"1915:16:80","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":22831,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"1902:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1910:4:80","memberName":"push","nodeType":"MemberAccess","src":"1902:12:80","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$bound_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":22836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22837,"nodeType":"ExpressionStatement","src":"1902:30:80"},{"assignments":[22839],"declarations":[{"constant":false,"id":22839,"mutability":"mutable","name":"id","nameLocation":"1950:2:80","nodeType":"VariableDeclaration","scope":22851,"src":"1942:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22838,"name":"uint256","nodeType":"ElementaryTypeName","src":"1942:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22844,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22840,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"1955:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1963:6:80","memberName":"length","nodeType":"MemberAccess","src":"1955:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":22842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1972:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1955:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1942:31:80"},{"eventCall":{"arguments":[{"id":22848,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22839,"src":"2008:2:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22845,"name":"Events","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22299,"src":"1988:6:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Events_$22299_$","typeString":"type(library Events)"}},"id":22847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1995:12:80","memberName":"SkillCreated","nodeType":"MemberAccess","referencedDeclaration":22290,"src":"1988:19:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":22849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1988:23:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22850,"nodeType":"EmitStatement","src":"1983:28:80"}]},"documentation":{"id":22823,"nodeType":"StructuredDocumentation","src":"1780:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"3fa9b1e4","id":22852,"implemented":true,"kind":"function","modifiers":[{"id":22829,"kind":"modifierInvocation","modifierName":{"id":22828,"name":"onlyOwner","nameLocations":["1882:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"1882:9:80"},"nodeType":"ModifierInvocation","src":"1882:9:80"}],"name":"createSkill","nameLocation":"1824:11:80","nodeType":"FunctionDefinition","parameters":{"id":22827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22826,"mutability":"mutable","name":"args","nameLocation":"1867:4:80","nodeType":"VariableDeclaration","scope":22852,"src":"1836:35:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateSkill_$22114_calldata_ptr","typeString":"struct DataTypes.CreateSkill"},"typeName":{"id":22825,"nodeType":"UserDefinedTypeName","pathNode":{"id":22824,"name":"DataTypes.CreateSkill","nameLocations":["1836:9:80","1846:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":22114,"src":"1836:21:80"},"referencedDeclaration":22114,"src":"1836:21:80","typeDescriptions":{"typeIdentifier":"t_struct$_CreateSkill_$22114_storage_ptr","typeString":"struct DataTypes.CreateSkill"}},"visibility":"internal"}],"src":"1835:37:80"},"returnParameters":{"id":22830,"nodeType":"ParameterList","parameters":[],"src":"1892:0:80"},"scope":22875,"src":"1815:203:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21913],"body":{"id":22873,"nodeType":"Block","src":"2164:47:80","statements":[{"expression":{"id":22871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22866,"name":"_skills","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22679,"src":"2174:7:80","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":22868,"indexExpression":{"id":22867,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22855,"src":"2182:2:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2174:11:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":22869,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22858,"src":"2188:4:80","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateSkill_$22117_calldata_ptr","typeString":"struct DataTypes.UpdateSkill calldata"}},"id":22870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2193:11:80","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22116,"src":"2188:16:80","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"2174:30:80","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":22872,"nodeType":"ExpressionStatement","src":"2174:30:80"}]},"documentation":{"id":22853,"nodeType":"StructuredDocumentation","src":"2024:30:80","text":"@inheritdoc ISkillRegistry"},"functionSelector":"8c2576b2","id":22874,"implemented":true,"kind":"function","modifiers":[{"id":22861,"kind":"modifierInvocation","modifierName":{"id":22860,"name":"onlyOwner","nameLocations":["2138:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"2138:9:80"},"nodeType":"ModifierInvocation","src":"2138:9:80"},{"arguments":[{"id":22863,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22855,"src":"2160:2:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22864,"kind":"modifierInvocation","modifierName":{"id":22862,"name":"skillExists","nameLocations":["2148:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":22725,"src":"2148:11:80"},"nodeType":"ModifierInvocation","src":"2148:15:80"}],"name":"updateSkill","nameLocation":"2068:11:80","nodeType":"FunctionDefinition","parameters":{"id":22859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22855,"mutability":"mutable","name":"id","nameLocation":"2088:2:80","nodeType":"VariableDeclaration","scope":22874,"src":"2080:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22854,"name":"uint256","nodeType":"ElementaryTypeName","src":"2080:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22858,"mutability":"mutable","name":"args","nameLocation":"2123:4:80","nodeType":"VariableDeclaration","scope":22874,"src":"2092:35:80","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateSkill_$22117_calldata_ptr","typeString":"struct DataTypes.UpdateSkill"},"typeName":{"id":22857,"nodeType":"UserDefinedTypeName","pathNode":{"id":22856,"name":"DataTypes.UpdateSkill","nameLocations":["2092:9:80","2102:11:80"],"nodeType":"IdentifierPath","referencedDeclaration":22117,"src":"2092:21:80"},"referencedDeclaration":22117,"src":"2092:21:80","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateSkill_$22117_storage_ptr","typeString":"struct DataTypes.UpdateSkill"}},"visibility":"internal"}],"src":"2079:49:80"},"returnParameters":{"id":22865,"nodeType":"ParameterList","parameters":[],"src":"2164:0:80"},"scope":22875,"src":"2059:152:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":22876,"src":"340:1873:80","usedErrors":[22131,22155]}],"src":"32:2182:80"},"id":80},"contracts/governance/Timelock.sol":{"ast":{"absolutePath":"contracts/governance/Timelock.sol","exportedSymbols":{"AccessControl":[5454],"Address":[12931],"Constants":[22010],"Context":[14324],"ERC165":[15326],"IAccessControl":[5527],"IERC1155Receiver":[9345],"IERC165":[15338],"IERC721Receiver":[12064],"Math":[16203],"Strings":[14573],"Timelock":[22900],"TimelockController":[8159]},"id":22901,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22877,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:81"},{"absolutePath":"@openzeppelin/contracts/governance/TimelockController.sol","file":"@openzeppelin/contracts/governance/TimelockController.sol","id":22878,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22901,"sourceUnit":8160,"src":"57:67:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Constants.sol","file":"../common/libraries/Constants.sol","id":22879,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22901,"sourceUnit":22011,"src":"126:43:81","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22880,"name":"TimelockController","nameLocations":["192:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"192:18:81"},"id":22881,"nodeType":"InheritanceSpecifier","src":"192:18:81"}],"canonicalName":"Timelock","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":22900,"linearizedBaseContracts":[22900,8159,9345,12064,5454,15326,15338,5527,14324],"name":"Timelock","nameLocation":"180:8:81","nodeType":"ContractDefinition","nodes":[{"body":{"id":22898,"nodeType":"Block","src":"390:2:81","statements":[]},"id":22899,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"expression":{"id":22890,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"326:9:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":22891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"336:18:81","memberName":"DAO_TIMELOCK_DELAY","nodeType":"MemberAccess","referencedDeclaration":22009,"src":"326:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22892,"name":"proposers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22884,"src":"356:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":22893,"name":"executors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22887,"src":"367:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":22894,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"378:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":22895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"382:6:81","memberName":"sender","nodeType":"MemberAccess","src":"378:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":22896,"kind":"baseConstructorSpecifier","modifierName":{"id":22889,"name":"TimelockController","nameLocations":["307:18:81"],"nodeType":"IdentifierPath","referencedDeclaration":8159,"src":"307:18:81"},"nodeType":"ModifierInvocation","src":"307:82:81"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22884,"mutability":"mutable","name":"proposers","nameLocation":"255:9:81","nodeType":"VariableDeclaration","scope":22899,"src":"238:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":22882,"name":"address","nodeType":"ElementaryTypeName","src":"238:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22883,"nodeType":"ArrayTypeName","src":"238:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":22887,"mutability":"mutable","name":"executors","nameLocation":"291:9:81","nodeType":"VariableDeclaration","scope":22899,"src":"274:26:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":22885,"name":"address","nodeType":"ElementaryTypeName","src":"274:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22886,"nodeType":"ArrayTypeName","src":"274:9:81","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"228:78:81"},"returnParameters":{"id":22897,"nodeType":"ParameterList","parameters":[],"src":"390:0:81"},"scope":22900,"src":"217:175:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":22901,"src":"171:223:81","usedErrors":[]}],"src":"32:363:81"},"id":81},"contracts/organizations/CertificateNFT.sol":{"ast":{"absolutePath":"contracts/organizations/CertificateNFT.sol","exportedSymbols":{"Address":[12931],"CertificateNFT":[23037],"Context":[14324],"ERC165":[15326],"ERC721":[11930],"ERC721Enumerable":[12418],"ERC721URIStorage":[12543],"IERC165":[15338],"IERC721":[12046],"IERC721Enumerable":[12574],"IERC721Metadata":[12601],"IERC721Receiver":[12064],"Math":[16203],"Ownable":[5640],"Strings":[14573]},"id":23038,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":22902,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:82"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":22903,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23038,"sourceUnit":5641,"src":"57:52:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":22904,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23038,"sourceUnit":11931,"src":"110:57:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","id":22905,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23038,"sourceUnit":12419,"src":"168:78:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol","id":22906,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23038,"sourceUnit":12544,"src":"247:78:82","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22907,"name":"ERC721","nameLocations":["354:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"354:6:82"},"id":22908,"nodeType":"InheritanceSpecifier","src":"354:6:82"},{"baseName":{"id":22909,"name":"ERC721Enumerable","nameLocations":["362:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12418,"src":"362:16:82"},"id":22910,"nodeType":"InheritanceSpecifier","src":"362:16:82"},{"baseName":{"id":22911,"name":"ERC721URIStorage","nameLocations":["380:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12543,"src":"380:16:82"},"id":22912,"nodeType":"InheritanceSpecifier","src":"380:16:82"},{"baseName":{"id":22913,"name":"Ownable","nameLocations":["398:7:82"],"nodeType":"IdentifierPath","referencedDeclaration":5640,"src":"398:7:82"},"id":22914,"nodeType":"InheritanceSpecifier","src":"398:7:82"}],"canonicalName":"CertificateNFT","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":23037,"linearizedBaseContracts":[23037,5640,12543,12418,12574,11930,12601,12046,15326,15338,14324],"name":"CertificateNFT","nameLocation":"336:14:82","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":22916,"mutability":"mutable","name":"_tokenIdCounter","nameLocation":"428:15:82","nodeType":"VariableDeclaration","scope":23037,"src":"412:31:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22915,"name":"uint256","nodeType":"ElementaryTypeName","src":"412:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":22923,"nodeType":"Block","src":"502:2:82","statements":[]},"id":22924,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d793353656320436572746966696361746573","id":22919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"471:21:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc3fda312d289a94e032e3a7c43a79d358a8a8c84077bab562e50ec51e07fe91","typeString":"literal_string \"My3Sec Certificates\""},"value":"My3Sec Certificates"},{"hexValue":"4d335343","id":22920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"494:6:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_4632ff44fa6ebbc0d82f86d29463d40fd6d7c47f572fd6e9c8ba949048f05f36","typeString":"literal_string \"M3SC\""},"value":"M3SC"}],"id":22921,"kind":"baseConstructorSpecifier","modifierName":{"id":22918,"name":"ERC721","nameLocations":["464:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"464:6:82"},"nodeType":"ModifierInvocation","src":"464:37:82"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":22917,"nodeType":"ParameterList","parameters":[],"src":"461:2:82"},"returnParameters":{"id":22922,"nodeType":"ParameterList","parameters":[],"src":"502:0:82"},"scope":23037,"src":"450:54:82","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":22954,"nodeType":"Block","src":"596:169:82","statements":[{"assignments":[22936],"declarations":[{"constant":false,"id":22936,"mutability":"mutable","name":"tokenId","nameLocation":"614:7:82","nodeType":"VariableDeclaration","scope":22954,"src":"606:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22935,"name":"uint256","nodeType":"ElementaryTypeName","src":"606:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22938,"initialValue":{"id":22937,"name":"_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22916,"src":"624:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"606:33:82"},{"expression":{"id":22940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"649:17:82","subExpression":{"id":22939,"name":"_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22916,"src":"649:15:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22941,"nodeType":"ExpressionStatement","src":"649:17:82"},{"expression":{"arguments":[{"id":22943,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22926,"src":"686:2:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22944,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22936,"src":"690:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22942,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[11480,11509],"referencedDeclaration":11480,"src":"676:9:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":22945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22946,"nodeType":"ExpressionStatement","src":"676:22:82"},{"expression":{"arguments":[{"id":22948,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22936,"src":"721:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22949,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22928,"src":"730:3:82","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":22947,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12512,"src":"708:12:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":22950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:26:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22951,"nodeType":"ExpressionStatement","src":"708:26:82"},{"expression":{"id":22952,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22936,"src":"751:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":22934,"id":22953,"nodeType":"Return","src":"744:14:82"}]},"functionSelector":"d204c45e","id":22955,"implemented":true,"kind":"function","modifiers":[{"id":22931,"kind":"modifierInvocation","modifierName":{"id":22930,"name":"onlyOwner","nameLocations":["568:9:82"],"nodeType":"IdentifierPath","referencedDeclaration":5559,"src":"568:9:82"},"nodeType":"ModifierInvocation","src":"568:9:82"}],"name":"safeMint","nameLocation":"519:8:82","nodeType":"FunctionDefinition","parameters":{"id":22929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22926,"mutability":"mutable","name":"to","nameLocation":"536:2:82","nodeType":"VariableDeclaration","scope":22955,"src":"528:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22925,"name":"address","nodeType":"ElementaryTypeName","src":"528:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22928,"mutability":"mutable","name":"uri","nameLocation":"554:3:82","nodeType":"VariableDeclaration","scope":22955,"src":"540:17:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22927,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"527:31:82"},"returnParameters":{"id":22934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22955,"src":"587:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22932,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"586:9:82"},"scope":23037,"src":"510:255:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[11916,12256],"body":{"id":22988,"nodeType":"Block","src":"1013:247:82","statements":[{"expression":{"arguments":[{"id":22972,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"1050:4:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22973,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22959,"src":"1056:2:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22974,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22961,"src":"1060:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22975,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22963,"src":"1069:9:82","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":22969,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1023:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CertificateNFT_$23037_$","typeString":"type(contract super CertificateNFT)"}},"id":22971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1029:20:82","memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":12256,"src":"1023:26:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":22976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:56:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22977,"nodeType":"ExpressionStatement","src":"1023:56:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22979,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22957,"src":"1170:4:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1186:1:82","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":22981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1178:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22980,"name":"address","nodeType":"ElementaryTypeName","src":"1178:7:82","typeDescriptions":{}}},"id":22983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1178:10:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1170:18:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43657274696669636174654e46543a205468697320746f6b656e2063616e6e6f74206265207472616e73666572726564206f6e6365206d696e746564","id":22985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1190:62:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_9415f806032e8ce62953c2a5077ab63b71a12b2d4f8611a557c2c72502d2e834","typeString":"literal_string \"CertificateNFT: This token cannot be transferred once minted\""},"value":"CertificateNFT: This token cannot be transferred once minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9415f806032e8ce62953c2a5077ab63b71a12b2d4f8611a557c2c72502d2e834","typeString":"literal_string \"CertificateNFT: This token cannot be transferred once minted\""}],"id":22978,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1162:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1162:91:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22987,"nodeType":"ExpressionStatement","src":"1162:91:82"}]},"id":22989,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"848:20:82","nodeType":"FunctionDefinition","overrides":{"id":22967,"nodeType":"OverrideSpecifier","overrides":[{"id":22965,"name":"ERC721","nameLocations":["987:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"987:6:82"},{"id":22966,"name":"ERC721Enumerable","nameLocations":["995:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12418,"src":"995:16:82"}],"src":"978:34:82"},"parameters":{"id":22964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22957,"mutability":"mutable","name":"from","nameLocation":"886:4:82","nodeType":"VariableDeclaration","scope":22989,"src":"878:12:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22956,"name":"address","nodeType":"ElementaryTypeName","src":"878:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22959,"mutability":"mutable","name":"to","nameLocation":"908:2:82","nodeType":"VariableDeclaration","scope":22989,"src":"900:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22958,"name":"address","nodeType":"ElementaryTypeName","src":"900:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22961,"mutability":"mutable","name":"tokenId","nameLocation":"928:7:82","nodeType":"VariableDeclaration","scope":22989,"src":"920:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22960,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22963,"mutability":"mutable","name":"batchSize","nameLocation":"953:9:82","nodeType":"VariableDeclaration","scope":22989,"src":"945:17:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22962,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"868:100:82"},"returnParameters":{"id":22968,"nodeType":"ParameterList","parameters":[],"src":"1013:0:82"},"scope":23037,"src":"839:421:82","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[11653,12542],"body":{"id":23003,"nodeType":"Block","src":"1342:37:82","statements":[{"expression":{"arguments":[{"id":23000,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22991,"src":"1364:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22997,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1352:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CertificateNFT_$23037_$","typeString":"type(contract super CertificateNFT)"}},"id":22999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1358:5:82","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":12542,"src":"1352:11:82","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":23001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1352:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23002,"nodeType":"ExpressionStatement","src":"1352:20:82"}]},"id":23004,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"1275:5:82","nodeType":"FunctionDefinition","overrides":{"id":22995,"nodeType":"OverrideSpecifier","overrides":[{"id":22993,"name":"ERC721","nameLocations":["1316:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"1316:6:82"},{"id":22994,"name":"ERC721URIStorage","nameLocations":["1324:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12543,"src":"1324:16:82"}],"src":"1307:34:82"},"parameters":{"id":22992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22991,"mutability":"mutable","name":"tokenId","nameLocation":"1289:7:82","nodeType":"VariableDeclaration","scope":23004,"src":"1281:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1281:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1280:17:82"},"returnParameters":{"id":22996,"nodeType":"ParameterList","parameters":[],"src":"1342:0:82"},"scope":23037,"src":"1266:113:82","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[11190,12490],"body":{"id":23019,"nodeType":"Block","src":"1491:47:82","statements":[{"expression":{"arguments":[{"id":23016,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23006,"src":"1523:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23014,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1508:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CertificateNFT_$23037_$","typeString":"type(contract super CertificateNFT)"}},"id":23015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1514:8:82","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":12490,"src":"1508:14:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":23017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:23:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":23013,"id":23018,"nodeType":"Return","src":"1501:30:82"}]},"functionSelector":"c87b56dd","id":23020,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1394:8:82","nodeType":"FunctionDefinition","overrides":{"id":23010,"nodeType":"OverrideSpecifier","overrides":[{"id":23008,"name":"ERC721","nameLocations":["1441:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"1441:6:82"},{"id":23009,"name":"ERC721URIStorage","nameLocations":["1449:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12543,"src":"1449:16:82"}],"src":"1432:34:82"},"parameters":{"id":23007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23006,"mutability":"mutable","name":"tokenId","nameLocation":"1411:7:82","nodeType":"VariableDeclaration","scope":23020,"src":"1403:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1403:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:17:82"},"returnParameters":{"id":23013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23012,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23020,"src":"1476:13:82","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23011,"name":"string","nodeType":"ElementaryTypeName","src":"1476:6:82","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1475:15:82"},"scope":23037,"src":"1385:153:82","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[11079,12114],"body":{"id":23035,"nodeType":"Block","src":"1653:60:82","statements":[{"expression":{"arguments":[{"id":23032,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23022,"src":"1694:11:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":23030,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1670:5:82","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CertificateNFT_$23037_$","typeString":"type(contract super CertificateNFT)"}},"id":23031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1676:17:82","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":12114,"src":"1670:23:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":23033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23029,"id":23034,"nodeType":"Return","src":"1663:43:82"}]},"functionSelector":"01ffc9a7","id":23036,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1553:17:82","nodeType":"FunctionDefinition","overrides":{"id":23026,"nodeType":"OverrideSpecifier","overrides":[{"id":23024,"name":"ERC721","nameLocations":["1612:6:82"],"nodeType":"IdentifierPath","referencedDeclaration":11930,"src":"1612:6:82"},{"id":23025,"name":"ERC721Enumerable","nameLocations":["1620:16:82"],"nodeType":"IdentifierPath","referencedDeclaration":12418,"src":"1620:16:82"}],"src":"1603:34:82"},"parameters":{"id":23023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23022,"mutability":"mutable","name":"interfaceId","nameLocation":"1578:11:82","nodeType":"VariableDeclaration","scope":23036,"src":"1571:18:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":23021,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1571:6:82","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1570:20:82"},"returnParameters":{"id":23029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23036,"src":"1647:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23027,"name":"bool","nodeType":"ElementaryTypeName","src":"1647:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1646:6:82"},"scope":23037,"src":"1544:169:82","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":23038,"src":"327:1388:82","usedErrors":[]}],"src":"32:1684:82"},"id":82},"contracts/organizations/Organization.sol":{"ast":{"absolutePath":"contracts/organizations/Organization.sol","exportedSymbols":{"Context":[14324],"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"Errors":[22162],"Events":[22299],"HubControllable":[21056],"IMy3SecHub":[21558],"IOrganization":[21873],"IWhitelistable":[21986],"Organization":[24230],"Ownable":[5640],"Whitelistable":[21219]},"id":24231,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":23039,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:83"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":23040,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":19821,"src":"57:65:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","id":23041,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":19208,"src":"123:65:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/HubControllable.sol","file":"../common/access/HubControllable.sol","id":23042,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":21057,"src":"190:46:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/Whitelistable.sol","file":"../common/access/Whitelistable.sol","id":23043,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":21220,"src":"237:44:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IMy3SecHub.sol","file":"../common/interfaces/IMy3SecHub.sol","id":23044,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":21559,"src":"282:45:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IOrganization.sol","file":"../common/interfaces/IOrganization.sol","id":23045,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":21874,"src":"328:48:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/DataTypes.sol","file":"../common/libraries/DataTypes.sol","id":23046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":22124,"src":"377:43:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Events.sol","file":"../common/libraries/Events.sol","id":23047,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":22300,"src":"421:40:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../common/libraries/Errors.sol","id":23048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24231,"sourceUnit":22163,"src":"462:40:83","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23049,"name":"IOrganization","nameLocations":["529:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"529:13:83"},"id":23050,"nodeType":"InheritanceSpecifier","src":"529:13:83"},{"baseName":{"id":23051,"name":"HubControllable","nameLocations":["544:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21056,"src":"544:15:83"},"id":23052,"nodeType":"InheritanceSpecifier","src":"544:15:83"},{"baseName":{"id":23053,"name":"Whitelistable","nameLocations":["561:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":21219,"src":"561:13:83"},"id":23054,"nodeType":"InheritanceSpecifier","src":"561:13:83"}],"canonicalName":"Organization","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":24230,"linearizedBaseContracts":[24230,21219,5640,14324,21056,21873,21986],"name":"Organization","nameLocation":"513:12:83","nodeType":"ContractDefinition","nodes":[{"global":false,"id":23058,"libraryName":{"id":23055,"name":"EnumerableMap","nameLocations":["587:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":19207,"src":"587:13:83"},"nodeType":"UsingForDirective","src":"581:52:83","typeName":{"id":23057,"nodeType":"UserDefinedTypeName","pathNode":{"id":23056,"name":"EnumerableMap.UintToUintMap","nameLocations":["605:13:83","619:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":18331,"src":"605:27:83"},"referencedDeclaration":18331,"src":"605:27:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage_ptr","typeString":"struct EnumerableMap.UintToUintMap"}}},{"global":false,"id":23062,"libraryName":{"id":23059,"name":"EnumerableSet","nameLocations":["644:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":19820,"src":"644:13:83"},"nodeType":"UsingForDirective","src":"638:46:83","typeName":{"id":23061,"nodeType":"UserDefinedTypeName","pathNode":{"id":23060,"name":"EnumerableSet.UintSet","nameLocations":["662:13:83","676:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"662:21:83"},"referencedDeclaration":19690,"src":"662:21:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"constant":false,"id":23064,"mutability":"mutable","name":"_metadataURI","nameLocation":"706:12:83","nodeType":"VariableDeclaration","scope":24230,"src":"690:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":23063,"name":"string","nodeType":"ElementaryTypeName","src":"690:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23067,"mutability":"mutable","name":"_members","nameLocation":"756:8:83","nodeType":"VariableDeclaration","scope":24230,"src":"725:39:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":23066,"nodeType":"UserDefinedTypeName","pathNode":{"id":23065,"name":"EnumerableSet.UintSet","nameLocations":["725:13:83","739:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"725:21:83"},"referencedDeclaration":19690,"src":"725:21:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":23070,"mutability":"mutable","name":"_pendingMembers","nameLocation":"801:15:83","nodeType":"VariableDeclaration","scope":24230,"src":"770:46:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":23069,"nodeType":"UserDefinedTypeName","pathNode":{"id":23068,"name":"EnumerableSet.UintSet","nameLocations":["770:13:83","784:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":19690,"src":"770:21:83"},"referencedDeclaration":19690,"src":"770:21:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":23074,"mutability":"mutable","name":"_projects","nameLocation":"852:9:83","nodeType":"VariableDeclaration","scope":24230,"src":"823:38:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project[]"},"typeName":{"baseType":{"id":23072,"nodeType":"UserDefinedTypeName","pathNode":{"id":23071,"name":"DataTypes.Project","nameLocations":["823:9:83","833:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":22053,"src":"823:17:83"},"referencedDeclaration":22053,"src":"823:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project"}},"id":23073,"nodeType":"ArrayTypeName","src":"823:19:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage_ptr","typeString":"struct DataTypes.Project[]"}},"visibility":"internal"},{"constant":false,"id":23078,"mutability":"mutable","name":"_tasks","nameLocation":"893:6:83","nodeType":"VariableDeclaration","scope":24230,"src":"867:32:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task[]"},"typeName":{"baseType":{"id":23076,"nodeType":"UserDefinedTypeName","pathNode":{"id":23075,"name":"DataTypes.Task","nameLocations":["867:9:83","877:4:83"],"nodeType":"IdentifierPath","referencedDeclaration":22100,"src":"867:14:83"},"referencedDeclaration":22100,"src":"867:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"}},"id":23077,"nodeType":"ArrayTypeName","src":"867:16:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage_ptr","typeString":"struct DataTypes.Task[]"}},"visibility":"internal"},{"body":{"id":23097,"nodeType":"Block","src":"948:121:83","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},"id":23089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":23082,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"962:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23084,"indexExpression":{"id":23083,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23080,"src":"969:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"962:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"977:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22090,"src":"962:21:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":23086,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"987:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"997:10:83","memberName":"TaskStatus","nodeType":"MemberAccess","referencedDeclaration":22068,"src":"987:20:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_TaskStatus_$22068_$","typeString":"type(enum DataTypes.TaskStatus)"}},"id":23088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1008:9:83","memberName":"COMPLETED","nodeType":"MemberAccess","referencedDeclaration":22066,"src":"987:30:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"src":"962:55:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23095,"nodeType":"IfStatement","src":"958:93:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23090,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1026:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1033:16:83","memberName":"AlreadyCompleted","nodeType":"MemberAccess","referencedDeclaration":22159,"src":"1026:23:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1026:25:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23094,"nodeType":"RevertStatement","src":"1019:32:83"}},{"id":23096,"nodeType":"PlaceholderStatement","src":"1061:1:83"}]},"id":23098,"name":"taskNotCompleted","nameLocation":"915:16:83","nodeType":"ModifierDefinition","parameters":{"id":23081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23080,"mutability":"mutable","name":"taskId","nameLocation":"940:6:83","nodeType":"VariableDeclaration","scope":23098,"src":"932:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23079,"name":"uint256","nodeType":"ElementaryTypeName","src":"932:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"931:16:83"},"src":"906:163:83","virtual":false,"visibility":"internal"},{"body":{"id":23113,"nodeType":"Block","src":"1117:92:83","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23102,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23100,"src":"1131:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23103,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"1144:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1154:6:83","memberName":"length","nodeType":"MemberAccess","src":"1144:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1131:29:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23111,"nodeType":"IfStatement","src":"1127:64:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23106,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1169:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1176:13:83","memberName":"NotRegistered","nodeType":"MemberAccess","referencedDeclaration":22141,"src":"1169:20:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1169:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23110,"nodeType":"RevertStatement","src":"1162:29:83"}},{"id":23112,"nodeType":"PlaceholderStatement","src":"1201:1:83"}]},"id":23114,"name":"projectExists","nameLocation":"1084:13:83","nodeType":"ModifierDefinition","parameters":{"id":23101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23100,"mutability":"mutable","name":"projectId","nameLocation":"1106:9:83","nodeType":"VariableDeclaration","scope":23114,"src":"1098:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23099,"name":"uint256","nodeType":"ElementaryTypeName","src":"1098:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1097:19:83"},"src":"1075:134:83","virtual":false,"visibility":"internal"},{"body":{"id":23129,"nodeType":"Block","src":"1251:86:83","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23118,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23116,"src":"1265:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23119,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"1275:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1282:6:83","memberName":"length","nodeType":"MemberAccess","src":"1275:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1265:23:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23127,"nodeType":"IfStatement","src":"1261:58:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23122,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1297:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1304:13:83","memberName":"NotRegistered","nodeType":"MemberAccess","referencedDeclaration":22141,"src":"1297:20:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1297:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23126,"nodeType":"RevertStatement","src":"1290:29:83"}},{"id":23128,"nodeType":"PlaceholderStatement","src":"1329:1:83"}]},"id":23130,"name":"taskExists","nameLocation":"1224:10:83","nodeType":"ModifierDefinition","parameters":{"id":23117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23116,"mutability":"mutable","name":"taskId","nameLocation":"1243:6:83","nodeType":"VariableDeclaration","scope":23130,"src":"1235:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1234:16:83"},"src":"1215:122:83","virtual":false,"visibility":"internal"},{"body":{"id":23144,"nodeType":"Block","src":"1416:43:83","statements":[{"expression":{"id":23142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23140,"name":"_metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23064,"src":"1426:12:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23141,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"1441:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1426:26:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":23143,"nodeType":"ExpressionStatement","src":"1426:26:83"}]},"id":23145,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":23137,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"1411:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":23138,"kind":"baseConstructorSpecifier","modifierName":{"id":23136,"name":"HubControllable","nameLocations":["1395:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21056,"src":"1395:15:83"},"nodeType":"ModifierInvocation","src":"1395:20:83"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":23135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23132,"mutability":"mutable","name":"hub","nameLocation":"1363:3:83","nodeType":"VariableDeclaration","scope":23145,"src":"1355:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23131,"name":"address","nodeType":"ElementaryTypeName","src":"1355:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23134,"mutability":"mutable","name":"metadataURI","nameLocation":"1382:11:83","nodeType":"VariableDeclaration","scope":23145,"src":"1368:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23133,"name":"string","nodeType":"ElementaryTypeName","src":"1368:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1354:40:83"},"returnParameters":{"id":23139,"nodeType":"ParameterList","parameters":[],"src":"1416:0:83"},"scope":24230,"src":"1343:116:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21618],"body":{"id":23154,"nodeType":"Block","src":"1580:36:83","statements":[{"expression":{"id":23152,"name":"_metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23064,"src":"1597:12:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":23151,"id":23153,"nodeType":"Return","src":"1590:19:83"}]},"documentation":{"id":23146,"nodeType":"StructuredDocumentation","src":"1465:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"86a92af7","id":23155,"implemented":true,"kind":"function","modifiers":[],"name":"getMetadataURI","nameLocation":"1508:14:83","nodeType":"FunctionDefinition","overrides":{"id":23148,"nodeType":"OverrideSpecifier","overrides":[],"src":"1547:8:83"},"parameters":{"id":23147,"nodeType":"ParameterList","parameters":[],"src":"1522:2:83"},"returnParameters":{"id":23151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23155,"src":"1565:13:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23149,"name":"string","nodeType":"ElementaryTypeName","src":"1565:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1564:15:83"},"scope":24230,"src":"1499:117:83","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[21623],"body":{"id":23166,"nodeType":"Block","src":"1731:41:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23162,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"1748:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1757:6:83","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19768,"src":"1748:15:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":23164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1748:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23161,"id":23165,"nodeType":"Return","src":"1741:24:83"}]},"documentation":{"id":23156,"nodeType":"StructuredDocumentation","src":"1622:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"997072f7","id":23167,"implemented":true,"kind":"function","modifiers":[],"name":"getMemberCount","nameLocation":"1665:14:83","nodeType":"FunctionDefinition","overrides":{"id":23158,"nodeType":"OverrideSpecifier","overrides":[],"src":"1704:8:83"},"parameters":{"id":23157,"nodeType":"ParameterList","parameters":[],"src":"1679:2:83"},"returnParameters":{"id":23161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23167,"src":"1722:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1722:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1721:9:83"},"scope":24230,"src":"1656:116:83","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[21630],"body":{"id":23181,"nodeType":"Block","src":"1895:42:83","statements":[{"expression":{"arguments":[{"id":23178,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23170,"src":"1924:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23176,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"1912:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1921:2:83","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19789,"src":"1912:11:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":23179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23175,"id":23180,"nodeType":"Return","src":"1905:25:83"}]},"documentation":{"id":23168,"nodeType":"StructuredDocumentation","src":"1778:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"ab3545e5","id":23182,"implemented":true,"kind":"function","modifiers":[],"name":"getMember","nameLocation":"1821:9:83","nodeType":"FunctionDefinition","overrides":{"id":23172,"nodeType":"OverrideSpecifier","overrides":[],"src":"1868:8:83"},"parameters":{"id":23171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23170,"mutability":"mutable","name":"index","nameLocation":"1839:5:83","nodeType":"VariableDeclaration","scope":23182,"src":"1831:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1831:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1830:15:83"},"returnParameters":{"id":23175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23182,"src":"1886:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1885:9:83"},"scope":24230,"src":"1812:125:83","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[21637],"body":{"id":23196,"nodeType":"Block","src":"2058:52:83","statements":[{"expression":{"arguments":[{"id":23193,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23185,"src":"2093:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23191,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"2075:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2084:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"2075:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2075:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23190,"id":23195,"nodeType":"Return","src":"2068:35:83"}]},"documentation":{"id":23183,"nodeType":"StructuredDocumentation","src":"1943:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"d50c7377","id":23197,"implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"1986:8:83","nodeType":"FunctionDefinition","overrides":{"id":23187,"nodeType":"OverrideSpecifier","overrides":[],"src":"2034:8:83"},"parameters":{"id":23186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23185,"mutability":"mutable","name":"profileId","nameLocation":"2003:9:83","nodeType":"VariableDeclaration","scope":23197,"src":"1995:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23184,"name":"uint256","nodeType":"ElementaryTypeName","src":"1995:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1994:19:83"},"returnParameters":{"id":23190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23197,"src":"2052:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23188,"name":"bool","nodeType":"ElementaryTypeName","src":"2052:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2051:6:83"},"scope":24230,"src":"1977:133:83","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[21642],"body":{"id":23208,"nodeType":"Block","src":"2232:48:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23204,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"2249:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2265:6:83","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19768,"src":"2249:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":23206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2249:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23203,"id":23207,"nodeType":"Return","src":"2242:31:83"}]},"documentation":{"id":23198,"nodeType":"StructuredDocumentation","src":"2116:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"bd9d867c","id":23209,"implemented":true,"kind":"function","modifiers":[],"name":"getPendingMemberCount","nameLocation":"2159:21:83","nodeType":"FunctionDefinition","overrides":{"id":23200,"nodeType":"OverrideSpecifier","overrides":[],"src":"2205:8:83"},"parameters":{"id":23199,"nodeType":"ParameterList","parameters":[],"src":"2180:2:83"},"returnParameters":{"id":23203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23209,"src":"2223:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23201,"name":"uint256","nodeType":"ElementaryTypeName","src":"2223:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2222:9:83"},"scope":24230,"src":"2150:130:83","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[21649],"body":{"id":23223,"nodeType":"Block","src":"2410:49:83","statements":[{"expression":{"arguments":[{"id":23220,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23212,"src":"2446:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23218,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"2427:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2443:2:83","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19789,"src":"2427:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":23221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2427:25:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23217,"id":23222,"nodeType":"Return","src":"2420:32:83"}]},"documentation":{"id":23210,"nodeType":"StructuredDocumentation","src":"2286:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"c591493f","id":23224,"implemented":true,"kind":"function","modifiers":[],"name":"getPendingMember","nameLocation":"2329:16:83","nodeType":"FunctionDefinition","overrides":{"id":23214,"nodeType":"OverrideSpecifier","overrides":[],"src":"2383:8:83"},"parameters":{"id":23213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23212,"mutability":"mutable","name":"index","nameLocation":"2354:5:83","nodeType":"VariableDeclaration","scope":23224,"src":"2346:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23211,"name":"uint256","nodeType":"ElementaryTypeName","src":"2346:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2345:15:83"},"returnParameters":{"id":23217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23224,"src":"2401:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23215,"name":"uint256","nodeType":"ElementaryTypeName","src":"2401:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2400:9:83"},"scope":24230,"src":"2320:139:83","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[21656],"body":{"id":23238,"nodeType":"Block","src":"2587:59:83","statements":[{"expression":{"arguments":[{"id":23235,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23227,"src":"2629:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23233,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"2604:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2620:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"2604:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2604:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23232,"id":23237,"nodeType":"Return","src":"2597:42:83"}]},"documentation":{"id":23225,"nodeType":"StructuredDocumentation","src":"2465:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"c763bbf4","id":23239,"implemented":true,"kind":"function","modifiers":[],"name":"isPendingMember","nameLocation":"2508:15:83","nodeType":"FunctionDefinition","overrides":{"id":23229,"nodeType":"OverrideSpecifier","overrides":[],"src":"2563:8:83"},"parameters":{"id":23228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23227,"mutability":"mutable","name":"profileId","nameLocation":"2532:9:83","nodeType":"VariableDeclaration","scope":23239,"src":"2524:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23226,"name":"uint256","nodeType":"ElementaryTypeName","src":"2524:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2523:19:83"},"returnParameters":{"id":23232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23239,"src":"2581:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23230,"name":"bool","nodeType":"ElementaryTypeName","src":"2581:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2580:6:83"},"scope":24230,"src":"2499:147:83","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[21661],"body":{"id":23252,"nodeType":"Block","src":"2779:43:83","statements":[{"expression":{"id":23250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23248,"name":"_metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23064,"src":"2789:12:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23249,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23242,"src":"2804:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2789:26:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":23251,"nodeType":"ExpressionStatement","src":"2789:26:83"}]},"documentation":{"id":23240,"nodeType":"StructuredDocumentation","src":"2652:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"750521f5","id":23253,"implemented":true,"kind":"function","modifiers":[{"id":23246,"kind":"modifierInvocation","modifierName":{"id":23245,"name":"onlyWhitelisted","nameLocations":["2763:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"2763:15:83"},"nodeType":"ModifierInvocation","src":"2763:15:83"}],"name":"setMetadataURI","nameLocation":"2695:14:83","nodeType":"FunctionDefinition","overrides":{"id":23244,"nodeType":"OverrideSpecifier","overrides":[],"src":"2754:8:83"},"parameters":{"id":23243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23242,"mutability":"mutable","name":"metadataURI","nameLocation":"2724:11:83","nodeType":"VariableDeclaration","scope":23253,"src":"2710:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23241,"name":"string","nodeType":"ElementaryTypeName","src":"2710:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2709:27:83"},"returnParameters":{"id":23247,"nodeType":"ParameterList","parameters":[],"src":"2779:0:83"},"scope":24230,"src":"2686:136:83","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[21666],"body":{"id":23278,"nodeType":"Block","src":"2929:120:83","statements":[{"condition":{"arguments":[{"id":23264,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23256,"src":"2961:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23262,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"2943:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2952:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"2943:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23271,"nodeType":"IfStatement","src":"2939:63:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23266,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"2980:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2987:13:83","memberName":"AlreadyMember","nodeType":"MemberAccess","referencedDeclaration":22147,"src":"2980:20:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23270,"nodeType":"RevertStatement","src":"2973:29:83"}},{"expression":{"arguments":[{"id":23275,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23256,"src":"3032:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23272,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3012:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3028:3:83","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19711,"src":"3012:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23277,"nodeType":"ExpressionStatement","src":"3012:30:83"}]},"documentation":{"id":23254,"nodeType":"StructuredDocumentation","src":"2828:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"049878f3","id":23279,"implemented":true,"kind":"function","modifiers":[{"id":23260,"kind":"modifierInvocation","modifierName":{"id":23259,"name":"onlyHub","nameLocations":["2921:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":21033,"src":"2921:7:83"},"nodeType":"ModifierInvocation","src":"2921:7:83"}],"name":"join","nameLocation":"2871:4:83","nodeType":"FunctionDefinition","overrides":{"id":23258,"nodeType":"OverrideSpecifier","overrides":[],"src":"2912:8:83"},"parameters":{"id":23257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23256,"mutability":"mutable","name":"profileId","nameLocation":"2884:9:83","nodeType":"VariableDeclaration","scope":23279,"src":"2876:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23255,"name":"uint256","nodeType":"ElementaryTypeName","src":"2876:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2875:19:83"},"returnParameters":{"id":23261,"nodeType":"ParameterList","parameters":[],"src":"2929:0:83"},"scope":24230,"src":"2862:187:83","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[21671],"body":{"id":23319,"nodeType":"Block","src":"3157:286:83","statements":[{"condition":{"arguments":[{"id":23290,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"3196:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23288,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3171:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3187:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"3171:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3171:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23300,"nodeType":"IfStatement","src":"3167:119:83","trueBody":{"id":23299,"nodeType":"Block","src":"3208:78:83","statements":[{"expression":{"arguments":[{"id":23295,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"3245:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23292,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3222:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3238:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"3222:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23297,"nodeType":"ExpressionStatement","src":"3222:33:83"},{"functionReturnParameters":23287,"id":23298,"nodeType":"Return","src":"3269:7:83"}]}},{"condition":{"arguments":[{"id":23303,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"3318:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23301,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"3300:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3309:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"3300:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3300:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23313,"nodeType":"IfStatement","src":"3296:105:83","trueBody":{"id":23312,"nodeType":"Block","src":"3330:71:83","statements":[{"expression":{"arguments":[{"id":23308,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"3360:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23305,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"3344:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3353:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"3344:15:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3344:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23310,"nodeType":"ExpressionStatement","src":"3344:26:83"},{"functionReturnParameters":23287,"id":23311,"nodeType":"Return","src":"3384:7:83"}]}},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23314,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"3418:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3425:9:83","memberName":"NotMember","nodeType":"MemberAccess","referencedDeclaration":22149,"src":"3418:16:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23318,"nodeType":"RevertStatement","src":"3411:25:83"}]},"documentation":{"id":23280,"nodeType":"StructuredDocumentation","src":"3055:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"67dfd4c9","id":23320,"implemented":true,"kind":"function","modifiers":[{"id":23286,"kind":"modifierInvocation","modifierName":{"id":23285,"name":"onlyHub","nameLocations":["3149:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":21033,"src":"3149:7:83"},"nodeType":"ModifierInvocation","src":"3149:7:83"}],"name":"leave","nameLocation":"3098:5:83","nodeType":"FunctionDefinition","overrides":{"id":23284,"nodeType":"OverrideSpecifier","overrides":[],"src":"3140:8:83"},"parameters":{"id":23283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23282,"mutability":"mutable","name":"profileId","nameLocation":"3112:9:83","nodeType":"VariableDeclaration","scope":23320,"src":"3104:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23281,"name":"uint256","nodeType":"ElementaryTypeName","src":"3104:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:19:83"},"returnParameters":{"id":23287,"nodeType":"ParameterList","parameters":[],"src":"3157:0:83"},"scope":24230,"src":"3089:354:83","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[21676],"body":{"id":23363,"nodeType":"Block","src":"3574:244:83","statements":[{"condition":{"id":23333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3588:36:83","subExpression":{"arguments":[{"id":23331,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23323,"src":"3614:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23329,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3589:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3605:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"3589:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23339,"nodeType":"IfStatement","src":"3584:74:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23334,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"3633:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3640:16:83","memberName":"NotPendingMember","nodeType":"MemberAccess","referencedDeclaration":22151,"src":"3633:23:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:25:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23338,"nodeType":"RevertStatement","src":"3626:32:83"}},{"expression":{"arguments":[{"id":23343,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23323,"src":"3691:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23340,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3668:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3684:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"3668:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3668:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23345,"nodeType":"ExpressionStatement","src":"3668:33:83"},{"expression":{"arguments":[{"id":23349,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23323,"src":"3724:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23346,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23067,"src":"3711:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3720:3:83","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19711,"src":"3711:12:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:23:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23351,"nodeType":"ExpressionStatement","src":"3711:23:83"},{"expression":{"arguments":[{"arguments":[{"id":23358,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3794:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3786:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23356,"name":"address","nodeType":"ElementaryTypeName","src":"3786:7:83","typeDescriptions":{}}},"id":23359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3786:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23360,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23323,"src":"3801:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23353,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"3755:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23352,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"3744:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3744:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3760:25:83","memberName":"emitPendingMemberApproved","nodeType":"MemberAccess","referencedDeclaration":21484,"src":"3744:41:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":23361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3744:67:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23362,"nodeType":"ExpressionStatement","src":"3744:67:83"}]},"documentation":{"id":23321,"nodeType":"StructuredDocumentation","src":"3449:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"06e30412","id":23364,"implemented":true,"kind":"function","modifiers":[{"id":23327,"kind":"modifierInvocation","modifierName":{"id":23326,"name":"onlyWhitelisted","nameLocations":["3558:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"3558:15:83"},"nodeType":"ModifierInvocation","src":"3558:15:83"}],"name":"approvePendingMember","nameLocation":"3492:20:83","nodeType":"FunctionDefinition","overrides":{"id":23325,"nodeType":"OverrideSpecifier","overrides":[],"src":"3549:8:83"},"parameters":{"id":23324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23323,"mutability":"mutable","name":"profileId","nameLocation":"3521:9:83","nodeType":"VariableDeclaration","scope":23364,"src":"3513:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23322,"name":"uint256","nodeType":"ElementaryTypeName","src":"3513:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3512:19:83"},"returnParameters":{"id":23328,"nodeType":"ParameterList","parameters":[],"src":"3574:0:83"},"scope":24230,"src":"3483:335:83","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[21681],"body":{"id":23401,"nodeType":"Block","src":"3948:211:83","statements":[{"condition":{"id":23377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3962:36:83","subExpression":{"arguments":[{"id":23375,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23367,"src":"3988:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23373,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"3963:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3979:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"3963:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3963:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23383,"nodeType":"IfStatement","src":"3958:74:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23378,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"4007:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":23380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:16:83","memberName":"NotPendingMember","nodeType":"MemberAccess","referencedDeclaration":22151,"src":"4007:23:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":23381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4007:25:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23382,"nodeType":"RevertStatement","src":"4000:32:83"}},{"expression":{"arguments":[{"id":23387,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23367,"src":"4065:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23384,"name":"_pendingMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23070,"src":"4042:15:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4058:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"4042:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4042:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23389,"nodeType":"ExpressionStatement","src":"4042:33:83"},{"expression":{"arguments":[{"arguments":[{"id":23396,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4135:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4127:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23394,"name":"address","nodeType":"ElementaryTypeName","src":"4127:7:83","typeDescriptions":{}}},"id":23397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4127:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23398,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23367,"src":"4142:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23391,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"4096:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23390,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"4085:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4101:25:83","memberName":"emitPendingMemberRejected","nodeType":"MemberAccess","referencedDeclaration":21491,"src":"4085:41:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":23399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:67:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23400,"nodeType":"ExpressionStatement","src":"4085:67:83"}]},"documentation":{"id":23365,"nodeType":"StructuredDocumentation","src":"3824:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"c59db1af","id":23402,"implemented":true,"kind":"function","modifiers":[{"id":23371,"kind":"modifierInvocation","modifierName":{"id":23370,"name":"onlyWhitelisted","nameLocations":["3932:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"3932:15:83"},"nodeType":"ModifierInvocation","src":"3932:15:83"}],"name":"rejectPendingMember","nameLocation":"3867:19:83","nodeType":"FunctionDefinition","overrides":{"id":23369,"nodeType":"OverrideSpecifier","overrides":[],"src":"3923:8:83"},"parameters":{"id":23368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23367,"mutability":"mutable","name":"profileId","nameLocation":"3895:9:83","nodeType":"VariableDeclaration","scope":23402,"src":"3887:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23366,"name":"uint256","nodeType":"ElementaryTypeName","src":"3887:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3886:19:83"},"returnParameters":{"id":23372,"nodeType":"ParameterList","parameters":[],"src":"3948:0:83"},"scope":24230,"src":"3858:301:83","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[21686],"body":{"id":23411,"nodeType":"Block","src":"4442:40:83","statements":[{"expression":{"expression":{"id":23408,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"4459:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4469:6:83","memberName":"length","nodeType":"MemberAccess","src":"4459:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23407,"id":23410,"nodeType":"Return","src":"4452:23:83"}]},"documentation":{"id":23403,"nodeType":"StructuredDocumentation","src":"4349:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"3bcff3b0","id":23412,"implemented":true,"kind":"function","modifiers":[],"name":"getProjectCount","nameLocation":"4392:15:83","nodeType":"FunctionDefinition","parameters":{"id":23404,"nodeType":"ParameterList","parameters":[],"src":"4407:2:83"},"returnParameters":{"id":23407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23406,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23412,"src":"4433:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4433:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4432:9:83"},"scope":24230,"src":"4383:99:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21694],"body":{"id":23453,"nodeType":"Block","src":"4631:338:83","statements":[{"assignments":[23428],"declarations":[{"constant":false,"id":23428,"mutability":"mutable","name":"project","nameLocation":"4667:7:83","nodeType":"VariableDeclaration","scope":23453,"src":"4641:33:83","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project"},"typeName":{"id":23427,"nodeType":"UserDefinedTypeName","pathNode":{"id":23426,"name":"DataTypes.Project","nameLocations":["4641:9:83","4651:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":22053,"src":"4641:17:83"},"referencedDeclaration":22053,"src":"4641:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project"}},"visibility":"internal"}],"id":23432,"initialValue":{"baseExpression":{"id":23429,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"4677:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23431,"indexExpression":{"id":23430,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23415,"src":"4687:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4677:16:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4641:52:83"},{"assignments":[23437],"declarations":[{"constant":false,"id":23437,"mutability":"mutable","name":"projectView","nameLocation":"4732:11:83","nodeType":"VariableDeclaration","scope":23453,"src":"4703:40:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_memory_ptr","typeString":"struct DataTypes.ProjectView"},"typeName":{"id":23436,"nodeType":"UserDefinedTypeName","pathNode":{"id":23435,"name":"DataTypes.ProjectView","nameLocations":["4703:9:83","4713:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":22063,"src":"4703:21:83"},"referencedDeclaration":22063,"src":"4703:21:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_storage_ptr","typeString":"struct DataTypes.ProjectView"}},"visibility":"internal"}],"id":23450,"initialValue":{"arguments":[{"expression":{"id":23440,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"4786:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4794:2:83","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":22041,"src":"4786:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23442,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"4823:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4831:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22043,"src":"4823:19:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":23444,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"4864:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4872:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22046,"src":"4864:14:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},{"expression":{"expression":{"id":23446,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23428,"src":"4903:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4911:5:83","memberName":"tasks","nodeType":"MemberAccess","referencedDeclaration":22052,"src":"4903:13:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":23448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4917:6:83","memberName":"length","nodeType":"MemberAccess","src":"4903:20:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23438,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"4746:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4756:11:83","memberName":"ProjectView","nodeType":"MemberAccess","referencedDeclaration":22063,"src":"4746:21:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProjectView_$22063_storage_ptr_$","typeString":"type(struct DataTypes.ProjectView storage pointer)"}},"id":23449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4782:2:83","4810:11:83","4856:6:83","4892:9:83"],"names":["id","metadataURI","status","taskCount"],"nodeType":"FunctionCall","src":"4746:188:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_memory_ptr","typeString":"struct DataTypes.ProjectView memory"}},"nodeType":"VariableDeclarationStatement","src":"4703:231:83"},{"expression":{"id":23451,"name":"projectView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23437,"src":"4951:11:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_memory_ptr","typeString":"struct DataTypes.ProjectView memory"}},"functionReturnParameters":23423,"id":23452,"nodeType":"Return","src":"4944:18:83"}]},"documentation":{"id":23413,"nodeType":"StructuredDocumentation","src":"4488:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"f0f3f2c8","id":23454,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23418,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23415,"src":"4585:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23419,"kind":"modifierInvocation","modifierName":{"id":23417,"name":"projectExists","nameLocations":["4571:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"4571:13:83"},"nodeType":"ModifierInvocation","src":"4571:20:83"}],"name":"getProject","nameLocation":"4531:10:83","nodeType":"FunctionDefinition","parameters":{"id":23416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23415,"mutability":"mutable","name":"index","nameLocation":"4550:5:83","nodeType":"VariableDeclaration","scope":23454,"src":"4542:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23414,"name":"uint256","nodeType":"ElementaryTypeName","src":"4542:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4541:15:83"},"returnParameters":{"id":23423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23454,"src":"4601:28:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_memory_ptr","typeString":"struct DataTypes.ProjectView"},"typeName":{"id":23421,"nodeType":"UserDefinedTypeName","pathNode":{"id":23420,"name":"DataTypes.ProjectView","nameLocations":["4601:9:83","4611:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":22063,"src":"4601:21:83"},"referencedDeclaration":22063,"src":"4601:21:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProjectView_$22063_storage_ptr","typeString":"struct DataTypes.ProjectView"}},"visibility":"internal"}],"src":"4600:30:83"},"scope":24230,"src":"4522:447:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21701],"body":{"id":23472,"nodeType":"Block","src":"5116:61:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":23465,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5133:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23467,"indexExpression":{"id":23466,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23457,"src":"5143:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5133:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5154:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22049,"src":"5133:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5162:6:83","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19768,"src":"5133:35:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":23470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5133:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23464,"id":23471,"nodeType":"Return","src":"5126:44:83"}]},"documentation":{"id":23455,"nodeType":"StructuredDocumentation","src":"4975:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"254c290d","id":23473,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23460,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23457,"src":"5087:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23461,"kind":"modifierInvocation","modifierName":{"id":23459,"name":"projectExists","nameLocations":["5073:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"5073:13:83"},"nodeType":"ModifierInvocation","src":"5073:24:83"}],"name":"getProjectMemberCount","nameLocation":"5018:21:83","nodeType":"FunctionDefinition","parameters":{"id":23458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23457,"mutability":"mutable","name":"projectId","nameLocation":"5048:9:83","nodeType":"VariableDeclaration","scope":23473,"src":"5040:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23456,"name":"uint256","nodeType":"ElementaryTypeName","src":"5040:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5039:19:83"},"returnParameters":{"id":23464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23473,"src":"5107:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23462,"name":"uint256","nodeType":"ElementaryTypeName","src":"5107:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5106:9:83"},"scope":24230,"src":"5009:168:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21710],"body":{"id":23494,"nodeType":"Block","src":"5356:62:83","statements":[{"expression":{"arguments":[{"id":23491,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23478,"src":"5405:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23486,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5373:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23488,"indexExpression":{"id":23487,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23476,"src":"5383:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5373:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5394:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22049,"src":"5373:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5402:2:83","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19789,"src":"5373:31:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":23492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23485,"id":23493,"nodeType":"Return","src":"5366:45:83"}]},"documentation":{"id":23474,"nodeType":"StructuredDocumentation","src":"5183:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"49386c56","id":23495,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23481,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23476,"src":"5327:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23482,"kind":"modifierInvocation","modifierName":{"id":23480,"name":"projectExists","nameLocations":["5313:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"5313:13:83"},"nodeType":"ModifierInvocation","src":"5313:24:83"}],"name":"getProjectMember","nameLocation":"5226:16:83","nodeType":"FunctionDefinition","parameters":{"id":23479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23476,"mutability":"mutable","name":"projectId","nameLocation":"5260:9:83","nodeType":"VariableDeclaration","scope":23495,"src":"5252:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23475,"name":"uint256","nodeType":"ElementaryTypeName","src":"5252:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23478,"mutability":"mutable","name":"index","nameLocation":"5287:5:83","nodeType":"VariableDeclaration","scope":23495,"src":"5279:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23477,"name":"uint256","nodeType":"ElementaryTypeName","src":"5279:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5242:56:83"},"returnParameters":{"id":23485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23495,"src":"5347:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23483,"name":"uint256","nodeType":"ElementaryTypeName","src":"5347:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5346:9:83"},"scope":24230,"src":"5217:201:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21719],"body":{"id":23515,"nodeType":"Block","src":"5539:72:83","statements":[{"expression":{"arguments":[{"id":23512,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23499,"src":"5594:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23507,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5556:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23509,"indexExpression":{"id":23508,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23497,"src":"5566:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5556:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5577:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22049,"src":"5556:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5585:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"5556:37:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5556:48:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23506,"id":23514,"nodeType":"Return","src":"5549:55:83"}]},"functionSelector":"fad001a2","id":23516,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23502,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23497,"src":"5513:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23503,"kind":"modifierInvocation","modifierName":{"id":23501,"name":"projectExists","nameLocations":["5499:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"5499:13:83"},"nodeType":"ModifierInvocation","src":"5499:24:83"}],"name":"isProjectMember","nameLocation":"5433:15:83","nodeType":"FunctionDefinition","parameters":{"id":23500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23497,"mutability":"mutable","name":"projectId","nameLocation":"5457:9:83","nodeType":"VariableDeclaration","scope":23516,"src":"5449:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5449:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23499,"mutability":"mutable","name":"profileId","nameLocation":"5476:9:83","nodeType":"VariableDeclaration","scope":23516,"src":"5468:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23498,"name":"uint256","nodeType":"ElementaryTypeName","src":"5468:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5448:38:83"},"returnParameters":{"id":23506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23516,"src":"5533:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23504,"name":"bool","nodeType":"ElementaryTypeName","src":"5533:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5532:6:83"},"scope":24230,"src":"5424:187:83","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21727],"body":{"id":23580,"nodeType":"Block","src":"5756:398:83","statements":[{"assignments":[23528],"declarations":[{"constant":false,"id":23528,"mutability":"mutable","name":"newProjectId","nameLocation":"5774:12:83","nodeType":"VariableDeclaration","scope":23580,"src":"5766:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23527,"name":"uint256","nodeType":"ElementaryTypeName","src":"5766:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23531,"initialValue":{"expression":{"id":23529,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5789:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5799:6:83","memberName":"length","nodeType":"MemberAccess","src":"5789:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5766:39:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23532,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5815:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5825:4:83","memberName":"push","nodeType":"MemberAccess","src":"5815:14:83","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Project_$22053_storage_$dyn_storage_ptr_$returns$_t_struct$_Project_$22053_storage_$bound_to$_t_array$_t_struct$_Project_$22053_storage_$dyn_storage_ptr_$","typeString":"function (struct DataTypes.Project storage ref[] storage pointer) returns (struct DataTypes.Project storage ref)"}},"id":23535,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5815:16:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23536,"nodeType":"ExpressionStatement","src":"5815:16:83"},{"assignments":[23541],"declarations":[{"constant":false,"id":23541,"mutability":"mutable","name":"project","nameLocation":"5867:7:83","nodeType":"VariableDeclaration","scope":23580,"src":"5841:33:83","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project"},"typeName":{"id":23540,"nodeType":"UserDefinedTypeName","pathNode":{"id":23539,"name":"DataTypes.Project","nameLocations":["5841:9:83","5851:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":22053,"src":"5841:17:83"},"referencedDeclaration":22053,"src":"5841:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project"}},"visibility":"internal"}],"id":23545,"initialValue":{"baseExpression":{"id":23542,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"5877:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23544,"indexExpression":{"id":23543,"name":"newProjectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"5887:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5877:23:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5841:59:83"},{"expression":{"id":23550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23546,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23541,"src":"5910:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5918:2:83","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":22041,"src":"5910:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23549,"name":"newProjectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"5923:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5910:25:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23551,"nodeType":"ExpressionStatement","src":"5910:25:83"},{"expression":{"id":23557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23552,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23541,"src":"5945:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5953:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22043,"src":"5945:19:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23555,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23520,"src":"5967:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProject_$22033_calldata_ptr","typeString":"struct DataTypes.CreateProject calldata"}},"id":23556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5972:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22032,"src":"5967:16:83","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"5945:38:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":23558,"nodeType":"ExpressionStatement","src":"5945:38:83"},{"expression":{"id":23565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23559,"name":"project","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23541,"src":"5993:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage_ptr","typeString":"struct DataTypes.Project storage pointer"}},"id":23561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6001:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22046,"src":"5993:14:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":23562,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"6010:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6020:13:83","memberName":"ProjectStatus","nodeType":"MemberAccess","referencedDeclaration":22030,"src":"6010:23:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProjectStatus_$22030_$","typeString":"type(enum DataTypes.ProjectStatus)"}},"id":23564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6034:11:83","memberName":"NOT_STARTED","nodeType":"MemberAccess","referencedDeclaration":22026,"src":"6010:35:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"src":"5993:52:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"id":23566,"nodeType":"ExpressionStatement","src":"5993:52:83"},{"expression":{"arguments":[{"arguments":[{"id":23573,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6098:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6090:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23571,"name":"address","nodeType":"ElementaryTypeName","src":"6090:7:83","typeDescriptions":{}}},"id":23574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23575,"name":"newProjectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"6105:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23568,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"6066:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23567,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"6055:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6071:18:83","memberName":"emitProjectCreated","nodeType":"MemberAccess","referencedDeclaration":21498,"src":"6055:34:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":23576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:63:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23577,"nodeType":"ExpressionStatement","src":"6055:63:83"},{"expression":{"id":23578,"name":"newProjectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"6135:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23526,"id":23579,"nodeType":"Return","src":"6128:19:83"}]},"documentation":{"id":23517,"nodeType":"StructuredDocumentation","src":"5617:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"41aafef7","id":23581,"implemented":true,"kind":"function","modifiers":[{"id":23523,"kind":"modifierInvocation","modifierName":{"id":23522,"name":"onlyWhitelisted","nameLocations":["5722:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"5722:15:83"},"nodeType":"ModifierInvocation","src":"5722:15:83"}],"name":"createProject","nameLocation":"5660:13:83","nodeType":"FunctionDefinition","parameters":{"id":23521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23520,"mutability":"mutable","name":"args","nameLocation":"5707:4:83","nodeType":"VariableDeclaration","scope":23581,"src":"5674:37:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProject_$22033_calldata_ptr","typeString":"struct DataTypes.CreateProject"},"typeName":{"id":23519,"nodeType":"UserDefinedTypeName","pathNode":{"id":23518,"name":"DataTypes.CreateProject","nameLocations":["5674:9:83","5684:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":22033,"src":"5674:23:83"},"referencedDeclaration":22033,"src":"5674:23:83","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProject_$22033_storage_ptr","typeString":"struct DataTypes.CreateProject"}},"visibility":"internal"}],"src":"5673:39:83"},"returnParameters":{"id":23526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23525,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23581,"src":"5747:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23524,"name":"uint256","nodeType":"ElementaryTypeName","src":"5747:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5746:9:83"},"scope":24230,"src":"5651:503:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21735],"body":{"id":23622,"nodeType":"Block","src":"6347:189:83","statements":[{"expression":{"id":23601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":23595,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"6357:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23597,"indexExpression":{"id":23596,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23584,"src":"6367:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6357:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6378:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22043,"src":"6357:32:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23599,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23587,"src":"6392:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_calldata_ptr","typeString":"struct DataTypes.UpdateProject calldata"}},"id":23600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22035,"src":"6392:16:83","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"6357:51:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":23602,"nodeType":"ExpressionStatement","src":"6357:51:83"},{"expression":{"id":23609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":23603,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"6418:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23605,"indexExpression":{"id":23604,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23584,"src":"6428:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6418:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6439:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22046,"src":"6418:27:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23607,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23587,"src":"6448:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_calldata_ptr","typeString":"struct DataTypes.UpdateProject calldata"}},"id":23608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6453:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22038,"src":"6448:11:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"src":"6418:41:83","typeDescriptions":{"typeIdentifier":"t_enum$_ProjectStatus_$22030","typeString":"enum DataTypes.ProjectStatus"}},"id":23610,"nodeType":"ExpressionStatement","src":"6418:41:83"},{"expression":{"arguments":[{"arguments":[{"id":23617,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6512:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6504:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23615,"name":"address","nodeType":"ElementaryTypeName","src":"6504:7:83","typeDescriptions":{}}},"id":23618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6504:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23619,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23584,"src":"6519:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23612,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"6480:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23611,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"6469:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6485:18:83","memberName":"emitProjectUpdated","nodeType":"MemberAccess","referencedDeclaration":21505,"src":"6469:34:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":23620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23621,"nodeType":"ExpressionStatement","src":"6469:60:83"}]},"documentation":{"id":23582,"nodeType":"StructuredDocumentation","src":"6160:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"2565d6c5","id":23623,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23590,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23584,"src":"6320:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23591,"kind":"modifierInvocation","modifierName":{"id":23589,"name":"projectExists","nameLocations":["6306:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"6306:13:83"},"nodeType":"ModifierInvocation","src":"6306:24:83"},{"id":23593,"kind":"modifierInvocation","modifierName":{"id":23592,"name":"onlyWhitelisted","nameLocations":["6331:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"6331:15:83"},"nodeType":"ModifierInvocation","src":"6331:15:83"}],"name":"updateProject","nameLocation":"6203:13:83","nodeType":"FunctionDefinition","parameters":{"id":23588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23584,"mutability":"mutable","name":"projectId","nameLocation":"6234:9:83","nodeType":"VariableDeclaration","scope":23623,"src":"6226:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23583,"name":"uint256","nodeType":"ElementaryTypeName","src":"6226:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23587,"mutability":"mutable","name":"args","nameLocation":"6286:4:83","nodeType":"VariableDeclaration","scope":23623,"src":"6253:37:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_calldata_ptr","typeString":"struct DataTypes.UpdateProject"},"typeName":{"id":23586,"nodeType":"UserDefinedTypeName","pathNode":{"id":23585,"name":"DataTypes.UpdateProject","nameLocations":["6253:9:83","6263:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":22039,"src":"6253:23:83"},"referencedDeclaration":22039,"src":"6253:23:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateProject_$22039_storage_ptr","typeString":"struct DataTypes.UpdateProject"}},"visibility":"internal"}],"src":"6216:80:83"},"returnParameters":{"id":23594,"nodeType":"ParameterList","parameters":[],"src":"6347:0:83"},"scope":24230,"src":"6194:342:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21742],"body":{"id":23656,"nodeType":"Block","src":"6690:145:83","statements":[{"expression":{"arguments":[{"id":23641,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23628,"src":"6733:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23636,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"6700:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23638,"indexExpression":{"id":23637,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23626,"src":"6710:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6700:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6721:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22049,"src":"6700:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6729:3:83","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19711,"src":"6700:32:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:43:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23643,"nodeType":"ExpressionStatement","src":"6700:43:83"},{"expression":{"arguments":[{"arguments":[{"id":23650,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6800:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6792:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23648,"name":"address","nodeType":"ElementaryTypeName","src":"6792:7:83","typeDescriptions":{}}},"id":23651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6792:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23652,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23626,"src":"6807:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23653,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23628,"src":"6818:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23645,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"6764:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23644,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"6753:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6753:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6769:22:83","memberName":"emitProjectMemberAdded","nodeType":"MemberAccess","referencedDeclaration":21514,"src":"6753:38:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":23654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6753:75:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23655,"nodeType":"ExpressionStatement","src":"6753:75:83"}]},"documentation":{"id":23624,"nodeType":"StructuredDocumentation","src":"6542:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"c7ea81fc","id":23657,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23631,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23626,"src":"6663:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23632,"kind":"modifierInvocation","modifierName":{"id":23630,"name":"projectExists","nameLocations":["6649:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"6649:13:83"},"nodeType":"ModifierInvocation","src":"6649:24:83"},{"id":23634,"kind":"modifierInvocation","modifierName":{"id":23633,"name":"onlyWhitelisted","nameLocations":["6674:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"6674:15:83"},"nodeType":"ModifierInvocation","src":"6674:15:83"}],"name":"addProjectMember","nameLocation":"6585:16:83","nodeType":"FunctionDefinition","parameters":{"id":23629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23626,"mutability":"mutable","name":"projectId","nameLocation":"6610:9:83","nodeType":"VariableDeclaration","scope":23657,"src":"6602:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23625,"name":"uint256","nodeType":"ElementaryTypeName","src":"6602:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23628,"mutability":"mutable","name":"profileId","nameLocation":"6629:9:83","nodeType":"VariableDeclaration","scope":23657,"src":"6621:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23627,"name":"uint256","nodeType":"ElementaryTypeName","src":"6621:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:38:83"},"returnParameters":{"id":23635,"nodeType":"ParameterList","parameters":[],"src":"6690:0:83"},"scope":24230,"src":"6576:259:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21749],"body":{"id":23690,"nodeType":"Block","src":"7014:150:83","statements":[{"expression":{"arguments":[{"id":23675,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23662,"src":"7060:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23670,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"7024:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23672,"indexExpression":{"id":23671,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23660,"src":"7034:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7024:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7045:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22049,"src":"7024:28:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7053:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"7024:35:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":23676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7024:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23677,"nodeType":"ExpressionStatement","src":"7024:46:83"},{"expression":{"arguments":[{"arguments":[{"id":23684,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7129:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":23683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7121:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23682,"name":"address","nodeType":"ElementaryTypeName","src":"7121:7:83","typeDescriptions":{}}},"id":23685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7121:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23686,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23660,"src":"7136:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23687,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23662,"src":"7147:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":23679,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"7091:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23678,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"7080:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":23680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":23681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7096:24:83","memberName":"emitProjectMemberRemoved","nodeType":"MemberAccess","referencedDeclaration":21523,"src":"7080:40:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":23688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7080:77:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23689,"nodeType":"ExpressionStatement","src":"7080:77:83"}]},"documentation":{"id":23658,"nodeType":"StructuredDocumentation","src":"6841:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"7d542a4f","id":23691,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23665,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23660,"src":"6987:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23666,"kind":"modifierInvocation","modifierName":{"id":23664,"name":"projectExists","nameLocations":["6973:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"6973:13:83"},"nodeType":"ModifierInvocation","src":"6973:24:83"},{"id":23668,"kind":"modifierInvocation","modifierName":{"id":23667,"name":"onlyWhitelisted","nameLocations":["6998:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"6998:15:83"},"nodeType":"ModifierInvocation","src":"6998:15:83"}],"name":"removeProjectMember","nameLocation":"6884:19:83","nodeType":"FunctionDefinition","parameters":{"id":23663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23660,"mutability":"mutable","name":"projectId","nameLocation":"6921:9:83","nodeType":"VariableDeclaration","scope":23691,"src":"6913:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23659,"name":"uint256","nodeType":"ElementaryTypeName","src":"6913:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23662,"mutability":"mutable","name":"profileId","nameLocation":"6948:9:83","nodeType":"VariableDeclaration","scope":23691,"src":"6940:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23661,"name":"uint256","nodeType":"ElementaryTypeName","src":"6940:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6903:60:83"},"returnParameters":{"id":23669,"nodeType":"ParameterList","parameters":[],"src":"7014:0:83"},"scope":24230,"src":"6875:289:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21756],"body":{"id":23708,"nodeType":"Block","src":"7483:57:83","statements":[{"expression":{"expression":{"expression":{"baseExpression":{"id":23702,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"7500:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23704,"indexExpression":{"id":23703,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"7510:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7500:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7521:5:83","memberName":"tasks","nodeType":"MemberAccess","referencedDeclaration":22052,"src":"7500:26:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":23706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7527:6:83","memberName":"length","nodeType":"MemberAccess","src":"7500:33:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23701,"id":23707,"nodeType":"Return","src":"7493:40:83"}]},"documentation":{"id":23692,"nodeType":"StructuredDocumentation","src":"7351:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"76a79dcc","id":23709,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23697,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"7454:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23698,"kind":"modifierInvocation","modifierName":{"id":23696,"name":"projectExists","nameLocations":["7440:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"7440:13:83"},"nodeType":"ModifierInvocation","src":"7440:24:83"}],"name":"getTaskCount","nameLocation":"7394:12:83","nodeType":"FunctionDefinition","parameters":{"id":23695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23694,"mutability":"mutable","name":"projectId","nameLocation":"7415:9:83","nodeType":"VariableDeclaration","scope":23709,"src":"7407:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23693,"name":"uint256","nodeType":"ElementaryTypeName","src":"7407:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7406:19:83"},"returnParameters":{"id":23701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23709,"src":"7474:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23699,"name":"uint256","nodeType":"ElementaryTypeName","src":"7474:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7473:9:83"},"scope":24230,"src":"7385:155:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21766],"body":{"id":23760,"nodeType":"Block","src":"7728:358:83","statements":[{"assignments":[23724],"declarations":[{"constant":false,"id":23724,"mutability":"mutable","name":"taskId","nameLocation":"7746:6:83","nodeType":"VariableDeclaration","scope":23760,"src":"7738:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23723,"name":"uint256","nodeType":"ElementaryTypeName","src":"7738:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23731,"initialValue":{"baseExpression":{"expression":{"baseExpression":{"id":23725,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"7755:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23727,"indexExpression":{"id":23726,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23712,"src":"7765:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7755:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7776:5:83","memberName":"tasks","nodeType":"MemberAccess","referencedDeclaration":22052,"src":"7755:26:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":23730,"indexExpression":{"id":23729,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23714,"src":"7782:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7755:33:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7738:50:83"},{"assignments":[23736],"declarations":[{"constant":false,"id":23736,"mutability":"mutable","name":"task","nameLocation":"7821:4:83","nodeType":"VariableDeclaration","scope":23760,"src":"7798:27:83","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"},"typeName":{"id":23735,"nodeType":"UserDefinedTypeName","pathNode":{"id":23734,"name":"DataTypes.Task","nameLocations":["7798:9:83","7808:4:83"],"nodeType":"IdentifierPath","referencedDeclaration":22100,"src":"7798:14:83"},"referencedDeclaration":22100,"src":"7798:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"}},"visibility":"internal"}],"id":23740,"initialValue":{"baseExpression":{"id":23737,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"7828:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23739,"indexExpression":{"id":23738,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23724,"src":"7835:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7828:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7798:44:83"},{"assignments":[23745],"declarations":[{"constant":false,"id":23745,"mutability":"mutable","name":"taskView","nameLocation":"7879:8:83","nodeType":"VariableDeclaration","scope":23760,"src":"7853:34:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":23744,"nodeType":"UserDefinedTypeName","pathNode":{"id":23743,"name":"DataTypes.TaskView","nameLocations":["7853:9:83","7863:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"7853:18:83"},"referencedDeclaration":22111,"src":"7853:18:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"id":23757,"initialValue":{"arguments":[{"expression":{"id":23748,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"7927:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7932:2:83","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":22085,"src":"7927:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23750,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"7961:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7966:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22087,"src":"7961:16:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":23752,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"7999:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8004:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22090,"src":"7999:11:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},{"expression":{"id":23754,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23736,"src":"8032:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8037:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22093,"src":"8032:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}],"expression":{"id":23746,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"7890:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7900:8:83","memberName":"TaskView","nodeType":"MemberAccess","referencedDeclaration":22111,"src":"7890:18:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TaskView_$22111_storage_ptr_$","typeString":"type(struct DataTypes.TaskView storage pointer)"}},"id":23756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["7923:2:83","7948:11:83","7991:6:83","8024:6:83"],"names":["id","metadataURI","status","skills"],"nodeType":"FunctionCall","src":"7890:164:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"nodeType":"VariableDeclarationStatement","src":"7853:201:83"},{"expression":{"id":23758,"name":"taskView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23745,"src":"8071:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"functionReturnParameters":23722,"id":23759,"nodeType":"Return","src":"8064:15:83"}]},"documentation":{"id":23710,"nodeType":"StructuredDocumentation","src":"7546:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"52dd4eb1","id":23761,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23717,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23712,"src":"7681:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23718,"kind":"modifierInvocation","modifierName":{"id":23716,"name":"projectExists","nameLocations":["7667:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"7667:13:83"},"nodeType":"ModifierInvocation","src":"7667:24:83"}],"name":"getTask","nameLocation":"7589:7:83","nodeType":"FunctionDefinition","parameters":{"id":23715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23712,"mutability":"mutable","name":"projectId","nameLocation":"7614:9:83","nodeType":"VariableDeclaration","scope":23761,"src":"7606:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23711,"name":"uint256","nodeType":"ElementaryTypeName","src":"7606:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23714,"mutability":"mutable","name":"index","nameLocation":"7641:5:83","nodeType":"VariableDeclaration","scope":23761,"src":"7633:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23713,"name":"uint256","nodeType":"ElementaryTypeName","src":"7633:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7596:56:83"},"returnParameters":{"id":23722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23761,"src":"7701:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":23720,"nodeType":"UserDefinedTypeName","pathNode":{"id":23719,"name":"DataTypes.TaskView","nameLocations":["7701:9:83","7711:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"7701:18:83"},"referencedDeclaration":22111,"src":"7701:18:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"src":"7700:27:83"},"scope":24230,"src":"7580:506:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21774],"body":{"id":23801,"nodeType":"Block","src":"8228:298:83","statements":[{"assignments":[23777],"declarations":[{"constant":false,"id":23777,"mutability":"mutable","name":"task","nameLocation":"8261:4:83","nodeType":"VariableDeclaration","scope":23801,"src":"8238:27:83","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"},"typeName":{"id":23776,"nodeType":"UserDefinedTypeName","pathNode":{"id":23775,"name":"DataTypes.Task","nameLocations":["8238:9:83","8248:4:83"],"nodeType":"IdentifierPath","referencedDeclaration":22100,"src":"8238:14:83"},"referencedDeclaration":22100,"src":"8238:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"}},"visibility":"internal"}],"id":23781,"initialValue":{"baseExpression":{"id":23778,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"8268:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23780,"indexExpression":{"id":23779,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23764,"src":"8275:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8268:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8238:44:83"},{"assignments":[23786],"declarations":[{"constant":false,"id":23786,"mutability":"mutable","name":"taskView","nameLocation":"8319:8:83","nodeType":"VariableDeclaration","scope":23801,"src":"8293:34:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":23785,"nodeType":"UserDefinedTypeName","pathNode":{"id":23784,"name":"DataTypes.TaskView","nameLocations":["8293:9:83","8303:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"8293:18:83"},"referencedDeclaration":22111,"src":"8293:18:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"id":23798,"initialValue":{"arguments":[{"expression":{"id":23789,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23777,"src":"8367:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8372:2:83","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":22085,"src":"8367:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23791,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23777,"src":"8401:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8406:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22087,"src":"8401:16:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":23793,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23777,"src":"8439:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8444:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22090,"src":"8439:11:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},{"expression":{"id":23795,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23777,"src":"8472:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8477:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22093,"src":"8472:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"},{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}],"expression":{"id":23787,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"8330:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8340:8:83","memberName":"TaskView","nodeType":"MemberAccess","referencedDeclaration":22111,"src":"8330:18:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TaskView_$22111_storage_ptr_$","typeString":"type(struct DataTypes.TaskView storage pointer)"}},"id":23797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8363:2:83","8388:11:83","8431:6:83","8464:6:83"],"names":["id","metadataURI","status","skills"],"nodeType":"FunctionCall","src":"8330:164:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"nodeType":"VariableDeclarationStatement","src":"8293:201:83"},{"expression":{"id":23799,"name":"taskView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23786,"src":"8511:8:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView memory"}},"functionReturnParameters":23772,"id":23800,"nodeType":"Return","src":"8504:15:83"}]},"documentation":{"id":23762,"nodeType":"StructuredDocumentation","src":"8092:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"1d65e77e","id":23802,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23767,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23764,"src":"8184:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23768,"kind":"modifierInvocation","modifierName":{"id":23766,"name":"taskExists","nameLocations":["8173:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"8173:10:83"},"nodeType":"ModifierInvocation","src":"8173:18:83"}],"name":"getTask","nameLocation":"8135:7:83","nodeType":"FunctionDefinition","parameters":{"id":23765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23764,"mutability":"mutable","name":"taskId","nameLocation":"8151:6:83","nodeType":"VariableDeclaration","scope":23802,"src":"8143:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23763,"name":"uint256","nodeType":"ElementaryTypeName","src":"8143:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8142:16:83"},"returnParameters":{"id":23772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23802,"src":"8201:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_memory_ptr","typeString":"struct DataTypes.TaskView"},"typeName":{"id":23770,"nodeType":"UserDefinedTypeName","pathNode":{"id":23769,"name":"DataTypes.TaskView","nameLocations":["8201:9:83","8211:8:83"],"nodeType":"IdentifierPath","referencedDeclaration":22111,"src":"8201:18:83"},"referencedDeclaration":22111,"src":"8201:18:83","typeDescriptions":{"typeIdentifier":"t_struct$_TaskView_$22111_storage_ptr","typeString":"struct DataTypes.TaskView"}},"visibility":"internal"}],"src":"8200:27:83"},"scope":24230,"src":"8126:400:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21781],"body":{"id":23820,"nodeType":"Block","src":"8661:55:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":23813,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"8678:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23815,"indexExpression":{"id":23814,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23805,"src":"8685:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8678:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8693:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22096,"src":"8678:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8701:6:83","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":19768,"src":"8678:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":23818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23812,"id":23819,"nodeType":"Return","src":"8671:38:83"}]},"documentation":{"id":23803,"nodeType":"StructuredDocumentation","src":"8532:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"2825ee48","id":23821,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23808,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23805,"src":"8635:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23809,"kind":"modifierInvocation","modifierName":{"id":23807,"name":"taskExists","nameLocations":["8624:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"8624:10:83"},"nodeType":"ModifierInvocation","src":"8624:18:83"}],"name":"getTaskMemberCount","nameLocation":"8575:18:83","nodeType":"FunctionDefinition","parameters":{"id":23806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23805,"mutability":"mutable","name":"taskId","nameLocation":"8602:6:83","nodeType":"VariableDeclaration","scope":23821,"src":"8594:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23804,"name":"uint256","nodeType":"ElementaryTypeName","src":"8594:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8593:16:83"},"returnParameters":{"id":23812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23811,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23821,"src":"8652:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23810,"name":"uint256","nodeType":"ElementaryTypeName","src":"8652:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8651:9:83"},"scope":24230,"src":"8566:150:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21790],"body":{"id":23842,"nodeType":"Block","src":"8861:56:83","statements":[{"expression":{"arguments":[{"id":23839,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23826,"src":"8904:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23834,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"8878:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23836,"indexExpression":{"id":23835,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23824,"src":"8885:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8878:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8893:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22096,"src":"8878:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8901:2:83","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":19789,"src":"8878:25:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":23840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8878:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23833,"id":23841,"nodeType":"Return","src":"8871:39:83"}]},"documentation":{"id":23822,"nodeType":"StructuredDocumentation","src":"8722:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"daf91ffc","id":23843,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23829,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23824,"src":"8835:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23830,"kind":"modifierInvocation","modifierName":{"id":23828,"name":"taskExists","nameLocations":["8824:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"8824:10:83"},"nodeType":"ModifierInvocation","src":"8824:18:83"}],"name":"getTaskMember","nameLocation":"8765:13:83","nodeType":"FunctionDefinition","parameters":{"id":23827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23824,"mutability":"mutable","name":"taskId","nameLocation":"8787:6:83","nodeType":"VariableDeclaration","scope":23843,"src":"8779:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23823,"name":"uint256","nodeType":"ElementaryTypeName","src":"8779:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23826,"mutability":"mutable","name":"index","nameLocation":"8803:5:83","nodeType":"VariableDeclaration","scope":23843,"src":"8795:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23825,"name":"uint256","nodeType":"ElementaryTypeName","src":"8795:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8778:31:83"},"returnParameters":{"id":23833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23843,"src":"8852:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23831,"name":"uint256","nodeType":"ElementaryTypeName","src":"8852:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8851:9:83"},"scope":24230,"src":"8756:161:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21799],"body":{"id":23864,"nodeType":"Block","src":"9060:66:83","statements":[{"expression":{"arguments":[{"id":23861,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23848,"src":"9109:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23856,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"9077:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23858,"indexExpression":{"id":23857,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23846,"src":"9084:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9077:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9092:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22096,"src":"9077:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":23860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9100:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":19753,"src":"9077:31:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":23862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9077:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":23855,"id":23863,"nodeType":"Return","src":"9070:49:83"}]},"documentation":{"id":23844,"nodeType":"StructuredDocumentation","src":"8923:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"ab4fbac3","id":23865,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23851,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23846,"src":"9037:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23852,"kind":"modifierInvocation","modifierName":{"id":23850,"name":"taskExists","nameLocations":["9026:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"9026:10:83"},"nodeType":"ModifierInvocation","src":"9026:18:83"}],"name":"isTaskMember","nameLocation":"8966:12:83","nodeType":"FunctionDefinition","parameters":{"id":23849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23846,"mutability":"mutable","name":"taskId","nameLocation":"8987:6:83","nodeType":"VariableDeclaration","scope":23865,"src":"8979:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23845,"name":"uint256","nodeType":"ElementaryTypeName","src":"8979:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23848,"mutability":"mutable","name":"profileId","nameLocation":"9003:9:83","nodeType":"VariableDeclaration","scope":23865,"src":"8995:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23847,"name":"uint256","nodeType":"ElementaryTypeName","src":"8995:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8978:35:83"},"returnParameters":{"id":23855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23865,"src":"9054:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23853,"name":"bool","nodeType":"ElementaryTypeName","src":"9054:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9053:6:83"},"scope":24230,"src":"8957:169:83","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21806],"body":{"id":23883,"nodeType":"Block","src":"9265:58:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"baseExpression":{"id":23876,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"9282:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23878,"indexExpression":{"id":23877,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"9289:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9282:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9297:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"9282:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":23880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9308:6:83","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":18415,"src":"9282:32:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$18331_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer) view returns (uint256)"}},"id":23881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9282:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23875,"id":23882,"nodeType":"Return","src":"9275:41:83"}]},"documentation":{"id":23866,"nodeType":"StructuredDocumentation","src":"9132:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"ad91a095","id":23884,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23871,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"9239:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23872,"kind":"modifierInvocation","modifierName":{"id":23870,"name":"taskExists","nameLocations":["9228:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"9228:10:83"},"nodeType":"ModifierInvocation","src":"9228:18:83"}],"name":"getTaskLoggedTimeCount","nameLocation":"9175:22:83","nodeType":"FunctionDefinition","parameters":{"id":23869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23868,"mutability":"mutable","name":"taskId","nameLocation":"9206:6:83","nodeType":"VariableDeclaration","scope":23884,"src":"9198:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23867,"name":"uint256","nodeType":"ElementaryTypeName","src":"9198:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9197:16:83"},"returnParameters":{"id":23875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23884,"src":"9256:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23873,"name":"uint256","nodeType":"ElementaryTypeName","src":"9256:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9255:9:83"},"scope":24230,"src":"9166:157:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21817],"body":{"id":23907,"nodeType":"Block","src":"9503:59:83","statements":[{"expression":{"arguments":[{"id":23904,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23889,"src":"9549:5:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23899,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"9520:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23901,"indexExpression":{"id":23900,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23887,"src":"9527:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9520:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9535:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"9520:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":23903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9546:2:83","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":18449,"src":"9520:28:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256) view returns (uint256,uint256)"}},"id":23905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9520:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":23898,"id":23906,"nodeType":"Return","src":"9513:42:83"}]},"documentation":{"id":23885,"nodeType":"StructuredDocumentation","src":"9329:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"07450adc","id":23908,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23892,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23887,"src":"9468:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23893,"kind":"modifierInvocation","modifierName":{"id":23891,"name":"taskExists","nameLocations":["9457:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"9457:10:83"},"nodeType":"ModifierInvocation","src":"9457:18:83"}],"name":"getTaskLoggedTime","nameLocation":"9372:17:83","nodeType":"FunctionDefinition","parameters":{"id":23890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23887,"mutability":"mutable","name":"taskId","nameLocation":"9407:6:83","nodeType":"VariableDeclaration","scope":23908,"src":"9399:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23886,"name":"uint256","nodeType":"ElementaryTypeName","src":"9399:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23889,"mutability":"mutable","name":"index","nameLocation":"9431:5:83","nodeType":"VariableDeclaration","scope":23908,"src":"9423:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23888,"name":"uint256","nodeType":"ElementaryTypeName","src":"9423:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:53:83"},"returnParameters":{"id":23898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23908,"src":"9485:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23894,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23908,"src":"9494:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23896,"name":"uint256","nodeType":"ElementaryTypeName","src":"9494:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9484:18:83"},"scope":24230,"src":"9363:199:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21826],"body":{"id":23929,"nodeType":"Block","src":"9746:64:83","statements":[{"expression":{"arguments":[{"id":23926,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23913,"src":"9793:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23921,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"9763:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23923,"indexExpression":{"id":23922,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23911,"src":"9770:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9763:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9778:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"9763:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":23925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9789:3:83","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":18507,"src":"9763:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256) view returns (uint256)"}},"id":23927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9763:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23920,"id":23928,"nodeType":"Return","src":"9756:47:83"}]},"documentation":{"id":23909,"nodeType":"StructuredDocumentation","src":"9568:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"0e1e20a2","id":23930,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23916,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23911,"src":"9720:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23917,"kind":"modifierInvocation","modifierName":{"id":23915,"name":"taskExists","nameLocations":["9709:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"9709:10:83"},"nodeType":"ModifierInvocation","src":"9709:18:83"}],"name":"getTaskLoggedTimeOfProfile","nameLocation":"9611:26:83","nodeType":"FunctionDefinition","parameters":{"id":23914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23911,"mutability":"mutable","name":"taskId","nameLocation":"9655:6:83","nodeType":"VariableDeclaration","scope":23930,"src":"9647:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23910,"name":"uint256","nodeType":"ElementaryTypeName","src":"9647:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23913,"mutability":"mutable","name":"profileId","nameLocation":"9679:9:83","nodeType":"VariableDeclaration","scope":23930,"src":"9671:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23912,"name":"uint256","nodeType":"ElementaryTypeName","src":"9671:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9637:57:83"},"returnParameters":{"id":23920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23930,"src":"9737:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23918,"name":"uint256","nodeType":"ElementaryTypeName","src":"9737:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9736:9:83"},"scope":24230,"src":"9602:208:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21836],"body":{"id":24015,"nodeType":"Block","src":"10015:452:83","statements":[{"assignments":[23947],"declarations":[{"constant":false,"id":23947,"mutability":"mutable","name":"newTaskId","nameLocation":"10033:9:83","nodeType":"VariableDeclaration","scope":24015,"src":"10025:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23946,"name":"uint256","nodeType":"ElementaryTypeName","src":"10025:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23950,"initialValue":{"expression":{"id":23948,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10045:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10052:6:83","memberName":"length","nodeType":"MemberAccess","src":"10045:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10025:33:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23951,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10068:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10075:4:83","memberName":"push","nodeType":"MemberAccess","src":"10068:11:83","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Task_$22100_storage_$dyn_storage_ptr_$returns$_t_struct$_Task_$22100_storage_$bound_to$_t_array$_t_struct$_Task_$22100_storage_$dyn_storage_ptr_$","typeString":"function (struct DataTypes.Task storage ref[] storage pointer) returns (struct DataTypes.Task storage ref)"}},"id":23954,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10068:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":23955,"nodeType":"ExpressionStatement","src":"10068:13:83"},{"assignments":[23960],"declarations":[{"constant":false,"id":23960,"mutability":"mutable","name":"task","nameLocation":"10114:4:83","nodeType":"VariableDeclaration","scope":24015,"src":"10091:27:83","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"},"typeName":{"id":23959,"nodeType":"UserDefinedTypeName","pathNode":{"id":23958,"name":"DataTypes.Task","nameLocations":["10091:9:83","10101:4:83"],"nodeType":"IdentifierPath","referencedDeclaration":22100,"src":"10091:14:83"},"referencedDeclaration":22100,"src":"10091:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task"}},"visibility":"internal"}],"id":23964,"initialValue":{"baseExpression":{"id":23961,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10121:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":23963,"indexExpression":{"id":23962,"name":"newTaskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23947,"src":"10128:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10121:17:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10091:47:83"},{"expression":{"id":23969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23965,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23960,"src":"10148:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10153:2:83","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":22085,"src":"10148:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23968,"name":"newTaskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23947,"src":"10158:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10148:19:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23970,"nodeType":"ExpressionStatement","src":"10148:19:83"},{"expression":{"id":23976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23971,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23960,"src":"10177:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10182:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22087,"src":"10177:16:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23974,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23936,"src":"10196:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_calldata_ptr","typeString":"struct DataTypes.CreateTask calldata"}},"id":23975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10201:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22070,"src":"10196:16:83","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"10177:35:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":23977,"nodeType":"ExpressionStatement","src":"10177:35:83"},{"expression":{"id":23984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23978,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23960,"src":"10222:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10227:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22090,"src":"10222:11:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":23981,"name":"DataTypes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22123,"src":"10236:9:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DataTypes_$22123_$","typeString":"type(library DataTypes)"}},"id":23982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10246:10:83","memberName":"TaskStatus","nodeType":"MemberAccess","referencedDeclaration":22068,"src":"10236:20:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_TaskStatus_$22068_$","typeString":"type(enum DataTypes.TaskStatus)"}},"id":23983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10257:11:83","memberName":"NOT_STARTED","nodeType":"MemberAccess","referencedDeclaration":22064,"src":"10236:32:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"src":"10222:46:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"id":23985,"nodeType":"ExpressionStatement","src":"10222:46:83"},{"expression":{"id":23991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":23986,"name":"task","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23960,"src":"10278:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage_ptr","typeString":"struct DataTypes.Task storage pointer"}},"id":23988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10283:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22093,"src":"10278:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23989,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23936,"src":"10292:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_calldata_ptr","typeString":"struct DataTypes.CreateTask calldata"}},"id":23990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10297:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22073,"src":"10292:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"src":"10278:25:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":23992,"nodeType":"ExpressionStatement","src":"10278:25:83"},{"expression":{"arguments":[{"id":23998,"name":"newTaskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23947,"src":"10346:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":23993,"name":"_projects","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23074,"src":"10314:9:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Project_$22053_storage_$dyn_storage","typeString":"struct DataTypes.Project storage ref[] storage ref"}},"id":23995,"indexExpression":{"id":23994,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23933,"src":"10324:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10314:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_Project_$22053_storage","typeString":"struct DataTypes.Project storage ref"}},"id":23996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10335:5:83","memberName":"tasks","nodeType":"MemberAccess","referencedDeclaration":22052,"src":"10314:26:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":23997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10341:4:83","memberName":"push","nodeType":"MemberAccess","src":"10314:31:83","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":23999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10314:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24000,"nodeType":"ExpressionStatement","src":"10314:42:83"},{"expression":{"arguments":[{"arguments":[{"id":24007,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10406:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":24006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10398:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24005,"name":"address","nodeType":"ElementaryTypeName","src":"10398:7:83","typeDescriptions":{}}},"id":24008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10398:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24009,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23933,"src":"10413:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24010,"name":"newTaskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23947,"src":"10424:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":24002,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"10377:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24001,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"10366:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":24003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10366:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":24004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10382:15:83","memberName":"emitTaskCreated","nodeType":"MemberAccess","referencedDeclaration":21532,"src":"10366:31:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":24011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10366:68:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24012,"nodeType":"ExpressionStatement","src":"10366:68:83"},{"expression":{"id":24013,"name":"newTaskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23947,"src":"10451:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23945,"id":24014,"nodeType":"Return","src":"10444:16:83"}]},"documentation":{"id":23931,"nodeType":"StructuredDocumentation","src":"9816:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"afcefa71","id":24016,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23939,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23933,"src":"9970:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23940,"kind":"modifierInvocation","modifierName":{"id":23938,"name":"projectExists","nameLocations":["9956:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":23114,"src":"9956:13:83"},"nodeType":"ModifierInvocation","src":"9956:24:83"},{"id":23942,"kind":"modifierInvocation","modifierName":{"id":23941,"name":"onlyWhitelisted","nameLocations":["9981:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"9981:15:83"},"nodeType":"ModifierInvocation","src":"9981:15:83"}],"name":"createTask","nameLocation":"9859:10:83","nodeType":"FunctionDefinition","parameters":{"id":23937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23933,"mutability":"mutable","name":"projectId","nameLocation":"9887:9:83","nodeType":"VariableDeclaration","scope":24016,"src":"9879:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23932,"name":"uint256","nodeType":"ElementaryTypeName","src":"9879:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23936,"mutability":"mutable","name":"args","nameLocation":"9936:4:83","nodeType":"VariableDeclaration","scope":24016,"src":"9906:34:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_calldata_ptr","typeString":"struct DataTypes.CreateTask"},"typeName":{"id":23935,"nodeType":"UserDefinedTypeName","pathNode":{"id":23934,"name":"DataTypes.CreateTask","nameLocations":["9906:9:83","9916:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":22074,"src":"9906:20:83"},"referencedDeclaration":22074,"src":"9906:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_CreateTask_$22074_storage_ptr","typeString":"struct DataTypes.CreateTask"}},"visibility":"internal"}],"src":"9869:77:83"},"returnParameters":{"id":23945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24016,"src":"10006:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10006:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10005:9:83"},"scope":24230,"src":"9850:617:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21844],"body":{"id":24068,"nodeType":"Block","src":"10670:216:83","statements":[{"expression":{"id":24039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":24033,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10680:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24035,"indexExpression":{"id":24034,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10687:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10680:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10695:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22087,"src":"10680:26:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24037,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"10709:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_calldata_ptr","typeString":"struct DataTypes.UpdateTask calldata"}},"id":24038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10714:11:83","memberName":"metadataURI","nodeType":"MemberAccess","referencedDeclaration":22076,"src":"10709:16:83","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"10680:45:83","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24040,"nodeType":"ExpressionStatement","src":"10680:45:83"},{"expression":{"id":24047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":24041,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10735:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24043,"indexExpression":{"id":24042,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10742:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10735:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10750:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22090,"src":"10735:21:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24045,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"10759:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_calldata_ptr","typeString":"struct DataTypes.UpdateTask calldata"}},"id":24046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10764:6:83","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":22079,"src":"10759:11:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"src":"10735:35:83","typeDescriptions":{"typeIdentifier":"t_enum$_TaskStatus_$22068","typeString":"enum DataTypes.TaskStatus"}},"id":24048,"nodeType":"ExpressionStatement","src":"10735:35:83"},{"expression":{"id":24055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":24049,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"10780:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24051,"indexExpression":{"id":24050,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10787:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10780:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10795:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22093,"src":"10780:21:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24053,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"10804:4:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_calldata_ptr","typeString":"struct DataTypes.UpdateTask calldata"}},"id":24054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10809:6:83","memberName":"skills","nodeType":"MemberAccess","referencedDeclaration":22082,"src":"10804:11:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"src":"10780:35:83","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":24056,"nodeType":"ExpressionStatement","src":"10780:35:83"},{"expression":{"arguments":[{"arguments":[{"id":24063,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10865:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":24062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10857:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24061,"name":"address","nodeType":"ElementaryTypeName","src":"10857:7:83","typeDescriptions":{}}},"id":24064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10857:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24065,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10872:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":24058,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"10836:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24057,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"10825:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":24059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10825:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":24060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10841:15:83","memberName":"emitTaskUpdated","nodeType":"MemberAccess","referencedDeclaration":21539,"src":"10825:31:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":24066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10825:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24067,"nodeType":"ExpressionStatement","src":"10825:54:83"}]},"documentation":{"id":24017,"nodeType":"StructuredDocumentation","src":"10473:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"2a10fb85","id":24069,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":24025,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10621:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24026,"kind":"modifierInvocation","modifierName":{"id":24024,"name":"taskExists","nameLocations":["10610:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"10610:10:83"},"nodeType":"ModifierInvocation","src":"10610:18:83"},{"arguments":[{"id":24028,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24019,"src":"10646:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24029,"kind":"modifierInvocation","modifierName":{"id":24027,"name":"taskNotCompleted","nameLocations":["10629:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":23098,"src":"10629:16:83"},"nodeType":"ModifierInvocation","src":"10629:24:83"},{"id":24031,"kind":"modifierInvocation","modifierName":{"id":24030,"name":"onlyWhitelisted","nameLocations":["10654:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"10654:15:83"},"nodeType":"ModifierInvocation","src":"10654:15:83"}],"name":"updateTask","nameLocation":"10516:10:83","nodeType":"FunctionDefinition","parameters":{"id":24023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24019,"mutability":"mutable","name":"taskId","nameLocation":"10544:6:83","nodeType":"VariableDeclaration","scope":24069,"src":"10536:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24018,"name":"uint256","nodeType":"ElementaryTypeName","src":"10536:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24022,"mutability":"mutable","name":"args","nameLocation":"10590:4:83","nodeType":"VariableDeclaration","scope":24069,"src":"10560:34:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_calldata_ptr","typeString":"struct DataTypes.UpdateTask"},"typeName":{"id":24021,"nodeType":"UserDefinedTypeName","pathNode":{"id":24020,"name":"DataTypes.UpdateTask","nameLocations":["10560:9:83","10570:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":22083,"src":"10560:20:83"},"referencedDeclaration":22083,"src":"10560:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_UpdateTask_$22083_storage_ptr","typeString":"struct DataTypes.UpdateTask"}},"visibility":"internal"}],"src":"10526:74:83"},"returnParameters":{"id":24032,"nodeType":"ParameterList","parameters":[],"src":"10670:0:83"},"scope":24230,"src":"10507:379:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21851],"body":{"id":24105,"nodeType":"Block","src":"11075:133:83","statements":[{"expression":{"arguments":[{"id":24090,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24074,"src":"11112:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24085,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"11085:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24087,"indexExpression":{"id":24086,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24072,"src":"11092:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11085:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22096,"src":"11085:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":24089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11108:3:83","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":19711,"src":"11085:26:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":24091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11085:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24092,"nodeType":"ExpressionStatement","src":"11085:37:83"},{"expression":{"arguments":[{"arguments":[{"id":24099,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11176:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":24098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11168:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24097,"name":"address","nodeType":"ElementaryTypeName","src":"11168:7:83","typeDescriptions":{}}},"id":24100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11168:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24101,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24072,"src":"11183:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24102,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24074,"src":"11191:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":24094,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"11143:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24093,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"11132:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":24095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11132:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":24096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11148:19:83","memberName":"emitTaskMemberAdded","nodeType":"MemberAccess","referencedDeclaration":21548,"src":"11132:35:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":24103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11132:69:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24104,"nodeType":"ExpressionStatement","src":"11132:69:83"}]},"documentation":{"id":24070,"nodeType":"StructuredDocumentation","src":"10892:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"1599bea5","id":24106,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":24077,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24072,"src":"11026:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24078,"kind":"modifierInvocation","modifierName":{"id":24076,"name":"taskExists","nameLocations":["11015:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"11015:10:83"},"nodeType":"ModifierInvocation","src":"11015:18:83"},{"arguments":[{"id":24080,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24072,"src":"11051:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24081,"kind":"modifierInvocation","modifierName":{"id":24079,"name":"taskNotCompleted","nameLocations":["11034:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":23098,"src":"11034:16:83"},"nodeType":"ModifierInvocation","src":"11034:24:83"},{"id":24083,"kind":"modifierInvocation","modifierName":{"id":24082,"name":"onlyWhitelisted","nameLocations":["11059:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"11059:15:83"},"nodeType":"ModifierInvocation","src":"11059:15:83"}],"name":"addTaskMember","nameLocation":"10935:13:83","nodeType":"FunctionDefinition","parameters":{"id":24075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24072,"mutability":"mutable","name":"taskId","nameLocation":"10966:6:83","nodeType":"VariableDeclaration","scope":24106,"src":"10958:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24071,"name":"uint256","nodeType":"ElementaryTypeName","src":"10958:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24074,"mutability":"mutable","name":"profileId","nameLocation":"10990:9:83","nodeType":"VariableDeclaration","scope":24106,"src":"10982:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24073,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10948:57:83"},"returnParameters":{"id":24084,"nodeType":"ParameterList","parameters":[],"src":"11075:0:83"},"scope":24230,"src":"10926:282:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21858],"body":{"id":24142,"nodeType":"Block","src":"11400:138:83","statements":[{"expression":{"arguments":[{"id":24127,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"11440:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24122,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"11410:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24124,"indexExpression":{"id":24123,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"11417:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11410:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11425:7:83","memberName":"members","nodeType":"MemberAccess","referencedDeclaration":22096,"src":"11410:22:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$19690_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},"id":24126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11433:6:83","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":19732,"src":"11410:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$19690_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$19690_storage_ptr_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":24128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11410:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24129,"nodeType":"ExpressionStatement","src":"11410:40:83"},{"expression":{"arguments":[{"arguments":[{"id":24136,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11506:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}],"id":24135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11498:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24134,"name":"address","nodeType":"ElementaryTypeName","src":"11498:7:83","typeDescriptions":{}}},"id":24137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11498:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24138,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"11513:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24139,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24111,"src":"11521:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":24131,"name":"HUB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21019,"src":"11471:3:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24130,"name":"IMy3SecHub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21558,"src":"11460:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMy3SecHub_$21558_$","typeString":"type(contract IMy3SecHub)"}},"id":24132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11460:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMy3SecHub_$21558","typeString":"contract IMy3SecHub"}},"id":24133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11476:21:83","memberName":"emitTaskMemberRemoved","nodeType":"MemberAccess","referencedDeclaration":21557,"src":"11460:37:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) external"}},"id":24140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11460:71:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24141,"nodeType":"ExpressionStatement","src":"11460:71:83"}]},"documentation":{"id":24107,"nodeType":"StructuredDocumentation","src":"11214:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"3e2de334","id":24143,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":24114,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"11351:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24115,"kind":"modifierInvocation","modifierName":{"id":24113,"name":"taskExists","nameLocations":["11340:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"11340:10:83"},"nodeType":"ModifierInvocation","src":"11340:18:83"},{"arguments":[{"id":24117,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"11376:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24118,"kind":"modifierInvocation","modifierName":{"id":24116,"name":"taskNotCompleted","nameLocations":["11359:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":23098,"src":"11359:16:83"},"nodeType":"ModifierInvocation","src":"11359:24:83"},{"id":24120,"kind":"modifierInvocation","modifierName":{"id":24119,"name":"onlyWhitelisted","nameLocations":["11384:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":21154,"src":"11384:15:83"},"nodeType":"ModifierInvocation","src":"11384:15:83"}],"name":"removeTaskMember","nameLocation":"11257:16:83","nodeType":"FunctionDefinition","parameters":{"id":24112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24109,"mutability":"mutable","name":"taskId","nameLocation":"11291:6:83","nodeType":"VariableDeclaration","scope":24143,"src":"11283:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24108,"name":"uint256","nodeType":"ElementaryTypeName","src":"11283:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24111,"mutability":"mutable","name":"profileId","nameLocation":"11315:9:83","nodeType":"VariableDeclaration","scope":24143,"src":"11307:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24110,"name":"uint256","nodeType":"ElementaryTypeName","src":"11307:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11273:57:83"},"returnParameters":{"id":24121,"nodeType":"ParameterList","parameters":[],"src":"11400:0:83"},"scope":24230,"src":"11248:290:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21867],"body":{"id":24213,"nodeType":"Block","src":"11742:380:83","statements":[{"condition":{"id":24165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11756:32:83","subExpression":{"arguments":[{"id":24162,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11770:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24163,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24146,"src":"11778:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24161,"name":"isTaskMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23865,"src":"11757:12:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":24164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11757:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24171,"nodeType":"IfStatement","src":"11752:63:83","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24166,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"11797:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":24168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11804:9:83","memberName":"NotMember","nodeType":"MemberAccess","referencedDeclaration":22149,"src":"11797:16:83","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":24169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11797:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24170,"nodeType":"RevertStatement","src":"11790:25:83"}},{"condition":{"id":24179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11830:46:83","subExpression":{"arguments":[{"id":24177,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24146,"src":"11866:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24172,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"11831:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24174,"indexExpression":{"id":24173,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11838:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11831:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11846:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"11831:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":24176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11857:8:83","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":18400,"src":"11831:34:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256) view returns (bool)"}},"id":24178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11831:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":24211,"nodeType":"Block","src":"11955:161:83","statements":[{"assignments":[24191],"declarations":[{"constant":false,"id":24191,"mutability":"mutable","name":"currentTime","nameLocation":"11977:11:83","nodeType":"VariableDeclaration","scope":24211,"src":"11969:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24190,"name":"uint256","nodeType":"ElementaryTypeName","src":"11969:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24199,"initialValue":{"arguments":[{"id":24197,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24146,"src":"12021:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24192,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"11991:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24194,"indexExpression":{"id":24193,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11998:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11991:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12006:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"11991:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":24196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12017:3:83","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":18507,"src":"11991:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256) view returns (uint256)"}},"id":24198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11969:62:83"},{"expression":{"arguments":[{"id":24205,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24146,"src":"12075:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24206,"name":"currentTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24191,"src":"12086:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":24207,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24150,"src":"12100:4:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12086:18:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24200,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"12045:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24202,"indexExpression":{"id":24201,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"12052:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12045:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12060:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"12045:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":24204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12071:3:83","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":18358,"src":"12045:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12045:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24210,"nodeType":"ExpressionStatement","src":"12045:60:83"}]},"id":24212,"nodeType":"IfStatement","src":"11826:290:83","trueBody":{"id":24189,"nodeType":"Block","src":"11878:71:83","statements":[{"expression":{"arguments":[{"id":24185,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24146,"src":"11922:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24186,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24150,"src":"11933:4:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"id":24180,"name":"_tasks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23078,"src":"11892:6:83","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Task_$22100_storage_$dyn_storage","typeString":"struct DataTypes.Task storage ref[] storage ref"}},"id":24182,"indexExpression":{"id":24181,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11899:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11892:14:83","typeDescriptions":{"typeIdentifier":"t_struct$_Task_$22100_storage","typeString":"struct DataTypes.Task storage ref"}},"id":24183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11907:10:83","memberName":"loggedTime","nodeType":"MemberAccess","referencedDeclaration":22099,"src":"11892:25:83","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$18331_storage","typeString":"struct EnumerableMap.UintToUintMap storage ref"}},"id":24184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11918:3:83","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":18358,"src":"11892:29:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$18331_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$18331_storage_ptr_$","typeString":"function (struct EnumerableMap.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11892:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24188,"nodeType":"ExpressionStatement","src":"11892:46:83"}]}}]},"documentation":{"id":24144,"nodeType":"StructuredDocumentation","src":"11544:29:83","text":"@inheritdoc IOrganization"},"functionSelector":"6989fd6b","id":24214,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":24153,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11701:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24154,"kind":"modifierInvocation","modifierName":{"id":24152,"name":"taskExists","nameLocations":["11690:10:83"],"nodeType":"IdentifierPath","referencedDeclaration":23130,"src":"11690:10:83"},"nodeType":"ModifierInvocation","src":"11690:18:83"},{"arguments":[{"id":24156,"name":"taskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24148,"src":"11726:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":24157,"kind":"modifierInvocation","modifierName":{"id":24155,"name":"taskNotCompleted","nameLocations":["11709:16:83"],"nodeType":"IdentifierPath","referencedDeclaration":23098,"src":"11709:16:83"},"nodeType":"ModifierInvocation","src":"11709:24:83"},{"id":24159,"kind":"modifierInvocation","modifierName":{"id":24158,"name":"onlyHub","nameLocations":["11734:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":21033,"src":"11734:7:83"},"nodeType":"ModifierInvocation","src":"11734:7:83"}],"name":"updateTaskTime","nameLocation":"11587:14:83","nodeType":"FunctionDefinition","parameters":{"id":24151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24146,"mutability":"mutable","name":"profileId","nameLocation":"11619:9:83","nodeType":"VariableDeclaration","scope":24214,"src":"11611:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24145,"name":"uint256","nodeType":"ElementaryTypeName","src":"11611:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24148,"mutability":"mutable","name":"taskId","nameLocation":"11646:6:83","nodeType":"VariableDeclaration","scope":24214,"src":"11638:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24147,"name":"uint256","nodeType":"ElementaryTypeName","src":"11638:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24150,"mutability":"mutable","name":"time","nameLocation":"11670:4:83","nodeType":"VariableDeclaration","scope":24214,"src":"11662:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24149,"name":"uint256","nodeType":"ElementaryTypeName","src":"11662:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:79:83"},"returnParameters":{"id":24160,"nodeType":"ParameterList","parameters":[],"src":"11742:0:83"},"scope":24230,"src":"11578:544:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5619,21872],"body":{"id":24228,"nodeType":"Block","src":"12399:50:83","statements":[{"expression":{"arguments":[{"id":24225,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24216,"src":"12433:8:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24222,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"12409:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Organization_$24230_$","typeString":"type(contract super Organization)"}},"id":24224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12415:17:83","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":5619,"src":"12409:23:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":24226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12409:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24227,"nodeType":"ExpressionStatement","src":"12409:33:83"}]},"functionSelector":"f2fde38b","id":24229,"implemented":true,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"12323:17:83","nodeType":"FunctionDefinition","overrides":{"id":24220,"nodeType":"OverrideSpecifier","overrides":[{"id":24218,"name":"IOrganization","nameLocations":["12375:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"12375:13:83"},{"id":24219,"name":"Ownable","nameLocations":["12390:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":5640,"src":"12390:7:83"}],"src":"12366:32:83"},"parameters":{"id":24217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24216,"mutability":"mutable","name":"newOwner","nameLocation":"12349:8:83","nodeType":"VariableDeclaration","scope":24229,"src":"12341:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24215,"name":"address","nodeType":"ElementaryTypeName","src":"12341:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12340:18:83"},"returnParameters":{"id":24221,"nodeType":"ParameterList","parameters":[],"src":"12399:0:83"},"scope":24230,"src":"12314:135:83","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":24231,"src":"504:11947:83","usedErrors":[22131,22133,22137,22141,22147,22149,22151,22159]}],"src":"32:12420:83"},"id":83},"contracts/organizations/OrganizationFactory.sol":{"ast":{"absolutePath":"contracts/organizations/OrganizationFactory.sol","exportedSymbols":{"Context":[14324],"DataTypes":[22123],"EnumerableMap":[19207],"EnumerableSet":[19820],"Errors":[22162],"Events":[22299],"HubControllable":[21056],"IMy3SecHub":[21558],"IOrganization":[21873],"IWhitelistable":[21986],"Organization":[24230],"OrganizationFactory":[24267],"Ownable":[5640],"Whitelistable":[21219]},"id":24268,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24232,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:84"},{"absolutePath":"contracts/common/interfaces/IOrganization.sol","file":"../common/interfaces/IOrganization.sol","id":24233,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24268,"sourceUnit":21874,"src":"57:48:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/organizations/Organization.sol","file":"../organizations/Organization.sol","id":24234,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24268,"sourceUnit":24231,"src":"107:43:84","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"OrganizationFactory","contractDependencies":[24230],"contractKind":"contract","fullyImplemented":true,"id":24267,"linearizedBaseContracts":[24267],"name":"OrganizationFactory","nameLocation":"161:19:84","nodeType":"ContractDefinition","nodes":[{"body":{"id":24265,"nodeType":"Block","src":"284:170:84","statements":[{"assignments":[24245],"declarations":[{"constant":false,"id":24245,"mutability":"mutable","name":"organization","nameLocation":"308:12:84","nodeType":"VariableDeclaration","scope":24265,"src":"294:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"},"typeName":{"id":24244,"nodeType":"UserDefinedTypeName","pathNode":{"id":24243,"name":"IOrganization","nameLocations":["294:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":21873,"src":"294:13:84"},"referencedDeclaration":21873,"src":"294:13:84","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"visibility":"internal"}],"id":24252,"initialValue":{"arguments":[{"id":24249,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24236,"src":"340:3:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24250,"name":"metadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24238,"src":"345:11:84","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":24248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"323:16:84","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$returns$_t_contract$_Organization_$24230_$","typeString":"function (address,string memory) returns (contract Organization)"},"typeName":{"id":24247,"nodeType":"UserDefinedTypeName","pathNode":{"id":24246,"name":"Organization","nameLocations":["327:12:84"],"nodeType":"IdentifierPath","referencedDeclaration":24230,"src":"327:12:84"},"referencedDeclaration":24230,"src":"327:12:84","typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}}},"id":24251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"323:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Organization_$24230","typeString":"contract Organization"}},"nodeType":"VariableDeclarationStatement","src":"294:63:84"},{"expression":{"arguments":[{"expression":{"id":24256,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"398:3:84","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":24257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"402:6:84","memberName":"sender","nodeType":"MemberAccess","src":"398:10:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24253,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24245,"src":"367:12:84","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}},"id":24255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"380:17:84","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":21872,"src":"367:30:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":24258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"367:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24259,"nodeType":"ExpressionStatement","src":"367:42:84"},{"expression":{"arguments":[{"id":24262,"name":"organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24245,"src":"434:12:84","typeDescriptions":{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOrganization_$21873","typeString":"contract IOrganization"}],"id":24261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"426:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24260,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:84","typeDescriptions":{}}},"id":24263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":24242,"id":24264,"nodeType":"Return","src":"419:28:84"}]},"functionSelector":"d8ecd925","id":24266,"implemented":true,"kind":"function","modifiers":[],"name":"createOrganization","nameLocation":"196:18:84","nodeType":"FunctionDefinition","parameters":{"id":24239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24236,"mutability":"mutable","name":"hub","nameLocation":"223:3:84","nodeType":"VariableDeclaration","scope":24266,"src":"215:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24235,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24238,"mutability":"mutable","name":"metadataURI","nameLocation":"244:11:84","nodeType":"VariableDeclaration","scope":24266,"src":"228:27:84","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":24237,"name":"string","nodeType":"ElementaryTypeName","src":"228:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"214:42:84"},"returnParameters":{"id":24242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24241,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24266,"src":"275:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24240,"name":"address","nodeType":"ElementaryTypeName","src":"275:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"274:9:84"},"scope":24267,"src":"187:267:84","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24268,"src":"152:304:84","usedErrors":[]}],"src":"32:425:84"},"id":84},"contracts/profiles/EnergyWallet.sol":{"ast":{"absolutePath":"contracts/profiles/EnergyWallet.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"EnergyWallet":[24650],"EnumerableMapUpgradeable":[4525],"EnumerableSetUpgradeable":[5138],"Errors":[22162],"HubControllableUpgradeable":[21121],"IEnergyWallet":[21338],"Initializable":[300],"OwnableUpgradeable":[131]},"id":24651,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24269,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:85"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol","id":24270,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24651,"sourceUnit":4526,"src":"57:88:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/HubControllableUpgradeable.sol","file":"../common/access/HubControllableUpgradeable.sol","id":24271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24651,"sourceUnit":21122,"src":"147:57:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IEnergyWallet.sol","file":"../common/interfaces/IEnergyWallet.sol","id":24272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24651,"sourceUnit":21339,"src":"205:48:85","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24274,"name":"IEnergyWallet","nameLocations":["377:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":21338,"src":"377:13:85"},"id":24275,"nodeType":"InheritanceSpecifier","src":"377:13:85"},{"baseName":{"id":24276,"name":"HubControllableUpgradeable","nameLocations":["392:26:85"],"nodeType":"IdentifierPath","referencedDeclaration":21121,"src":"392:26:85"},"id":24277,"nodeType":"InheritanceSpecifier","src":"392:26:85"}],"canonicalName":"EnergyWallet","contractDependencies":[],"contractKind":"contract","documentation":{"id":24273,"nodeType":"StructuredDocumentation","src":"255:96:85","text":" @title EnergyWallet contract\n @dev This is the implementation of the Energy Wallet."},"fullyImplemented":true,"id":24650,"linearizedBaseContracts":[24650,21121,131,2307,300,21338],"name":"EnergyWallet","nameLocation":"361:12:85","nodeType":"ContractDefinition","nodes":[{"global":false,"id":24281,"libraryName":{"id":24278,"name":"EnumerableMapUpgradeable","nameLocations":["431:24:85"],"nodeType":"IdentifierPath","referencedDeclaration":4525,"src":"431:24:85"},"nodeType":"UsingForDirective","src":"425:74:85","typeName":{"id":24280,"nodeType":"UserDefinedTypeName","pathNode":{"id":24279,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["460:24:85","485:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"460:38:85"},"referencedDeclaration":3649,"src":"460:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}}},{"constant":false,"id":24285,"mutability":"mutable","name":"_totalEnergy","nameLocation":"541:12:85","nodeType":"VariableDeclaration","scope":24650,"src":"505:48:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":24284,"keyType":{"id":24282,"name":"uint256","nodeType":"ElementaryTypeName","src":"513:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"505:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":24283,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":24289,"mutability":"mutable","name":"_allocatedEnergy","nameLocation":"595:16:85","nodeType":"VariableDeclaration","scope":24650,"src":"559:52:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":24288,"keyType":{"id":24286,"name":"uint256","nodeType":"ElementaryTypeName","src":"567:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"559:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":24287,"name":"uint256","nodeType":"ElementaryTypeName","src":"578:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":24293,"mutability":"mutable","name":"_receivedEnergy","nameLocation":"653:15:85","nodeType":"VariableDeclaration","scope":24650,"src":"617:51:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":24292,"keyType":{"id":24290,"name":"uint256","nodeType":"ElementaryTypeName","src":"625:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"617:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":24291,"name":"uint256","nodeType":"ElementaryTypeName","src":"636:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":24298,"mutability":"mutable","name":"_energyAllocationMap","nameLocation":"741:20:85","nodeType":"VariableDeclaration","scope":24650,"src":"674:87:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"typeName":{"id":24297,"keyType":{"id":24294,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"674:58:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"valueType":{"id":24296,"nodeType":"UserDefinedTypeName","pathNode":{"id":24295,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["693:24:85","718:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"693:38:85"},"referencedDeclaration":3649,"src":"693:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}}},"visibility":"private"},{"constant":false,"id":24303,"mutability":"mutable","name":"_reverseEnergyAllocationMap","nameLocation":"834:27:85","nodeType":"VariableDeclaration","scope":24650,"src":"767:94:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"typeName":{"id":24302,"keyType":{"id":24299,"name":"uint256","nodeType":"ElementaryTypeName","src":"775:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"767:58:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"valueType":{"id":24301,"nodeType":"UserDefinedTypeName","pathNode":{"id":24300,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["786:24:85","811:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"786:38:85"},"referencedDeclaration":3649,"src":"786:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}}},"visibility":"private"},{"body":{"id":24314,"nodeType":"Block","src":"920:44:85","statements":[{"expression":{"arguments":[{"id":24311,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24305,"src":"953:3:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24310,"name":"__HubControllable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"930:22:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":24312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24313,"nodeType":"ExpressionStatement","src":"930:27:85"}]},"functionSelector":"c4d66de8","id":24315,"implemented":true,"kind":"function","modifiers":[{"id":24308,"kind":"modifierInvocation","modifierName":{"id":24307,"name":"initializer","nameLocations":["908:11:85"],"nodeType":"IdentifierPath","referencedDeclaration":202,"src":"908:11:85"},"nodeType":"ModifierInvocation","src":"908:11:85"}],"name":"initialize","nameLocation":"877:10:85","nodeType":"FunctionDefinition","parameters":{"id":24306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24305,"mutability":"mutable","name":"hub","nameLocation":"896:3:85","nodeType":"VariableDeclaration","scope":24315,"src":"888:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24304,"name":"address","nodeType":"ElementaryTypeName","src":"888:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:13:85"},"returnParameters":{"id":24309,"nodeType":"ParameterList","parameters":[],"src":"920:0:85"},"scope":24650,"src":"868:96:85","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21248],"body":{"id":24328,"nodeType":"Block","src":"1087:47:85","statements":[{"expression":{"baseExpression":{"id":24324,"name":"_totalEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24285,"src":"1104:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24326,"indexExpression":{"id":24325,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24318,"src":"1117:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1104:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24323,"id":24327,"nodeType":"Return","src":"1097:30:85"}]},"documentation":{"id":24316,"nodeType":"StructuredDocumentation","src":"970:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"540e3199","id":24329,"implemented":true,"kind":"function","modifiers":[],"name":"totalEnergyOf","nameLocation":"1013:13:85","nodeType":"FunctionDefinition","overrides":{"id":24320,"nodeType":"OverrideSpecifier","overrides":[],"src":"1060:8:85"},"parameters":{"id":24319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24318,"mutability":"mutable","name":"profileId","nameLocation":"1035:9:85","nodeType":"VariableDeclaration","scope":24329,"src":"1027:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24317,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1026:19:85"},"returnParameters":{"id":24323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24329,"src":"1078:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24321,"name":"uint256","nodeType":"ElementaryTypeName","src":"1078:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1077:9:85"},"scope":24650,"src":"1004:130:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21255],"body":{"id":24346,"nodeType":"Block","src":"1254:77:85","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24338,"name":"_totalEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24285,"src":"1271:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24340,"indexExpression":{"id":24339,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24332,"src":"1284:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1271:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"id":24341,"name":"_allocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24289,"src":"1297:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24343,"indexExpression":{"id":24342,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24332,"src":"1314:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1297:27:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1271:53:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24337,"id":24345,"nodeType":"Return","src":"1264:60:85"}]},"documentation":{"id":24330,"nodeType":"StructuredDocumentation","src":"1140:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"ea6866ad","id":24347,"implemented":true,"kind":"function","modifiers":[],"name":"freeEnergyOf","nameLocation":"1183:12:85","nodeType":"FunctionDefinition","overrides":{"id":24334,"nodeType":"OverrideSpecifier","overrides":[],"src":"1227:8:85"},"parameters":{"id":24333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24332,"mutability":"mutable","name":"profileId","nameLocation":"1204:9:85","nodeType":"VariableDeclaration","scope":24347,"src":"1196:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1196:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1195:19:85"},"returnParameters":{"id":24337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24347,"src":"1245:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1245:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1244:9:85"},"scope":24650,"src":"1174:157:85","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[21262],"body":{"id":24360,"nodeType":"Block","src":"1458:51:85","statements":[{"expression":{"baseExpression":{"id":24356,"name":"_allocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24289,"src":"1475:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24358,"indexExpression":{"id":24357,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24350,"src":"1492:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1475:27:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24355,"id":24359,"nodeType":"Return","src":"1468:34:85"}]},"documentation":{"id":24348,"nodeType":"StructuredDocumentation","src":"1337:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"319d684e","id":24361,"implemented":true,"kind":"function","modifiers":[],"name":"allocatedEnergyOf","nameLocation":"1380:17:85","nodeType":"FunctionDefinition","overrides":{"id":24352,"nodeType":"OverrideSpecifier","overrides":[],"src":"1431:8:85"},"parameters":{"id":24351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24350,"mutability":"mutable","name":"profileId","nameLocation":"1406:9:85","nodeType":"VariableDeclaration","scope":24361,"src":"1398:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24349,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1397:19:85"},"returnParameters":{"id":24355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24354,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24361,"src":"1449:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24353,"name":"uint256","nodeType":"ElementaryTypeName","src":"1449:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1448:9:85"},"scope":24650,"src":"1371:138:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21269],"body":{"id":24374,"nodeType":"Block","src":"1635:50:85","statements":[{"expression":{"baseExpression":{"id":24370,"name":"_receivedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24293,"src":"1652:15:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24372,"indexExpression":{"id":24371,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24364,"src":"1668:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1652:26:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24369,"id":24373,"nodeType":"Return","src":"1645:33:85"}]},"documentation":{"id":24362,"nodeType":"StructuredDocumentation","src":"1515:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"9dfbfa76","id":24375,"implemented":true,"kind":"function","modifiers":[],"name":"receivedEnergyOf","nameLocation":"1558:16:85","nodeType":"FunctionDefinition","overrides":{"id":24366,"nodeType":"OverrideSpecifier","overrides":[],"src":"1608:8:85"},"parameters":{"id":24365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24364,"mutability":"mutable","name":"profileId","nameLocation":"1583:9:85","nodeType":"VariableDeclaration","scope":24375,"src":"1575:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24363,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1574:19:85"},"returnParameters":{"id":24369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24375,"src":"1626:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24367,"name":"uint256","nodeType":"ElementaryTypeName","src":"1626:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1625:9:85"},"scope":24650,"src":"1549:136:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21280],"body":{"id":24395,"nodeType":"Block","src":"1830:65:85","statements":[{"expression":{"arguments":[{"id":24392,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24380,"src":"1882:5:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24388,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"1847:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24390,"indexExpression":{"id":24389,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24378,"src":"1868:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1847:31:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1879:2:85","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":3767,"src":"1847:34:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (uint256,uint256)"}},"id":24393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1847:41:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24387,"id":24394,"nodeType":"Return","src":"1840:48:85"}]},"documentation":{"id":24376,"nodeType":"StructuredDocumentation","src":"1691:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"25b98c08","id":24396,"implemented":true,"kind":"function","modifiers":[],"name":"energizedBy","nameLocation":"1734:11:85","nodeType":"FunctionDefinition","overrides":{"id":24382,"nodeType":"OverrideSpecifier","overrides":[],"src":"1794:8:85"},"parameters":{"id":24381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24378,"mutability":"mutable","name":"profileId","nameLocation":"1754:9:85","nodeType":"VariableDeclaration","scope":24396,"src":"1746:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1746:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24380,"mutability":"mutable","name":"index","nameLocation":"1773:5:85","nodeType":"VariableDeclaration","scope":24396,"src":"1765:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24379,"name":"uint256","nodeType":"ElementaryTypeName","src":"1765:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1745:34:85"},"returnParameters":{"id":24387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24384,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24396,"src":"1812:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24383,"name":"uint256","nodeType":"ElementaryTypeName","src":"1812:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24396,"src":"1821:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24385,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1811:18:85"},"scope":24650,"src":"1725:170:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21291],"body":{"id":24416,"nodeType":"Block","src":"2041:72:85","statements":[{"expression":{"arguments":[{"id":24413,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24401,"src":"2100:5:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24409,"name":"_reverseEnergyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24303,"src":"2058:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24411,"indexExpression":{"id":24410,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24399,"src":"2086:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2058:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2097:2:85","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":3767,"src":"2058:41:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (uint256,uint256)"}},"id":24414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:48:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24408,"id":24415,"nodeType":"Return","src":"2051:55:85"}]},"documentation":{"id":24397,"nodeType":"StructuredDocumentation","src":"1901:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"43b521bd","id":24417,"implemented":true,"kind":"function","modifiers":[],"name":"energizersOf","nameLocation":"1944:12:85","nodeType":"FunctionDefinition","overrides":{"id":24403,"nodeType":"OverrideSpecifier","overrides":[],"src":"2005:8:85"},"parameters":{"id":24402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24399,"mutability":"mutable","name":"profileId","nameLocation":"1965:9:85","nodeType":"VariableDeclaration","scope":24417,"src":"1957:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24398,"name":"uint256","nodeType":"ElementaryTypeName","src":"1957:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24401,"mutability":"mutable","name":"index","nameLocation":"1984:5:85","nodeType":"VariableDeclaration","scope":24417,"src":"1976:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24400,"name":"uint256","nodeType":"ElementaryTypeName","src":"1976:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:34:85"},"returnParameters":{"id":24408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24417,"src":"2023:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24404,"name":"uint256","nodeType":"ElementaryTypeName","src":"2023:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24417,"src":"2032:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24406,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2022:18:85"},"scope":24650,"src":"1935:178:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21298],"body":{"id":24431,"nodeType":"Block","src":"2230:64:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":24425,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"2247:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24427,"indexExpression":{"id":24426,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24420,"src":"2268:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2247:31:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:85","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":3733,"src":"2247:38:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer) view returns (uint256)"}},"id":24429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2247:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24424,"id":24430,"nodeType":"Return","src":"2240:47:85"}]},"documentation":{"id":24418,"nodeType":"StructuredDocumentation","src":"2119:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"3d107d4d","id":24432,"implemented":true,"kind":"function","modifiers":[],"name":"totalEnergizedBy","nameLocation":"2162:16:85","nodeType":"FunctionDefinition","parameters":{"id":24421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24420,"mutability":"mutable","name":"profileId","nameLocation":"2187:9:85","nodeType":"VariableDeclaration","scope":24432,"src":"2179:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2179:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2178:19:85"},"returnParameters":{"id":24424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24432,"src":"2221:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24422,"name":"uint256","nodeType":"ElementaryTypeName","src":"2221:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2220:9:85"},"scope":24650,"src":"2153:141:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21305],"body":{"id":24446,"nodeType":"Block","src":"2412:71:85","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":24440,"name":"_reverseEnergyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24303,"src":"2429:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24442,"indexExpression":{"id":24441,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24435,"src":"2457:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2429:38:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2468:6:85","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":3733,"src":"2429:45:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer) view returns (uint256)"}},"id":24444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24439,"id":24445,"nodeType":"Return","src":"2422:54:85"}]},"documentation":{"id":24433,"nodeType":"StructuredDocumentation","src":"2300:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"2d34e224","id":24447,"implemented":true,"kind":"function","modifiers":[],"name":"totalEnergizersOf","nameLocation":"2343:17:85","nodeType":"FunctionDefinition","parameters":{"id":24436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24435,"mutability":"mutable","name":"profileId","nameLocation":"2369:9:85","nodeType":"VariableDeclaration","scope":24447,"src":"2361:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24434,"name":"uint256","nodeType":"ElementaryTypeName","src":"2361:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2360:19:85"},"returnParameters":{"id":24439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24447,"src":"2403:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24437,"name":"uint256","nodeType":"ElementaryTypeName","src":"2403:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2402:9:85"},"scope":24650,"src":"2334:149:85","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21314],"body":{"id":24519,"nodeType":"Block","src":"2611:515:85","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24461,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24452,"src":"2629:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":24462,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"2635:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2629:10:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f74206769766520656e6572677920746f20796f757273656c66","id":24464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2641:32:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_592e09bacd405731eee343cd57450a7507a7b04ec07ea21d6e405ffccb5f8c34","typeString":"literal_string \"Cannot give energy to yourself\""},"value":"Cannot give energy to yourself"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_592e09bacd405731eee343cd57450a7507a7b04ec07ea21d6e405ffccb5f8c34","typeString":"literal_string \"Cannot give energy to yourself\""}],"id":24460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2621:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2621:53:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24466,"nodeType":"ExpressionStatement","src":"2621:53:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24468,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"2692:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":24470,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"2715:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24469,"name":"freeEnergyOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24347,"src":"2702:12:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":24471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2702:18:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2692:28:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e7420656e65726779","id":24473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2722:21:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_5509eaac3f8c6b2721e3ec2f5d6f63fbd5d9a12085608540a7d03038a34d38c7","typeString":"literal_string \"Insufficient energy\""},"value":"Insufficient energy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5509eaac3f8c6b2721e3ec2f5d6f63fbd5d9a12085608540a7d03038a34d38c7","typeString":"literal_string \"Insufficient energy\""}],"id":24467,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2684:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2684:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24475,"nodeType":"ExpressionStatement","src":"2684:60:85"},{"expression":{"id":24480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24476,"name":"_allocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24289,"src":"2755:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24478,"indexExpression":{"id":24477,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"2772:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2755:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24479,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"2781:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2755:32:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24481,"nodeType":"ExpressionStatement","src":"2755:32:85"},{"assignments":[null,24483],"declarations":[null,{"constant":false,"id":24483,"mutability":"mutable","name":"currentAllocatedEnergy","nameLocation":"2808:22:85","nodeType":"VariableDeclaration","scope":24519,"src":"2800:30:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24482,"name":"uint256","nodeType":"ElementaryTypeName","src":"2800:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24490,"initialValue":{"arguments":[{"id":24488,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24452,"src":"2868:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24484,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"2834:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24486,"indexExpression":{"id":24485,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"2855:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2834:26:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2861:6:85","memberName":"tryGet","nodeType":"MemberAccess","referencedDeclaration":3801,"src":"2834:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (bool,uint256)"}},"id":24489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:37:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"2797:74:85"},{"assignments":[24492],"declarations":[{"constant":false,"id":24492,"mutability":"mutable","name":"nextAllocatedEnergy","nameLocation":"2889:19:85","nodeType":"VariableDeclaration","scope":24519,"src":"2881:27:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24491,"name":"uint256","nodeType":"ElementaryTypeName","src":"2881:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24496,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24493,"name":"currentAllocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24483,"src":"2911:22:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":24494,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"2936:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2881:61:85"},{"expression":{"arguments":[{"id":24501,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24452,"src":"2983:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24502,"name":"nextAllocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24492,"src":"2987:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24497,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"2952:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24499,"indexExpression":{"id":24498,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"2973:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2952:26:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2979:3:85","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"2952:30:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24504,"nodeType":"ExpressionStatement","src":"2952:55:85"},{"expression":{"arguments":[{"id":24509,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24450,"src":"3053:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24510,"name":"nextAllocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24492,"src":"3059:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24505,"name":"_reverseEnergyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24303,"src":"3017:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24507,"indexExpression":{"id":24506,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24452,"src":"3045:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3017:31:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3049:3:85","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"3017:35:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3017:62:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24512,"nodeType":"ExpressionStatement","src":"3017:62:85"},{"expression":{"id":24517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24513,"name":"_receivedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24293,"src":"3090:15:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24515,"indexExpression":{"id":24514,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24452,"src":"3106:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3090:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24516,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"3113:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3090:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24518,"nodeType":"ExpressionStatement","src":"3090:29:85"}]},"documentation":{"id":24448,"nodeType":"StructuredDocumentation","src":"2489:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"7d94dfc9","id":24520,"implemented":true,"kind":"function","modifiers":[{"id":24458,"kind":"modifierInvocation","modifierName":{"id":24457,"name":"onlyHub","nameLocations":["2603:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"2603:7:85"},"nodeType":"ModifierInvocation","src":"2603:7:85"}],"name":"giveEnergy","nameLocation":"2532:10:85","nodeType":"FunctionDefinition","overrides":{"id":24456,"nodeType":"OverrideSpecifier","overrides":[],"src":"2594:8:85"},"parameters":{"id":24455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24450,"mutability":"mutable","name":"from","nameLocation":"2551:4:85","nodeType":"VariableDeclaration","scope":24520,"src":"2543:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24449,"name":"uint256","nodeType":"ElementaryTypeName","src":"2543:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24452,"mutability":"mutable","name":"to","nameLocation":"2565:2:85","nodeType":"VariableDeclaration","scope":24520,"src":"2557:10:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24451,"name":"uint256","nodeType":"ElementaryTypeName","src":"2557:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24454,"mutability":"mutable","name":"amount","nameLocation":"2577:6:85","nodeType":"VariableDeclaration","scope":24520,"src":"2569:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24453,"name":"uint256","nodeType":"ElementaryTypeName","src":"2569:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2542:42:85"},"returnParameters":{"id":24459,"nodeType":"ParameterList","parameters":[],"src":"2611:0:85"},"scope":24650,"src":"2523:603:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21323],"body":{"id":24594,"nodeType":"Block","src":"3256:482:85","statements":[{"expression":{"arguments":[{"arguments":[{"id":24538,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3308:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24534,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"3274:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24536,"indexExpression":{"id":24535,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3295:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3274:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3299:8:85","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":3718,"src":"3274:33:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (bool)"}},"id":24539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3274:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50726f66696c65206e6f74207265666572656e636564","id":24540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3315:24:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_34bca9b6f3fd9283a1e3fafb2d4eaac3048a50f986da0cf542eb56c2e64a633b","typeString":"literal_string \"Profile not referenced\""},"value":"Profile not referenced"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34bca9b6f3fd9283a1e3fafb2d4eaac3048a50f986da0cf542eb56c2e64a633b","typeString":"literal_string \"Profile not referenced\""}],"id":24533,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3266:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3266:74:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24542,"nodeType":"ExpressionStatement","src":"3266:74:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24544,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24527,"src":"3358:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":24549,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3397:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24545,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"3368:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24547,"indexExpression":{"id":24546,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3389:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3368:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3393:3:85","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":3825,"src":"3368:28:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (uint256)"}},"id":24550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3368:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3358:44:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457863656564656420676976656e20656e65726779","id":24552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3404:23:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_5063b8e6d23d3d1c698a1ea77680e864d0275a612c1fbca9fffe87eb2fe8c650","typeString":"literal_string \"Exceeded given energy\""},"value":"Exceeded given energy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5063b8e6d23d3d1c698a1ea77680e864d0275a612c1fbca9fffe87eb2fe8c650","typeString":"literal_string \"Exceeded given energy\""}],"id":24543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3350:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3350:78:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24554,"nodeType":"ExpressionStatement","src":"3350:78:85"},{"expression":{"id":24559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24555,"name":"_receivedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24293,"src":"3439:15:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24557,"indexExpression":{"id":24556,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3455:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3439:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":24558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24527,"src":"3464:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3439:31:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24560,"nodeType":"ExpressionStatement","src":"3439:31:85"},{"assignments":[24562],"declarations":[{"constant":false,"id":24562,"mutability":"mutable","name":"nextAllocatedEnergy","nameLocation":"3488:19:85","nodeType":"VariableDeclaration","scope":24594,"src":"3480:27:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24561,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24571,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":24567,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3539:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24563,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"3510:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24565,"indexExpression":{"id":24564,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3531:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3510:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3535:3:85","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":3825,"src":"3510:28:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (uint256)"}},"id":24568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3510:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":24569,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24527,"src":"3547:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3510:43:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3480:73:85"},{"expression":{"arguments":[{"id":24576,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3592:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24577,"name":"nextAllocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24562,"src":"3598:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24572,"name":"_energyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24298,"src":"3563:20:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24574,"indexExpression":{"id":24573,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3584:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3563:24:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3588:3:85","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"3563:28:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3563:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24579,"nodeType":"ExpressionStatement","src":"3563:55:85"},{"expression":{"arguments":[{"id":24584,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3666:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24585,"name":"nextAllocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24562,"src":"3670:19:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":24580,"name":"_reverseEnergyAllocationMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24303,"src":"3628:27:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24582,"indexExpression":{"id":24581,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24523,"src":"3656:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3628:33:85","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"id":24583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3662:3:85","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"3628:37:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":24586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3628:62:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24587,"nodeType":"ExpressionStatement","src":"3628:62:85"},{"expression":{"id":24592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24588,"name":"_allocatedEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24289,"src":"3701:16:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24590,"indexExpression":{"id":24589,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"3718:2:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3701:20:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":24591,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24527,"src":"3725:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3701:30:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24593,"nodeType":"ExpressionStatement","src":"3701:30:85"}]},"documentation":{"id":24521,"nodeType":"StructuredDocumentation","src":"3132:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"d072007d","id":24595,"implemented":true,"kind":"function","modifiers":[{"id":24531,"kind":"modifierInvocation","modifierName":{"id":24530,"name":"onlyHub","nameLocations":["3248:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"3248:7:85"},"nodeType":"ModifierInvocation","src":"3248:7:85"}],"name":"removeEnergy","nameLocation":"3175:12:85","nodeType":"FunctionDefinition","overrides":{"id":24529,"nodeType":"OverrideSpecifier","overrides":[],"src":"3239:8:85"},"parameters":{"id":24528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24523,"mutability":"mutable","name":"from","nameLocation":"3196:4:85","nodeType":"VariableDeclaration","scope":24595,"src":"3188:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3188:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24525,"mutability":"mutable","name":"to","nameLocation":"3210:2:85","nodeType":"VariableDeclaration","scope":24595,"src":"3202:10:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24524,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24527,"mutability":"mutable","name":"amount","nameLocation":"3222:6:85","nodeType":"VariableDeclaration","scope":24595,"src":"3214:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24526,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3187:42:85"},"returnParameters":{"id":24532,"nodeType":"ParameterList","parameters":[],"src":"3256:0:85"},"scope":24650,"src":"3166:572:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21330],"body":{"id":24612,"nodeType":"Block","src":"3864:50:85","statements":[{"expression":{"id":24610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24606,"name":"_totalEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24285,"src":"3874:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24608,"indexExpression":{"id":24607,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24598,"src":"3887:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3874:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":24609,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24600,"src":"3901:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3874:33:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24611,"nodeType":"ExpressionStatement","src":"3874:33:85"}]},"documentation":{"id":24596,"nodeType":"StructuredDocumentation","src":"3744:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"52c5fb8a","id":24613,"implemented":true,"kind":"function","modifiers":[{"id":24604,"kind":"modifierInvocation","modifierName":{"id":24603,"name":"onlyHub","nameLocations":["3856:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"3856:7:85"},"nodeType":"ModifierInvocation","src":"3856:7:85"}],"name":"createEnergyFor","nameLocation":"3787:15:85","nodeType":"FunctionDefinition","overrides":{"id":24602,"nodeType":"OverrideSpecifier","overrides":[],"src":"3847:8:85"},"parameters":{"id":24601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24598,"mutability":"mutable","name":"profileId","nameLocation":"3811:9:85","nodeType":"VariableDeclaration","scope":24613,"src":"3803:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24597,"name":"uint256","nodeType":"ElementaryTypeName","src":"3803:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24600,"mutability":"mutable","name":"amount","nameLocation":"3830:6:85","nodeType":"VariableDeclaration","scope":24613,"src":"3822:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24599,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3802:35:85"},"returnParameters":{"id":24605,"nodeType":"ParameterList","parameters":[],"src":"3864:0:85"},"scope":24650,"src":"3778:136:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21337],"body":{"id":24648,"nodeType":"Block","src":"4041:203:85","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24625,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"4059:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":24627,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"4082:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24626,"name":"freeEnergyOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24347,"src":"4069:12:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":24628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4059:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578636565646564206672656520656e65726779","id":24630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4094:22:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ac263490fa06ae58e2547b14e1f30b53014daac4826688ccc38b2bdefecd9ee","typeString":"literal_string \"Exceeded free energy\""},"value":"Exceeded free energy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ac263490fa06ae58e2547b14e1f30b53014daac4826688ccc38b2bdefecd9ee","typeString":"literal_string \"Exceeded free energy\""}],"id":24624,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4051:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4051:66:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24632,"nodeType":"ExpressionStatement","src":"4051:66:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24634,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"4135:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"baseExpression":{"id":24635,"name":"_totalEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24285,"src":"4145:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24637,"indexExpression":{"id":24636,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"4158:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4145:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4135:33:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457863656564656420746f74616c20656e65726779","id":24639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4170:23:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4daae0f26d94412d5beed0cb134ac8dc9b9e7af1f9aa9d4cd4e2254b6baed14","typeString":"literal_string \"Exceeded total energy\""},"value":"Exceeded total energy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4daae0f26d94412d5beed0cb134ac8dc9b9e7af1f9aa9d4cd4e2254b6baed14","typeString":"literal_string \"Exceeded total energy\""}],"id":24633,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4127:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":24640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4127:67:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24641,"nodeType":"ExpressionStatement","src":"4127:67:85"},{"expression":{"id":24646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24642,"name":"_totalEnergy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24285,"src":"4204:12:85","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":24644,"indexExpression":{"id":24643,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24616,"src":"4217:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4204:23:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":24645,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24618,"src":"4231:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4204:33:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24647,"nodeType":"ExpressionStatement","src":"4204:33:85"}]},"documentation":{"id":24614,"nodeType":"StructuredDocumentation","src":"3920:29:85","text":"@inheritdoc IEnergyWallet"},"functionSelector":"e3bfe61b","id":24649,"implemented":true,"kind":"function","modifiers":[{"id":24622,"kind":"modifierInvocation","modifierName":{"id":24621,"name":"onlyHub","nameLocations":["4033:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"4033:7:85"},"nodeType":"ModifierInvocation","src":"4033:7:85"}],"name":"destroyEnergyFor","nameLocation":"3963:16:85","nodeType":"FunctionDefinition","overrides":{"id":24620,"nodeType":"OverrideSpecifier","overrides":[],"src":"4024:8:85"},"parameters":{"id":24619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24616,"mutability":"mutable","name":"profileId","nameLocation":"3988:9:85","nodeType":"VariableDeclaration","scope":24649,"src":"3980:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24615,"name":"uint256","nodeType":"ElementaryTypeName","src":"3980:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24618,"mutability":"mutable","name":"amount","nameLocation":"4007:6:85","nodeType":"VariableDeclaration","scope":24649,"src":"3999:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24617,"name":"uint256","nodeType":"ElementaryTypeName","src":"3999:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3979:35:85"},"returnParameters":{"id":24623,"nodeType":"ParameterList","parameters":[],"src":"4041:0:85"},"scope":24650,"src":"3954:290:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24651,"src":"352:3894:85","usedErrors":[22131,22133]}],"src":"32:4215:85"},"id":85},"contracts/profiles/My3SecProfiles.sol":{"ast":{"absolutePath":"contracts/profiles/My3SecProfiles.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"ERC165Upgradeable":[2526],"ERC721EnumerableUpgradeable":[1778],"ERC721URIStorageUpgradeable":[1923],"ERC721Upgradeable":[1270],"Errors":[22162],"HubControllableUpgradeable":[21121],"IERC165Upgradeable":[2538],"IERC721EnumerableUpgradeable":[1954],"IERC721MetadataUpgradeable":[1981],"IERC721ReceiverUpgradeable":[1288],"IERC721Upgradeable":[1404],"IMy3SecProfiles":[21601],"Initializable":[300],"MathUpgradeable":[3403],"My3SecProfiles":[24907],"OwnableUpgradeable":[131],"StringsUpgradeable":[2482]},"id":24908,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24652,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:86"},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol","id":24653,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":1271,"src":"57:80:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol","id":24654,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":1779,"src":"138:101:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol","id":24655,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":1924,"src":"240:101:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/HubControllableUpgradeable.sol","file":"../common/access/HubControllableUpgradeable.sol","id":24656,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":21122,"src":"343:57:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/IMy3SecProfiles.sol","file":"../common/interfaces/IMy3SecProfiles.sol","id":24657,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":21602,"src":"401:50:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../common/libraries/Errors.sol","id":24658,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24908,"sourceUnit":22163,"src":"452:40:86","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24659,"name":"IMy3SecProfiles","nameLocations":["525:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":21601,"src":"525:15:86"},"id":24660,"nodeType":"InheritanceSpecifier","src":"525:15:86"},{"baseName":{"id":24661,"name":"HubControllableUpgradeable","nameLocations":["546:26:86"],"nodeType":"IdentifierPath","referencedDeclaration":21121,"src":"546:26:86"},"id":24662,"nodeType":"InheritanceSpecifier","src":"546:26:86"},{"baseName":{"id":24663,"name":"ERC721Upgradeable","nameLocations":["578:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"578:17:86"},"id":24664,"nodeType":"InheritanceSpecifier","src":"578:17:86"},{"baseName":{"id":24665,"name":"ERC721EnumerableUpgradeable","nameLocations":["601:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1778,"src":"601:27:86"},"id":24666,"nodeType":"InheritanceSpecifier","src":"601:27:86"},{"baseName":{"id":24667,"name":"ERC721URIStorageUpgradeable","nameLocations":["634:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1923,"src":"634:27:86"},"id":24668,"nodeType":"InheritanceSpecifier","src":"634:27:86"}],"canonicalName":"My3SecProfiles","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":24907,"linearizedBaseContracts":[24907,1923,1778,1954,1270,1981,21121,131,21601,1404,2526,2538,2307,300],"name":"My3SecProfiles","nameLocation":"503:14:86","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":24670,"mutability":"mutable","name":"_tokenIdCounter","nameLocation":"684:15:86","nodeType":"VariableDeclaration","scope":24907,"src":"668:31:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24669,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":24674,"mutability":"mutable","name":"_defaultProfileByAddress","nameLocation":"741:24:86","nodeType":"VariableDeclaration","scope":24907,"src":"705:60:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":24673,"keyType":{"id":24671,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"705:27:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":24672,"name":"uint256","nodeType":"ElementaryTypeName","src":"724:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"body":{"id":24696,"nodeType":"Block","src":"824:164:86","statements":[{"expression":{"arguments":[{"hexValue":"4d79335365632050726f66696c6573","id":24682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"848:17:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_419f3a359dcc6137ddacb29f1bfb73aa5d9371cb908555bc95372b0792d468a3","typeString":"literal_string \"My3Sec Profiles\""},"value":"My3Sec Profiles"},{"hexValue":"4d335350","id":24683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"867:6:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd3ccb6d710195f39d64333f2685d4e383697ae30be2528847b74329a2921af9","typeString":"literal_string \"M3SP\""},"value":"M3SP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_419f3a359dcc6137ddacb29f1bfb73aa5d9371cb908555bc95372b0792d468a3","typeString":"literal_string \"My3Sec Profiles\""},{"typeIdentifier":"t_stringliteral_cd3ccb6d710195f39d64333f2685d4e383697ae30be2528847b74329a2921af9","typeString":"literal_string \"M3SP\""}],"id":24681,"name":"__ERC721_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"834:13:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":24684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"834:40:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24685,"nodeType":"ExpressionStatement","src":"834:40:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24686,"name":"__ERC721Enumerable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"884:23:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24688,"nodeType":"ExpressionStatement","src":"884:25:86"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24689,"name":"__ERC721URIStorage_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"919:23:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:25:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24691,"nodeType":"ExpressionStatement","src":"919:25:86"},{"expression":{"arguments":[{"id":24693,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24676,"src":"977:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24692,"name":"__HubControllable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"954:22:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":24694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:27:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24695,"nodeType":"ExpressionStatement","src":"954:27:86"}]},"functionSelector":"c4d66de8","id":24697,"implemented":true,"kind":"function","modifiers":[{"id":24679,"kind":"modifierInvocation","modifierName":{"id":24678,"name":"initializer","nameLocations":["812:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":202,"src":"812:11:86"},"nodeType":"ModifierInvocation","src":"812:11:86"}],"name":"initialize","nameLocation":"781:10:86","nodeType":"FunctionDefinition","parameters":{"id":24677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24676,"mutability":"mutable","name":"hub","nameLocation":"800:3:86","nodeType":"VariableDeclaration","scope":24697,"src":"792:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24675,"name":"address","nodeType":"ElementaryTypeName","src":"792:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"791:13:86"},"returnParameters":{"id":24680,"nodeType":"ParameterList","parameters":[],"src":"824:0:86"},"scope":24907,"src":"772:216:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21570],"body":{"id":24710,"nodeType":"Block","src":"1117:57:86","statements":[{"expression":{"baseExpression":{"id":24706,"name":"_defaultProfileByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24674,"src":"1134:24:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24708,"indexExpression":{"id":24707,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24700,"src":"1159:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1134:33:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24705,"id":24709,"nodeType":"Return","src":"1127:40:86"}]},"documentation":{"id":24698,"nodeType":"StructuredDocumentation","src":"994:31:86","text":"@inheritdoc IMy3SecProfiles"},"functionSelector":"05b186b6","id":24711,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultProfileId","nameLocation":"1039:19:86","nodeType":"FunctionDefinition","overrides":{"id":24702,"nodeType":"OverrideSpecifier","overrides":[],"src":"1090:8:86"},"parameters":{"id":24701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24700,"mutability":"mutable","name":"account","nameLocation":"1067:7:86","nodeType":"VariableDeclaration","scope":24711,"src":"1059:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24699,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1058:17:86"},"returnParameters":{"id":24705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24704,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24711,"src":"1108:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:9:86"},"scope":24907,"src":"1030:144:86","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21577],"body":{"id":24727,"nodeType":"Block","src":"1305:55:86","statements":[{"expression":{"arguments":[{"id":24723,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24714,"src":"1334:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24724,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24716,"src":"1343:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24722,"name":"_setDefaultProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24820,"src":"1315:18:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":24725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1315:38:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24726,"nodeType":"ExpressionStatement","src":"1315:38:86"}]},"documentation":{"id":24712,"nodeType":"StructuredDocumentation","src":"1180:31:86","text":"@inheritdoc IMy3SecProfiles"},"functionSelector":"e93a724a","id":24728,"implemented":true,"kind":"function","modifiers":[{"id":24720,"kind":"modifierInvocation","modifierName":{"id":24719,"name":"onlyHub","nameLocations":["1297:7:86"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"1297:7:86"},"nodeType":"ModifierInvocation","src":"1297:7:86"}],"name":"setDefaultProfile","nameLocation":"1225:17:86","nodeType":"FunctionDefinition","overrides":{"id":24718,"nodeType":"OverrideSpecifier","overrides":[],"src":"1288:8:86"},"parameters":{"id":24717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24714,"mutability":"mutable","name":"account","nameLocation":"1251:7:86","nodeType":"VariableDeclaration","scope":24728,"src":"1243:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24713,"name":"address","nodeType":"ElementaryTypeName","src":"1243:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24716,"mutability":"mutable","name":"profileId","nameLocation":"1268:9:86","nodeType":"VariableDeclaration","scope":24728,"src":"1260:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24715,"name":"uint256","nodeType":"ElementaryTypeName","src":"1260:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1242:36:86"},"returnParameters":{"id":24721,"nodeType":"ParameterList","parameters":[],"src":"1305:0:86"},"scope":24907,"src":"1216:144:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21586],"body":{"id":24774,"nodeType":"Block","src":"1500:279:86","statements":[{"assignments":[24742],"declarations":[{"constant":false,"id":24742,"mutability":"mutable","name":"tokenId","nameLocation":"1518:7:86","nodeType":"VariableDeclaration","scope":24774,"src":"1510:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1510:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":24745,"initialValue":{"id":24744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1528:17:86","subExpression":{"id":24743,"name":"_tokenIdCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24670,"src":"1530:15:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1510:35:86"},{"expression":{"arguments":[{"id":24747,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24731,"src":"1565:2:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24748,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24742,"src":"1569:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24746,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[815,844],"referencedDeclaration":815,"src":"1555:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":24749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1555:22:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24750,"nodeType":"ExpressionStatement","src":"1555:22:86"},{"expression":{"arguments":[{"id":24752,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24742,"src":"1600:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24753,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24733,"src":"1609:3:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":24751,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"1587:12:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":24754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1587:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24755,"nodeType":"ExpressionStatement","src":"1587:26:86"},{"assignments":[24757],"declarations":[{"constant":false,"id":24757,"mutability":"mutable","name":"isFirstProfile","nameLocation":"1628:14:86","nodeType":"VariableDeclaration","scope":24774,"src":"1623:19:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24756,"name":"bool","nodeType":"ElementaryTypeName","src":"1623:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":24763,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":24759,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24731,"src":"1655:2:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24758,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":438,"src":"1645:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":24760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1645:13:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":24761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1662:1:86","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1645:18:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1623:40:86"},{"condition":{"id":24764,"name":"isFirstProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24757,"src":"1677:14:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24771,"nodeType":"IfStatement","src":"1673:76:86","trueBody":{"id":24770,"nodeType":"Block","src":"1693:56:86","statements":[{"expression":{"arguments":[{"id":24766,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24731,"src":"1726:2:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24767,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24742,"src":"1730:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24765,"name":"_setDefaultProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24820,"src":"1707:18:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":24768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1707:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24769,"nodeType":"ExpressionStatement","src":"1707:31:86"}]}},{"expression":{"id":24772,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24742,"src":"1765:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24740,"id":24773,"nodeType":"Return","src":"1758:14:86"}]},"documentation":{"id":24729,"nodeType":"StructuredDocumentation","src":"1366:31:86","text":"@inheritdoc IMy3SecProfiles"},"functionSelector":"7765eba1","id":24775,"implemented":true,"kind":"function","modifiers":[{"id":24737,"kind":"modifierInvocation","modifierName":{"id":24736,"name":"onlyHub","nameLocations":["1474:7:86"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"1474:7:86"},"nodeType":"ModifierInvocation","src":"1474:7:86"}],"name":"createProfile","nameLocation":"1411:13:86","nodeType":"FunctionDefinition","overrides":{"id":24735,"nodeType":"OverrideSpecifier","overrides":[],"src":"1465:8:86"},"parameters":{"id":24734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24731,"mutability":"mutable","name":"to","nameLocation":"1433:2:86","nodeType":"VariableDeclaration","scope":24775,"src":"1425:10:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24730,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24733,"mutability":"mutable","name":"uri","nameLocation":"1451:3:86","nodeType":"VariableDeclaration","scope":24775,"src":"1437:17:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24732,"name":"string","nodeType":"ElementaryTypeName","src":"1437:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1424:31:86"},"returnParameters":{"id":24740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24775,"src":"1491:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1490:9:86"},"scope":24907,"src":"1402:377:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[21593],"body":{"id":24790,"nodeType":"Block","src":"1899:45:86","statements":[{"expression":{"arguments":[{"id":24786,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24778,"src":"1922:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24787,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24780,"src":"1933:3:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":24785,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"1909:12:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":24788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:28:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24789,"nodeType":"ExpressionStatement","src":"1909:28:86"}]},"documentation":{"id":24776,"nodeType":"StructuredDocumentation","src":"1785:31:86","text":"@inheritdoc IMy3SecProfiles"},"functionSelector":"89c7e0a0","id":24791,"implemented":true,"kind":"function","modifiers":[{"id":24783,"kind":"modifierInvocation","modifierName":{"id":24782,"name":"onlyHub","nameLocations":["1891:7:86"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"1891:7:86"},"nodeType":"ModifierInvocation","src":"1891:7:86"}],"name":"updateProfile","nameLocation":"1830:13:86","nodeType":"FunctionDefinition","parameters":{"id":24781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24778,"mutability":"mutable","name":"profileId","nameLocation":"1852:9:86","nodeType":"VariableDeclaration","scope":24791,"src":"1844:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24777,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24780,"mutability":"mutable","name":"uri","nameLocation":"1877:3:86","nodeType":"VariableDeclaration","scope":24791,"src":"1863:17:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24779,"name":"string","nodeType":"ElementaryTypeName","src":"1863:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1843:38:86"},"returnParameters":{"id":24784,"nodeType":"ParameterList","parameters":[],"src":"1899:0:86"},"scope":24907,"src":"1821:123:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":24819,"nodeType":"Block","src":"2023:155:86","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":24806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24798,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24795,"src":"2037:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":24799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2049:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2037:13:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":24805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":24801,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24793,"src":"2054:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":24803,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24795,"src":"2073:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":24802,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"2065:7:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":24804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2065:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2054:29:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2037:46:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24812,"nodeType":"IfStatement","src":"2033:83:86","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24807,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"2092:6:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":24809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2099:15:86","memberName":"NotProfileOwner","nodeType":"MemberAccess","referencedDeclaration":22139,"src":"2092:22:86","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":24810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24811,"nodeType":"RevertStatement","src":"2085:31:86"}},{"expression":{"id":24817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24813,"name":"_defaultProfileByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24674,"src":"2126:24:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24815,"indexExpression":{"id":24814,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24793,"src":"2151:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2126:33:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":24816,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24795,"src":"2162:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:45:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24818,"nodeType":"ExpressionStatement","src":"2126:45:86"}]},"id":24820,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultProfile","nameLocation":"1959:18:86","nodeType":"FunctionDefinition","parameters":{"id":24796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24793,"mutability":"mutable","name":"account","nameLocation":"1986:7:86","nodeType":"VariableDeclaration","scope":24820,"src":"1978:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24792,"name":"address","nodeType":"ElementaryTypeName","src":"1978:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24795,"mutability":"mutable","name":"profileId","nameLocation":"2003:9:86","nodeType":"VariableDeclaration","scope":24820,"src":"1995:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1995:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1977:36:86"},"returnParameters":{"id":24797,"nodeType":"ParameterList","parameters":[],"src":"2023:0:86"},"scope":24907,"src":"1950:228:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1251,1611],"body":{"id":24856,"nodeType":"Block","src":"2380:189:86","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":24838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":24834,"name":"_defaultProfileByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24674,"src":"2394:24:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24836,"indexExpression":{"id":24835,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24822,"src":"2419:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2394:30:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":24837,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24826,"src":"2428:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2394:41:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24846,"nodeType":"IfStatement","src":"2390:106:86","trueBody":{"id":24845,"nodeType":"Block","src":"2437:59:86","statements":[{"expression":{"id":24843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24839,"name":"_defaultProfileByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24674,"src":"2451:24:86","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":24841,"indexExpression":{"id":24840,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24822,"src":"2476:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2451:30:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":24842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2484:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2451:34:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24844,"nodeType":"ExpressionStatement","src":"2451:34:86"}]}},{"expression":{"arguments":[{"id":24850,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24822,"src":"2533:4:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24851,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24824,"src":"2539:2:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24852,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24826,"src":"2543:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24853,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24828,"src":"2552:9:86","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":24847,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2506:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecProfiles_$24907_$","typeString":"type(contract super My3SecProfiles)"}},"id":24849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2512:20:86","memberName":"_beforeTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1611,"src":"2506:26:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":24854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:56:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24855,"nodeType":"ExpressionStatement","src":"2506:56:86"}]},"id":24857,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"2193:20:86","nodeType":"FunctionDefinition","overrides":{"id":24832,"nodeType":"OverrideSpecifier","overrides":[{"id":24830,"name":"ERC721Upgradeable","nameLocations":["2332:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"2332:17:86"},{"id":24831,"name":"ERC721EnumerableUpgradeable","nameLocations":["2351:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1778,"src":"2351:27:86"}],"src":"2323:56:86"},"parameters":{"id":24829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24822,"mutability":"mutable","name":"from","nameLocation":"2231:4:86","nodeType":"VariableDeclaration","scope":24857,"src":"2223:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24821,"name":"address","nodeType":"ElementaryTypeName","src":"2223:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24824,"mutability":"mutable","name":"to","nameLocation":"2253:2:86","nodeType":"VariableDeclaration","scope":24857,"src":"2245:10:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24823,"name":"address","nodeType":"ElementaryTypeName","src":"2245:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24826,"mutability":"mutable","name":"tokenId","nameLocation":"2273:7:86","nodeType":"VariableDeclaration","scope":24857,"src":"2265:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24825,"name":"uint256","nodeType":"ElementaryTypeName","src":"2265:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24828,"mutability":"mutable","name":"batchSize","nameLocation":"2298:9:86","nodeType":"VariableDeclaration","scope":24857,"src":"2290:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24827,"name":"uint256","nodeType":"ElementaryTypeName","src":"2290:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2213:100:86"},"returnParameters":{"id":24833,"nodeType":"ParameterList","parameters":[],"src":"2380:0:86"},"scope":24907,"src":"2184:385:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[988,1917],"body":{"id":24871,"nodeType":"Block","src":"2673:37:86","statements":[{"expression":{"arguments":[{"id":24868,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24859,"src":"2695:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24865,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2683:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecProfiles_$24907_$","typeString":"type(contract super My3SecProfiles)"}},"id":24867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2689:5:86","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1917,"src":"2683:11:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":24869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2683:20:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24870,"nodeType":"ExpressionStatement","src":"2683:20:86"}]},"id":24872,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"2584:5:86","nodeType":"FunctionDefinition","overrides":{"id":24863,"nodeType":"OverrideSpecifier","overrides":[{"id":24861,"name":"ERC721Upgradeable","nameLocations":["2625:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"2625:17:86"},{"id":24862,"name":"ERC721URIStorageUpgradeable","nameLocations":["2644:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1923,"src":"2644:27:86"}],"src":"2616:56:86"},"parameters":{"id":24860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24859,"mutability":"mutable","name":"tokenId","nameLocation":"2598:7:86","nodeType":"VariableDeclaration","scope":24872,"src":"2590:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2590:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2589:17:86"},"returnParameters":{"id":24864,"nodeType":"ParameterList","parameters":[],"src":"2673:0:86"},"scope":24907,"src":"2575:135:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[525,1865,21600],"body":{"id":24888,"nodeType":"Block","src":"2875:47:86","statements":[{"expression":{"arguments":[{"id":24885,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24874,"src":"2907:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24883,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2892:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecProfiles_$24907_$","typeString":"type(contract super My3SecProfiles)"}},"id":24884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2898:8:86","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":1865,"src":"2892:14:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":24886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2892:23:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":24882,"id":24887,"nodeType":"Return","src":"2885:30:86"}]},"functionSelector":"c87b56dd","id":24889,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2725:8:86","nodeType":"FunctionDefinition","overrides":{"id":24879,"nodeType":"OverrideSpecifier","overrides":[{"id":24876,"name":"ERC721Upgradeable","nameLocations":["2786:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"2786:17:86"},{"id":24877,"name":"ERC721URIStorageUpgradeable","nameLocations":["2805:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1923,"src":"2805:27:86"},{"id":24878,"name":"IMy3SecProfiles","nameLocations":["2834:15:86"],"nodeType":"IdentifierPath","referencedDeclaration":21601,"src":"2834:15:86"}],"src":"2777:73:86"},"parameters":{"id":24875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24874,"mutability":"mutable","name":"tokenId","nameLocation":"2751:7:86","nodeType":"VariableDeclaration","scope":24889,"src":"2743:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2733:31:86"},"returnParameters":{"id":24882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24889,"src":"2860:13:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24880,"name":"string","nodeType":"ElementaryTypeName","src":"2860:6:86","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2859:15:86"},"scope":24907,"src":"2716:206:86","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[414,1469,2537],"body":{"id":24905,"nodeType":"Block","src":"3093:60:86","statements":[{"expression":{"arguments":[{"id":24902,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24891,"src":"3134:11:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":24900,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3110:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_My3SecProfiles_$24907_$","typeString":"type(contract super My3SecProfiles)"}},"id":24901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3116:17:86","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1469,"src":"3110:23:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":24903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3110:36:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24899,"id":24904,"nodeType":"Return","src":"3103:43:86"}]},"functionSelector":"01ffc9a7","id":24906,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2937:17:86","nodeType":"FunctionDefinition","overrides":{"id":24896,"nodeType":"OverrideSpecifier","overrides":[{"id":24893,"name":"ERC721EnumerableUpgradeable","nameLocations":["3010:27:86"],"nodeType":"IdentifierPath","referencedDeclaration":1778,"src":"3010:27:86"},{"id":24894,"name":"ERC721Upgradeable","nameLocations":["3039:17:86"],"nodeType":"IdentifierPath","referencedDeclaration":1270,"src":"3039:17:86"},{"id":24895,"name":"IERC165Upgradeable","nameLocations":["3058:18:86"],"nodeType":"IdentifierPath","referencedDeclaration":2538,"src":"3058:18:86"}],"src":"3001:76:86"},"parameters":{"id":24892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24891,"mutability":"mutable","name":"interfaceId","nameLocation":"2971:11:86","nodeType":"VariableDeclaration","scope":24906,"src":"2964:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":24890,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2964:6:86","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2954:34:86"},"returnParameters":{"id":24899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24906,"src":"3087:4:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24897,"name":"bool","nodeType":"ElementaryTypeName","src":"3087:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3086:6:86"},"scope":24907,"src":"2928:225:86","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":24908,"src":"494:2661:86","usedErrors":[22131,22133,22139]}],"src":"32:3124:86"},"id":86},"contracts/profiles/SkillWallet.sol":{"ast":{"absolutePath":"contracts/profiles/SkillWallet.sol","exportedSymbols":{"AddressUpgradeable":[2265],"ContextUpgradeable":[2307],"EnumerableMapUpgradeable":[4525],"EnumerableSetUpgradeable":[5138],"Errors":[22162],"HubControllableUpgradeable":[21121],"ISkillWallet":[21944],"Initializable":[300],"OwnableUpgradeable":[131],"SkillWallet":[25028]},"id":25029,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":24909,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:87"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol","id":24910,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25029,"sourceUnit":4526,"src":"57:88:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/access/HubControllableUpgradeable.sol","file":"../common/access/HubControllableUpgradeable.sol","id":24911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25029,"sourceUnit":21122,"src":"147:57:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ISkillWallet.sol","file":"../common/interfaces/ISkillWallet.sol","id":24912,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25029,"sourceUnit":21945,"src":"205:47:87","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24913,"name":"ISkillWallet","nameLocations":["278:12:87"],"nodeType":"IdentifierPath","referencedDeclaration":21944,"src":"278:12:87"},"id":24914,"nodeType":"InheritanceSpecifier","src":"278:12:87"},{"baseName":{"id":24915,"name":"HubControllableUpgradeable","nameLocations":["292:26:87"],"nodeType":"IdentifierPath","referencedDeclaration":21121,"src":"292:26:87"},"id":24916,"nodeType":"InheritanceSpecifier","src":"292:26:87"}],"canonicalName":"SkillWallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25028,"linearizedBaseContracts":[25028,21121,131,2307,300,21944],"name":"SkillWallet","nameLocation":"263:11:87","nodeType":"ContractDefinition","nodes":[{"global":false,"id":24920,"libraryName":{"id":24917,"name":"EnumerableMapUpgradeable","nameLocations":["331:24:87"],"nodeType":"IdentifierPath","referencedDeclaration":4525,"src":"331:24:87"},"nodeType":"UsingForDirective","src":"325:74:87","typeName":{"id":24919,"nodeType":"UserDefinedTypeName","pathNode":{"id":24918,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["360:24:87","385:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"360:38:87"},"referencedDeclaration":3649,"src":"360:38:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}}},{"constant":false,"id":24925,"mutability":"mutable","name":"_skillMap","nameLocation":"529:9:87","nodeType":"VariableDeclaration","scope":25028,"src":"462:76:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"typeName":{"id":24924,"keyType":{"id":24921,"name":"uint256","nodeType":"ElementaryTypeName","src":"470:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"462:58:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)"},"valueType":{"id":24923,"nodeType":"UserDefinedTypeName","pathNode":{"id":24922,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["481:24:87","506:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"481:38:87"},"referencedDeclaration":3649,"src":"481:38:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}}},"visibility":"private"},{"body":{"id":24936,"nodeType":"Block","src":"597:44:87","statements":[{"expression":{"arguments":[{"id":24933,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24927,"src":"630:3:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24932,"name":"__HubControllable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"607:22:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":24934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"607:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24935,"nodeType":"ExpressionStatement","src":"607:27:87"}]},"functionSelector":"c4d66de8","id":24937,"implemented":true,"kind":"function","modifiers":[{"id":24930,"kind":"modifierInvocation","modifierName":{"id":24929,"name":"initializer","nameLocations":["585:11:87"],"nodeType":"IdentifierPath","referencedDeclaration":202,"src":"585:11:87"},"nodeType":"ModifierInvocation","src":"585:11:87"}],"name":"initialize","nameLocation":"554:10:87","nodeType":"FunctionDefinition","parameters":{"id":24928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24927,"mutability":"mutable","name":"hub","nameLocation":"573:3:87","nodeType":"VariableDeclaration","scope":24937,"src":"565:11:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24926,"name":"address","nodeType":"ElementaryTypeName","src":"565:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"564:13:87"},"returnParameters":{"id":24931,"nodeType":"ParameterList","parameters":[],"src":"597:0:87"},"scope":25028,"src":"545:96:87","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21923],"body":{"id":24959,"nodeType":"Block","src":"763:119:87","statements":[{"assignments":[24950],"declarations":[{"constant":false,"id":24950,"mutability":"mutable","name":"map","nameLocation":"820:3:87","nodeType":"VariableDeclaration","scope":24959,"src":"773:50:87","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":24949,"nodeType":"UserDefinedTypeName","pathNode":{"id":24948,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["773:24:87","798:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"773:38:87"},"referencedDeclaration":3649,"src":"773:38:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"}],"id":24954,"initialValue":{"baseExpression":{"id":24951,"name":"_skillMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24925,"src":"826:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24953,"indexExpression":{"id":24952,"name":"profileID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24940,"src":"836:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"826:20:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"nodeType":"VariableDeclarationStatement","src":"773:73:87"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24955,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24950,"src":"863:3:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":24956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"867:6:87","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":3733,"src":"863:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer) view returns (uint256)"}},"id":24957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24945,"id":24958,"nodeType":"Return","src":"856:19:87"}]},"documentation":{"id":24938,"nodeType":"StructuredDocumentation","src":"647:28:87","text":"@inheritdoc ISkillWallet"},"functionSelector":"a59acb85","id":24960,"implemented":true,"kind":"function","modifiers":[],"name":"getSkillCount","nameLocation":"689:13:87","nodeType":"FunctionDefinition","overrides":{"id":24942,"nodeType":"OverrideSpecifier","overrides":[],"src":"736:8:87"},"parameters":{"id":24941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24940,"mutability":"mutable","name":"profileID","nameLocation":"711:9:87","nodeType":"VariableDeclaration","scope":24960,"src":"703:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24939,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:19:87"},"returnParameters":{"id":24945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24960,"src":"754:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24943,"name":"uint256","nodeType":"ElementaryTypeName","src":"754:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"753:9:87"},"scope":25028,"src":"680:202:87","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21934],"body":{"id":24987,"nodeType":"Block","src":"1023:120:87","statements":[{"assignments":[24977],"declarations":[{"constant":false,"id":24977,"mutability":"mutable","name":"map","nameLocation":"1080:3:87","nodeType":"VariableDeclaration","scope":24987,"src":"1033:50:87","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":24976,"nodeType":"UserDefinedTypeName","pathNode":{"id":24975,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["1033:24:87","1058:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"1033:38:87"},"referencedDeclaration":3649,"src":"1033:38:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"}],"id":24981,"initialValue":{"baseExpression":{"id":24978,"name":"_skillMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24925,"src":"1086:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":24980,"indexExpression":{"id":24979,"name":"profileID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24963,"src":"1096:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:20:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1033:73:87"},{"expression":{"arguments":[{"id":24984,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24965,"src":"1130:5:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24982,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24977,"src":"1123:3:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":24983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1127:2:87","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":3767,"src":"1123:6:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (uint256,uint256)"}},"id":24985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":24972,"id":24986,"nodeType":"Return","src":"1116:20:87"}]},"documentation":{"id":24961,"nodeType":"StructuredDocumentation","src":"888:28:87","text":"@inheritdoc ISkillWallet"},"functionSelector":"b74044bc","id":24988,"implemented":true,"kind":"function","modifiers":[],"name":"getSkill","nameLocation":"930:8:87","nodeType":"FunctionDefinition","overrides":{"id":24967,"nodeType":"OverrideSpecifier","overrides":[],"src":"987:8:87"},"parameters":{"id":24966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24963,"mutability":"mutable","name":"profileID","nameLocation":"947:9:87","nodeType":"VariableDeclaration","scope":24988,"src":"939:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24962,"name":"uint256","nodeType":"ElementaryTypeName","src":"939:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24965,"mutability":"mutable","name":"index","nameLocation":"966:5:87","nodeType":"VariableDeclaration","scope":24988,"src":"958:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24964,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"938:34:87"},"returnParameters":{"id":24972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24988,"src":"1005:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1005:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24988,"src":"1014:7:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24970,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1004:18:87"},"scope":25028,"src":"921:222:87","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[21943],"body":{"id":25026,"nodeType":"Block","src":"1286:205:87","statements":[{"assignments":[25005],"declarations":[{"constant":false,"id":25005,"mutability":"mutable","name":"map","nameLocation":"1343:3:87","nodeType":"VariableDeclaration","scope":25026,"src":"1296:50:87","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"},"typeName":{"id":25004,"nodeType":"UserDefinedTypeName","pathNode":{"id":25003,"name":"EnumerableMapUpgradeable.UintToUintMap","nameLocations":["1296:24:87","1321:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":3649,"src":"1296:38:87"},"referencedDeclaration":3649,"src":"1296:38:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap"}},"visibility":"internal"}],"id":25009,"initialValue":{"baseExpression":{"id":25006,"name":"_skillMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24925,"src":"1349:9:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintToUintMap_$3649_storage_$","typeString":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap storage ref)"}},"id":25008,"indexExpression":{"id":25007,"name":"profileID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24991,"src":"1359:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1349:20:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1296:73:87"},{"assignments":[null,25011],"declarations":[null,{"constant":false,"id":25011,"mutability":"mutable","name":"currentExperience","nameLocation":"1390:17:87","nodeType":"VariableDeclaration","scope":25026,"src":"1382:25:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25010,"name":"uint256","nodeType":"ElementaryTypeName","src":"1382:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25016,"initialValue":{"arguments":[{"id":25014,"name":"skillID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24993,"src":"1422:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25012,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25005,"src":"1411:3:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":25013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1415:6:87","memberName":"tryGet","nodeType":"MemberAccess","referencedDeclaration":3801,"src":"1411:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256) view returns (bool,uint256)"}},"id":25015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1411:19:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"1379:51:87"},{"expression":{"arguments":[{"id":25020,"name":"skillID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24993,"src":"1448:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25021,"name":"currentExperience","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25011,"src":"1457:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25022,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24995,"src":"1477:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1457:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25017,"name":"map","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25005,"src":"1440:3:87","typeDescriptions":{"typeIdentifier":"t_struct$_UintToUintMap_$3649_storage_ptr","typeString":"struct EnumerableMapUpgradeable.UintToUintMap storage pointer"}},"id":25019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1444:3:87","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"1440:7:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintToUintMap_$3649_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToUintMap_$3649_storage_ptr_$","typeString":"function (struct EnumerableMapUpgradeable.UintToUintMap storage pointer,uint256,uint256) returns (bool)"}},"id":25024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1440:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25025,"nodeType":"ExpressionStatement","src":"1440:44:87"}]},"documentation":{"id":24989,"nodeType":"StructuredDocumentation","src":"1149:28:87","text":"@inheritdoc ISkillWallet"},"functionSelector":"95933f88","id":25027,"implemented":true,"kind":"function","modifiers":[{"id":24999,"kind":"modifierInvocation","modifierName":{"id":24998,"name":"onlyHub","nameLocations":["1278:7:87"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"1278:7:87"},"nodeType":"ModifierInvocation","src":"1278:7:87"}],"name":"recordExperience","nameLocation":"1191:16:87","nodeType":"FunctionDefinition","overrides":{"id":24997,"nodeType":"OverrideSpecifier","overrides":[],"src":"1269:8:87"},"parameters":{"id":24996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24991,"mutability":"mutable","name":"profileID","nameLocation":"1216:9:87","nodeType":"VariableDeclaration","scope":25027,"src":"1208:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1208:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24993,"mutability":"mutable","name":"skillID","nameLocation":"1235:7:87","nodeType":"VariableDeclaration","scope":25027,"src":"1227:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24992,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24995,"mutability":"mutable","name":"amount","nameLocation":"1252:6:87","nodeType":"VariableDeclaration","scope":25027,"src":"1244:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24994,"name":"uint256","nodeType":"ElementaryTypeName","src":"1244:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1207:52:87"},"returnParameters":{"id":25000,"nodeType":"ParameterList","parameters":[],"src":"1286:0:87"},"scope":25028,"src":"1182:309:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25029,"src":"254:1239:87","usedErrors":[22131,22133]}],"src":"32:1462:87"},"id":87},"contracts/profiles/TimeWallet.sol":{"ast":{"absolutePath":"contracts/profiles/TimeWallet.sol","exportedSymbols":{"AddressUpgradeable":[2265],"Constants":[22010],"ContextUpgradeable":[2307],"Errors":[22162],"HubControllableUpgradeable":[21121],"ITimeWallet":[21954],"Initializable":[300],"OwnableUpgradeable":[131],"TimeWallet":[25128]},"id":25129,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":25030,"literals":["solidity","^","0.8",".9"],"nodeType":"PragmaDirective","src":"32:23:88"},{"absolutePath":"contracts/common/access/HubControllableUpgradeable.sol","file":"../common/access/HubControllableUpgradeable.sol","id":25031,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25129,"sourceUnit":21122,"src":"57:57:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/interfaces/ITimeWallet.sol","file":"../common/interfaces/ITimeWallet.sol","id":25032,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25129,"sourceUnit":21955,"src":"115:46:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Constants.sol","file":"../common/libraries/Constants.sol","id":25033,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25129,"sourceUnit":22011,"src":"162:43:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/common/libraries/Errors.sol","file":"../common/libraries/Errors.sol","id":25034,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25129,"sourceUnit":22163,"src":"206:40:88","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25035,"name":"ITimeWallet","nameLocations":["271:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":21954,"src":"271:11:88"},"id":25036,"nodeType":"InheritanceSpecifier","src":"271:11:88"},{"baseName":{"id":25037,"name":"HubControllableUpgradeable","nameLocations":["284:26:88"],"nodeType":"IdentifierPath","referencedDeclaration":21121,"src":"284:26:88"},"id":25038,"nodeType":"InheritanceSpecifier","src":"284:26:88"}],"canonicalName":"TimeWallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":25128,"linearizedBaseContracts":[25128,21121,131,2307,300,21954],"name":"TimeWallet","nameLocation":"257:10:88","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":25042,"mutability":"mutable","name":"_lastTimeSlot","nameLocation":"354:13:88","nodeType":"VariableDeclaration","scope":25128,"src":"317:50:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":25041,"keyType":{"id":25039,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"317:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":25040,"name":"uint256","nodeType":"ElementaryTypeName","src":"336:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":25046,"mutability":"mutable","name":"_totalTimeSinceLastTimeSlot","nameLocation":"410:27:88","nodeType":"VariableDeclaration","scope":25128,"src":"373:64:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":25045,"keyType":{"id":25043,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"373:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":25044,"name":"uint256","nodeType":"ElementaryTypeName","src":"392:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"body":{"id":25057,"nodeType":"Block","src":"496:44:88","statements":[{"expression":{"arguments":[{"id":25054,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25048,"src":"529:3:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25053,"name":"__HubControllable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21096,"src":"506:22:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":25055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"506:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25056,"nodeType":"ExpressionStatement","src":"506:27:88"}]},"functionSelector":"c4d66de8","id":25058,"implemented":true,"kind":"function","modifiers":[{"id":25051,"kind":"modifierInvocation","modifierName":{"id":25050,"name":"initializer","nameLocations":["484:11:88"],"nodeType":"IdentifierPath","referencedDeclaration":202,"src":"484:11:88"},"nodeType":"ModifierInvocation","src":"484:11:88"}],"name":"initialize","nameLocation":"453:10:88","nodeType":"FunctionDefinition","parameters":{"id":25049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25048,"mutability":"mutable","name":"hub","nameLocation":"472:3:88","nodeType":"VariableDeclaration","scope":25058,"src":"464:11:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25047,"name":"address","nodeType":"ElementaryTypeName","src":"464:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"463:13:88"},"returnParameters":{"id":25052,"nodeType":"ParameterList","parameters":[],"src":"496:0:88"},"scope":25128,"src":"444:96:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[21953],"body":{"id":25126,"nodeType":"Block","src":"627:706:88","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25068,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25062,"src":"641:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":25069,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"649:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":25070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"659:21:88","memberName":"TIME_WALLET_SLOT_SIZE","nodeType":"MemberAccess","referencedDeclaration":21994,"src":"649:31:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"641:39:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25077,"nodeType":"IfStatement","src":"637:81:88","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25072,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"689:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":25074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"696:20:88","memberName":"ExceededLoggableTime","nodeType":"MemberAccess","referencedDeclaration":22153,"src":"689:27:88","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":25075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25076,"nodeType":"RevertStatement","src":"682:36:88"}},{"assignments":[25079],"declarations":[{"constant":false,"id":25079,"mutability":"mutable","name":"currentDay","nameLocation":"791:10:88","nodeType":"VariableDeclaration","scope":25126,"src":"783:18:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25078,"name":"uint256","nodeType":"ElementaryTypeName","src":"783:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25080,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"804:5:88","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":25081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"810:9:88","memberName":"timestamp","nodeType":"MemberAccess","src":"804:15:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":25082,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"822:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":25083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"832:21:88","memberName":"TIME_WALLET_SLOT_SIZE","nodeType":"MemberAccess","referencedDeclaration":21994,"src":"822:31:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"804:49:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"783:70:88"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":25086,"name":"_lastTimeSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25042,"src":"939:13:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25088,"indexExpression":{"id":25087,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25060,"src":"953:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"939:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":25089,"name":"currentDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25079,"src":"966:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"939:37:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":25124,"nodeType":"Block","src":"1105:222:88","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":25104,"name":"_totalTimeSinceLastTimeSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25046,"src":"1123:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25106,"indexExpression":{"id":25105,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25060,"src":"1151:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1123:38:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":25107,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25062,"src":"1164:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1123:45:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":25109,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22010,"src":"1171:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$22010_$","typeString":"type(library Constants)"}},"id":25110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1181:21:88","memberName":"TIME_WALLET_SLOT_SIZE","nodeType":"MemberAccess","referencedDeclaration":21994,"src":"1171:31:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1123:79:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25117,"nodeType":"IfStatement","src":"1119:137:88","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25112,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22162,"src":"1227:6:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$22162_$","typeString":"type(library Errors)"}},"id":25114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1234:20:88","memberName":"ExceededLoggableTime","nodeType":"MemberAccess","referencedDeclaration":22153,"src":"1227:27:88","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":25115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1227:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25116,"nodeType":"RevertStatement","src":"1220:36:88"}},{"expression":{"id":25122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25118,"name":"_totalTimeSinceLastTimeSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25046,"src":"1270:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25120,"indexExpression":{"id":25119,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25060,"src":"1298:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1270:38:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":25121,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25062,"src":"1312:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1270:46:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25123,"nodeType":"ExpressionStatement","src":"1270:46:88"}]},"id":25125,"nodeType":"IfStatement","src":"935:392:88","trueBody":{"id":25103,"nodeType":"Block","src":"978:121:88","statements":[{"expression":{"id":25095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25091,"name":"_lastTimeSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25042,"src":"992:13:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25093,"indexExpression":{"id":25092,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25060,"src":"1006:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"992:24:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25094,"name":"currentDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25079,"src":"1019:10:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"992:37:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25096,"nodeType":"ExpressionStatement","src":"992:37:88"},{"expression":{"id":25101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":25097,"name":"_totalTimeSinceLastTimeSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25046,"src":"1043:27:88","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":25099,"indexExpression":{"id":25098,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25060,"src":"1071:9:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1043:38:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":25100,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25062,"src":"1084:4:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1043:45:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25102,"nodeType":"ExpressionStatement","src":"1043:45:88"}]}}]},"functionSelector":"581823bd","id":25127,"implemented":true,"kind":"function","modifiers":[{"id":25066,"kind":"modifierInvocation","modifierName":{"id":25065,"name":"onlyHub","nameLocations":["619:7:88"],"nodeType":"IdentifierPath","referencedDeclaration":21081,"src":"619:7:88"},"nodeType":"ModifierInvocation","src":"619:7:88"}],"name":"spendTimeFor","nameLocation":"555:12:88","nodeType":"FunctionDefinition","overrides":{"id":25064,"nodeType":"OverrideSpecifier","overrides":[],"src":"610:8:88"},"parameters":{"id":25063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25060,"mutability":"mutable","name":"profileId","nameLocation":"576:9:88","nodeType":"VariableDeclaration","scope":25127,"src":"568:17:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25059,"name":"uint256","nodeType":"ElementaryTypeName","src":"568:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25062,"mutability":"mutable","name":"time","nameLocation":"595:4:88","nodeType":"VariableDeclaration","scope":25127,"src":"587:12:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25061,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:88","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"567:33:88"},"returnParameters":{"id":25067,"nodeType":"ParameterList","parameters":[],"src":"627:0:88"},"scope":25128,"src":"546:787:88","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25129,"src":"248:1087:88","usedErrors":[22131,22133,22153]}],"src":"32:1304:88"},"id":88}},"contracts":{"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:OwnableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:Initializable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol":{"ERC721Upgradeable":{"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":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506111a9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610cf9565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610d66565b61012461011f366004610d79565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610dae565b61030a565b005b61014f61015f366004610dd8565b610424565b61014f610172366004610dd8565b610455565b610124610185366004610d79565b610470565b61019d610198366004610e14565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610e2f565b610565565b61014f6101d4366004610e81565b610574565b6101046101e7366004610d79565b6105ac565b6100e76101fa366004610f5d565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461026090610f90565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610f90565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152606960205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610fca565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152606760205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526068602052604090205490565b60606066805461026090610f90565b6105703383836108ee565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610fca565b6105a6848484846109bc565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f8846109ef565b604051602001610609929190611017565b6040516020818303038152906040525b9392505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b6000818152606760205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107b65760405162461bcd60e51b815260040161037e90611046565b6001600160a01b0382166108185760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108258383836001610a82565b826001600160a01b031661083882610470565b6001600160a01b03161461085e5760405162461bcd60e51b815260040161037e90611046565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361094f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109c784848461077d565b6109d384848484610b0a565b6105a65760405162461bcd60e51b815260040161037e9061108b565b606060006109fc83610c0b565b600101905060008167ffffffffffffffff811115610a1c57610a1c610e6b565b6040519080825280601f01601f191660200182016040528015610a46576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5057509392505050565b60018111156105a6576001600160a01b03841615610ac8576001600160a01b03841660009081526068602052604081208054839290610ac29084906110f3565b90915550505b6001600160a01b038316156105a6576001600160a01b03831660009081526068602052604081208054839290610aff908490611106565b909155505050505050565b60006001600160a01b0384163b15610c0057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b4e903390899088908890600401611119565b6020604051808303816000875af1925050508015610b89575060408051601f3d908101601f19168201909252610b8691810190611156565b60015b610be6573d808015610bb7576040519150601f19603f3d011682016040523d82523d6000602084013e610bbc565b606091505b508051600003610bde5760405162461bcd60e51b815260040161037e9061108b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c4a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c76576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c9457662386f26fc10000830492506010015b6305f5e1008310610cac576305f5e100830492506008015b6127108310610cc057612710830492506004015b60648310610cd2576064830492506002015b600a831061024b5760010192915050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610d0b57600080fd5b813561061981610ce3565b60005b83811015610d31578181015183820152602001610d19565b50506000910152565b60008151808452610d52816020860160208601610d16565b601f01601f19169290920160200192915050565b6020815260006106196020830184610d3a565b600060208284031215610d8b57600080fd5b5035919050565b80356001600160a01b0381168114610da957600080fd5b919050565b60008060408385031215610dc157600080fd5b610dca83610d92565b946020939093013593505050565b600080600060608486031215610ded57600080fd5b610df684610d92565b9250610e0460208501610d92565b9150604084013590509250925092565b600060208284031215610e2657600080fd5b61061982610d92565b60008060408385031215610e4257600080fd5b610e4b83610d92565b915060208301358015158114610e6057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e9757600080fd5b610ea085610d92565b9350610eae60208601610d92565b925060408501359150606085013567ffffffffffffffff80821115610ed257600080fd5b818701915087601f830112610ee657600080fd5b813581811115610ef857610ef8610e6b565b604051601f8201601f19908116603f01168101908382118183101715610f2057610f20610e6b565b816040528281528a6020848701011115610f3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f7057600080fd5b610f7983610d92565b9150610f8760208401610d92565b90509250929050565b600181811c90821680610fa457607f821691505b602082108103610fc457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351611029818460208801610d16565b83519083019061103d818360208801610d16565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b6110dd565b8082018082111561024b5761024b6110dd565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061114c90830184610d3a565b9695505050505050565b60006020828403121561116857600080fd5b815161061981610ce356fea2646970667358221220ad5e7a6cab1c1f148568f22e8b91e5ab99bc16a04158facbbb2fec169363bec164736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A9 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 0xCF 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 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF9 JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xDAE JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x424 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x455 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x556 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x565 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xF5D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x230 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x24B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x65 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 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 0x28C SWAP1 PUSH2 0xF90 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D9 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 0x2BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP3 PUSH2 0x64E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315 DUP3 PUSH2 0x470 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 0x387 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3A3 JUMPI POP PUSH2 0x3A3 DUP2 CALLER PUSH2 0x620 JUMP JUMPDEST PUSH2 0x415 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 0x37E JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 PUSH2 0x6B0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x42E CALLER DUP3 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x66 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH2 0x570 CALLER DUP4 DUP4 PUSH2 0x8EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x57E CALLER DUP4 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x5A6 DUP5 DUP5 DUP5 DUP5 PUSH2 0x9BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B7 DUP3 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CE 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 0x5EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x619 JUMP JUMPDEST DUP1 PUSH2 0x5F8 DUP5 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x609 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E5 DUP3 PUSH2 0x470 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 0x72A DUP4 PUSH2 0x470 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 0x751 JUMPI POP PUSH2 0x751 DUP2 DUP6 PUSH2 0x620 JUMP JUMPDEST DUP1 PUSH2 0x775 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76A DUP5 PUSH2 0x2E3 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 0x790 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST PUSH2 0x825 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xA82 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x838 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x85E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x68 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 0x67 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 0x94F 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 0x37E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A 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 0x9C7 DUP5 DUP5 DUP5 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x9D3 DUP5 DUP5 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9FC DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH2 0xE6B 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 0xA46 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 PUSH2 0xA50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAC2 SWAP1 DUP5 SWAP1 PUSH2 0x10F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAFF SWAP1 DUP5 SWAP1 PUSH2 0x1106 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB4E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1119 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB89 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB86 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBE6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xBB7 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 0xBBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x775 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC4A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC76 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC94 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xCAC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xCC0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCD2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD31 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD19 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD52 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD16 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 0x619 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD8B 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 0xDA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDCA DUP4 PUSH2 0xD92 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 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDF6 DUP5 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH2 0xE04 PUSH1 0x20 DUP6 ADD PUSH2 0xD92 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 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x619 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE4B DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA0 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP4 POP PUSH2 0xEAE PUSH1 0x20 DUP7 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0xE6B 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 0xF20 JUMPI PUSH2 0xF20 PUSH2 0xE6B JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF39 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 0xF70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF79 DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH2 0xF87 PUSH1 0x20 DUP5 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFA4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC4 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1029 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x103D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x114C SWAP1 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD 0x5E PUSH27 0x6CAB1C1F148568F22E8B91E5AB99BC16A04158FACBBB2FEC169363 0xBE 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"751:17055:2:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1264":{"entryPoint":null,"id":1264,"parameterSlots":4,"returnSlots":0},"@_approve_1097":{"entryPoint":1712,"id":1097,"parameterSlots":2,"returnSlots":0},"@_baseURI_534":{"entryPoint":null,"id":534,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_1251":{"entryPoint":2690,"id":1251,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_1205":{"entryPoint":2826,"id":1205,"parameterSlots":4,"returnSlots":1},"@_exists_766":{"entryPoint":null,"id":766,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_800":{"entryPoint":1822,"id":800,"parameterSlots":2,"returnSlots":1},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_ownerOf_748":{"entryPoint":null,"id":748,"parameterSlots":1,"returnSlots":1},"@_requireMinted_1143":{"entryPoint":1614,"id":1143,"parameterSlots":1,"returnSlots":0},"@_safeTransfer_735":{"entryPoint":2492,"id":735,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_1129":{"entryPoint":2286,"id":1129,"parameterSlots":3,"returnSlots":0},"@_transfer_1073":{"entryPoint":1917,"id":1073,"parameterSlots":3,"returnSlots":0},"@approve_577":{"entryPoint":778,"id":577,"parameterSlots":2,"returnSlots":0},"@balanceOf_438":{"entryPoint":1232,"id":438,"parameterSlots":1,"returnSlots":1},"@getApproved_595":{"entryPoint":739,"id":595,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_630":{"entryPoint":1568,"id":630,"parameterSlots":2,"returnSlots":1},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@log10_3240":{"entryPoint":3083,"id":3240,"parameterSlots":1,"returnSlots":1},"@name_476":{"entryPoint":593,"id":476,"parameterSlots":0,"returnSlots":1},"@ownerOf_466":{"entryPoint":1136,"id":466,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_676":{"entryPoint":1109,"id":676,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_706":{"entryPoint":1396,"id":706,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_612":{"entryPoint":1381,"id":612,"parameterSlots":2,"returnSlots":0},"@supportsInterface_2520":{"entryPoint":null,"id":2520,"parameterSlots":1,"returnSlots":1},"@supportsInterface_414":{"entryPoint":511,"id":414,"parameterSlots":1,"returnSlots":1},"@symbol_486":{"entryPoint":1366,"id":486,"parameterSlots":0,"returnSlots":1},"@toString_2365":{"entryPoint":2543,"id":2365,"parameterSlots":1,"returnSlots":1},"@tokenURI_525":{"entryPoint":1452,"id":525,"parameterSlots":1,"returnSlots":1},"@transferFrom_657":{"entryPoint":1060,"id":657,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3474,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3933,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3544,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3713,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3631,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3502,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":4438,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3449,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3386,"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":4119,"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":4377,"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":3430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4042,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4235,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4166,"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},"checked_add_t_uint256":{"entryPoint":4358,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4339,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3350,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3984,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4317,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3691,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10527:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:89"},"nodeType":"YulFunctionCall","src":"125:12:89"},"nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:89"},"nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:89"},"nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:89"},"nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:89"},"nodeType":"YulFunctionCall","src":"71:51:89"},"nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:89"},"nodeType":"YulFunctionCall","src":"267:12:89"},"nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:89"},"nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:89"},"nodeType":"YulFunctionCall","src":"232:32:89"},"nodeType":"YulIf","src":"229:52:89"},{"nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:89"},"nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:89"},"nodeType":"YulFunctionCall","src":"335:30:89"},"nodeType":"YulExpressionStatement","src":"335:30:89"},{"nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nodeType":"YulBlock","src":"495:92:89","statements":[{"nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:89"},"nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:89"},"nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:89"},"nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:89"},"nodeType":"YulFunctionCall","src":"540:41:89"},"nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nodeType":"YulBlock","src":"658:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:89"},"nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:89"},"nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"771:5:89"},"nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"751:6:89"},"nodeType":"YulFunctionCall","src":"751:39:89"},"nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"695:2:89"},"nodeType":"YulFunctionCall","src":"695:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"709:19:89","statements":[{"nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:89"},"nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:89"},"nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:89"},"nodeType":"YulFunctionCall","src":"809:27:89"},"nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nodeType":"YulBlock","src":"897:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"921:5:89"},"nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"942:6:89"},"nodeType":"YulFunctionCall","src":"942:19:89"},"nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1005:3:89"},"nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:89"},"nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"970:34:89"},"nodeType":"YulFunctionCall","src":"970:76:89"},"nodeType":"YulExpressionStatement","src":"970:76:89"},{"nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1079:3:89"},"nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1096:3:89"},"nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1075:3:89"},"nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:89"},"nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1062:3:89"},"nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1254:6:89"},"nodeType":"YulFunctionCall","src":"1254:21:89"},"nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:89"},"nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1292:17:89"},"nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nodeType":"YulBlock","src":"1418:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1466:6:89"},"nodeType":"YulFunctionCall","src":"1466:12:89"},"nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1435:3:89"},"nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1431:3:89"},"nodeType":"YulFunctionCall","src":"1431:32:89"},"nodeType":"YulIf","src":"1428:52:89"},{"nodeType":"YulAssignment","src":"1489:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1499:12:89"},"nodeType":"YulFunctionCall","src":"1499:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1489:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:180:89"},{"body":{"nodeType":"YulBlock","src":"1634:102:89","statements":[{"nodeType":"YulAssignment","src":"1644:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:89"},"nodeType":"YulFunctionCall","src":"1652:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1644:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1717:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1713:3:89"},"nodeType":"YulFunctionCall","src":"1713:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1726:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1709:3:89"},"nodeType":"YulFunctionCall","src":"1709:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1697:3:89"},"nodeType":"YulFunctionCall","src":"1697:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:89"},"nodeType":"YulFunctionCall","src":"1679:51:89"},"nodeType":"YulExpressionStatement","src":"1679:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1614:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1625:4:89","type":""}],"src":"1533:203:89"},{"body":{"nodeType":"YulBlock","src":"1790:124:89","statements":[{"nodeType":"YulAssignment","src":"1800:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1822:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1809:12:89"},"nodeType":"YulFunctionCall","src":"1809:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1800:5:89"}]},{"body":{"nodeType":"YulBlock","src":"1892:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1901:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1894:6:89"},"nodeType":"YulFunctionCall","src":"1894:12:89"},"nodeType":"YulExpressionStatement","src":"1894:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1882:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1873:3:89"},"nodeType":"YulFunctionCall","src":"1873:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1869:3:89"},"nodeType":"YulFunctionCall","src":"1869:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1858:3:89"},"nodeType":"YulFunctionCall","src":"1858:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1848:2:89"},"nodeType":"YulFunctionCall","src":"1848:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1841:6:89"},"nodeType":"YulFunctionCall","src":"1841:50:89"},"nodeType":"YulIf","src":"1838:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1780:5:89","type":""}],"src":"1741:173:89"},{"body":{"nodeType":"YulBlock","src":"2006:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"2052:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:89"},"nodeType":"YulFunctionCall","src":"2054:12:89"},"nodeType":"YulExpressionStatement","src":"2054:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2023:3:89"},"nodeType":"YulFunctionCall","src":"2023:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2048:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2019:3:89"},"nodeType":"YulFunctionCall","src":"2019:32:89"},"nodeType":"YulIf","src":"2016:52:89"},{"nodeType":"YulAssignment","src":"2077:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2087:18:89"},"nodeType":"YulFunctionCall","src":"2087:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2077:6:89"}]},{"nodeType":"YulAssignment","src":"2125:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:89"},"nodeType":"YulFunctionCall","src":"2148:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2135:12:89"},"nodeType":"YulFunctionCall","src":"2135:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2125:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1964:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1975:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1987:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1995:6:89","type":""}],"src":"1919:254:89"},{"body":{"nodeType":"YulBlock","src":"2282:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"2328:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2337:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2330:6:89"},"nodeType":"YulFunctionCall","src":"2330:12:89"},"nodeType":"YulExpressionStatement","src":"2330:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2303:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2312:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2299:3:89"},"nodeType":"YulFunctionCall","src":"2299:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2324:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2295:3:89"},"nodeType":"YulFunctionCall","src":"2295:32:89"},"nodeType":"YulIf","src":"2292:52:89"},{"nodeType":"YulAssignment","src":"2353:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2382:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2363:18:89"},"nodeType":"YulFunctionCall","src":"2363:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:89"}]},{"nodeType":"YulAssignment","src":"2401:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2434:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2445:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:89"},"nodeType":"YulFunctionCall","src":"2430:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2411:18:89"},"nodeType":"YulFunctionCall","src":"2411:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2401:6:89"}]},{"nodeType":"YulAssignment","src":"2458:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2485:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2496:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:89"},"nodeType":"YulFunctionCall","src":"2481:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2468:12:89"},"nodeType":"YulFunctionCall","src":"2468:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2458:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2232:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2243:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2255:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2263:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2271:6:89","type":""}],"src":"2178:328:89"},{"body":{"nodeType":"YulBlock","src":"2581:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"2627:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2636:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2639:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2629:6:89"},"nodeType":"YulFunctionCall","src":"2629:12:89"},"nodeType":"YulExpressionStatement","src":"2629:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2602:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2611:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2598:3:89"},"nodeType":"YulFunctionCall","src":"2598:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2623:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2594:3:89"},"nodeType":"YulFunctionCall","src":"2594:32:89"},"nodeType":"YulIf","src":"2591:52:89"},{"nodeType":"YulAssignment","src":"2652:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2662:18:89"},"nodeType":"YulFunctionCall","src":"2662:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2547:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2558:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2570:6:89","type":""}],"src":"2511:186:89"},{"body":{"nodeType":"YulBlock","src":"2803:76:89","statements":[{"nodeType":"YulAssignment","src":"2813:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2825:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2836:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2821:3:89"},"nodeType":"YulFunctionCall","src":"2821:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2813:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2866:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2848:6:89"},"nodeType":"YulFunctionCall","src":"2848:25:89"},"nodeType":"YulExpressionStatement","src":"2848:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2772:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2783:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2794:4:89","type":""}],"src":"2702:177:89"},{"body":{"nodeType":"YulBlock","src":"2968:263:89","statements":[{"body":{"nodeType":"YulBlock","src":"3014:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3023:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3026:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3016:6:89"},"nodeType":"YulFunctionCall","src":"3016:12:89"},"nodeType":"YulExpressionStatement","src":"3016:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2989:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2998:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2985:3:89"},"nodeType":"YulFunctionCall","src":"2985:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2981:3:89"},"nodeType":"YulFunctionCall","src":"2981:32:89"},"nodeType":"YulIf","src":"2978:52:89"},{"nodeType":"YulAssignment","src":"3039:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3068:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3049:18:89"},"nodeType":"YulFunctionCall","src":"3049:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3087:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:89"},"nodeType":"YulFunctionCall","src":"3113:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3100:12:89"},"nodeType":"YulFunctionCall","src":"3100:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3091:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3194:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3187:6:89"},"nodeType":"YulFunctionCall","src":"3187:12:89"},"nodeType":"YulExpressionStatement","src":"3187:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3154:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3168:6:89"},"nodeType":"YulFunctionCall","src":"3168:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3161:6:89"},"nodeType":"YulFunctionCall","src":"3161:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3151:2:89"},"nodeType":"YulFunctionCall","src":"3151:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3144:6:89"},"nodeType":"YulFunctionCall","src":"3144:40:89"},"nodeType":"YulIf","src":"3141:60:89"},{"nodeType":"YulAssignment","src":"3210:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"3220:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3210:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2926:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2937:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2949:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2957:6:89","type":""}],"src":"2884:347:89"},{"body":{"nodeType":"YulBlock","src":"3268:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3285:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3292:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3297:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3288:3:89"},"nodeType":"YulFunctionCall","src":"3288:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3278:6:89"},"nodeType":"YulFunctionCall","src":"3278:31:89"},"nodeType":"YulExpressionStatement","src":"3278:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3325:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3318:6:89"},"nodeType":"YulFunctionCall","src":"3318:15:89"},"nodeType":"YulExpressionStatement","src":"3318:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:89"},"nodeType":"YulFunctionCall","src":"3342:15:89"},"nodeType":"YulExpressionStatement","src":"3342:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3236:127:89"},{"body":{"nodeType":"YulBlock","src":"3498:1008:89","statements":[{"body":{"nodeType":"YulBlock","src":"3545:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3554:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3557:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3547:6:89"},"nodeType":"YulFunctionCall","src":"3547:12:89"},"nodeType":"YulExpressionStatement","src":"3547:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3519:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3515:3:89"},"nodeType":"YulFunctionCall","src":"3515:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3540:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3511:3:89"},"nodeType":"YulFunctionCall","src":"3511:33:89"},"nodeType":"YulIf","src":"3508:53:89"},{"nodeType":"YulAssignment","src":"3570:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3599:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3580:18:89"},"nodeType":"YulFunctionCall","src":"3580:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3570:6:89"}]},{"nodeType":"YulAssignment","src":"3618:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:89"},"nodeType":"YulFunctionCall","src":"3647:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3628:18:89"},"nodeType":"YulFunctionCall","src":"3628:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3618:6:89"}]},{"nodeType":"YulAssignment","src":"3675:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:89"},"nodeType":"YulFunctionCall","src":"3698:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3685:12:89"},"nodeType":"YulFunctionCall","src":"3685:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3675:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3726:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:89"},"nodeType":"YulFunctionCall","src":"3753:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3740:12:89"},"nodeType":"YulFunctionCall","src":"3740:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3730:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3781:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3791:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3785:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3836:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3845:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3848:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3838:6:89"},"nodeType":"YulFunctionCall","src":"3838:12:89"},"nodeType":"YulExpressionStatement","src":"3838:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3824:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3832:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3821:2:89"},"nodeType":"YulFunctionCall","src":"3821:14:89"},"nodeType":"YulIf","src":"3818:34:89"},{"nodeType":"YulVariableDeclaration","src":"3861:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3875:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"3886:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:89"},"nodeType":"YulFunctionCall","src":"3871:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3865:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3941:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3950:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3953:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3943:6:89"},"nodeType":"YulFunctionCall","src":"3943:12:89"},"nodeType":"YulExpressionStatement","src":"3943:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3920:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3924:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3916:3:89"},"nodeType":"YulFunctionCall","src":"3916:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3931:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3912:3:89"},"nodeType":"YulFunctionCall","src":"3912:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3905:6:89"},"nodeType":"YulFunctionCall","src":"3905:35:89"},"nodeType":"YulIf","src":"3902:55:89"},{"nodeType":"YulVariableDeclaration","src":"3966:26:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3989:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3976:12:89"},"nodeType":"YulFunctionCall","src":"3976:16:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3970:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4015:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4017:16:89"},"nodeType":"YulFunctionCall","src":"4017:18:89"},"nodeType":"YulExpressionStatement","src":"4017:18:89"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4007:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4011:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4004:2:89"},"nodeType":"YulFunctionCall","src":"4004:10:89"},"nodeType":"YulIf","src":"4001:36:89"},{"nodeType":"YulVariableDeclaration","src":"4046:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4060:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4056:3:89"},"nodeType":"YulFunctionCall","src":"4056:7:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4050:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4072:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4092:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4086:5:89"},"nodeType":"YulFunctionCall","src":"4086:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4076:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4104:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4126:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4150:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4154:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4146:3:89"},"nodeType":"YulFunctionCall","src":"4146:13:89"},{"name":"_4","nodeType":"YulIdentifier","src":"4161:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4142:3:89"},"nodeType":"YulFunctionCall","src":"4142:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"4166:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:89"},"nodeType":"YulFunctionCall","src":"4138:31:89"},{"name":"_4","nodeType":"YulIdentifier","src":"4171:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4134:3:89"},"nodeType":"YulFunctionCall","src":"4134:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4122:3:89"},"nodeType":"YulFunctionCall","src":"4122:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4108:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4234:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4236:16:89"},"nodeType":"YulFunctionCall","src":"4236:18:89"},"nodeType":"YulExpressionStatement","src":"4236:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4193:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4205:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4190:2:89"},"nodeType":"YulFunctionCall","src":"4190:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4213:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4225:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4210:2:89"},"nodeType":"YulFunctionCall","src":"4210:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4187:2:89"},"nodeType":"YulFunctionCall","src":"4187:46:89"},"nodeType":"YulIf","src":"4184:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4276:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:89"},"nodeType":"YulFunctionCall","src":"4265:22:89"},"nodeType":"YulExpressionStatement","src":"4265:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4303:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4311:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4296:6:89"},"nodeType":"YulFunctionCall","src":"4296:18:89"},"nodeType":"YulExpressionStatement","src":"4296:18:89"},{"body":{"nodeType":"YulBlock","src":"4360:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4369:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4372:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4362:6:89"},"nodeType":"YulFunctionCall","src":"4362:12:89"},"nodeType":"YulExpressionStatement","src":"4362:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4337:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4341:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:89"},"nodeType":"YulFunctionCall","src":"4333:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"4346:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4329:3:89"},"nodeType":"YulFunctionCall","src":"4329:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4351:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4326:2:89"},"nodeType":"YulFunctionCall","src":"4326:33:89"},"nodeType":"YulIf","src":"4323:53:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4402:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4410:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:89"},"nodeType":"YulFunctionCall","src":"4398:15:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4419:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:89"},"nodeType":"YulFunctionCall","src":"4415:11:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4428:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4385:12:89"},"nodeType":"YulFunctionCall","src":"4385:46:89"},"nodeType":"YulExpressionStatement","src":"4385:46:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4455:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4463:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4451:3:89"},"nodeType":"YulFunctionCall","src":"4451:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"4468:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4447:3:89"},"nodeType":"YulFunctionCall","src":"4447:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"4473:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4440:6:89"},"nodeType":"YulFunctionCall","src":"4440:35:89"},"nodeType":"YulExpressionStatement","src":"4440:35:89"},{"nodeType":"YulAssignment","src":"4484:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4494:6:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4484:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3440:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3451:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3463:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3471:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3479:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3487:6:89","type":""}],"src":"3368:1138:89"},{"body":{"nodeType":"YulBlock","src":"4598:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"4644:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4653:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4656:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4646:6:89"},"nodeType":"YulFunctionCall","src":"4646:12:89"},"nodeType":"YulExpressionStatement","src":"4646:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4619:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4628:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4615:3:89"},"nodeType":"YulFunctionCall","src":"4615:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4640:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4611:3:89"},"nodeType":"YulFunctionCall","src":"4611:32:89"},"nodeType":"YulIf","src":"4608:52:89"},{"nodeType":"YulAssignment","src":"4669:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4679:18:89"},"nodeType":"YulFunctionCall","src":"4679:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4669:6:89"}]},{"nodeType":"YulAssignment","src":"4717:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4750:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4761:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4746:3:89"},"nodeType":"YulFunctionCall","src":"4746:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4727:18:89"},"nodeType":"YulFunctionCall","src":"4727:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4717:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4556:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4567:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4579:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4587:6:89","type":""}],"src":"4511:260:89"},{"body":{"nodeType":"YulBlock","src":"4831:325:89","statements":[{"nodeType":"YulAssignment","src":"4841:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4855:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"4858:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4851:3:89"},"nodeType":"YulFunctionCall","src":"4851:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4841:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4872:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4902:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"4908:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4898:3:89"},"nodeType":"YulFunctionCall","src":"4898:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4876:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4949:31:89","statements":[{"nodeType":"YulAssignment","src":"4951:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4965:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4973:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4961:3:89"},"nodeType":"YulFunctionCall","src":"4961:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4951:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4929:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4922:6:89"},"nodeType":"YulFunctionCall","src":"4922:26:89"},"nodeType":"YulIf","src":"4919:61:89"},{"body":{"nodeType":"YulBlock","src":"5039:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5060:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5067:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5072:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5063:3:89"},"nodeType":"YulFunctionCall","src":"5063:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:89"},"nodeType":"YulFunctionCall","src":"5053:31:89"},"nodeType":"YulExpressionStatement","src":"5053:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5104:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5107:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5097:6:89"},"nodeType":"YulFunctionCall","src":"5097:15:89"},"nodeType":"YulExpressionStatement","src":"5097:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5135:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5125:6:89"},"nodeType":"YulFunctionCall","src":"5125:15:89"},"nodeType":"YulExpressionStatement","src":"5125:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4995:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5018:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5026:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5015:2:89"},"nodeType":"YulFunctionCall","src":"5015:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4992:2:89"},"nodeType":"YulFunctionCall","src":"4992:38:89"},"nodeType":"YulIf","src":"4989:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"4811:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"4820:6:89","type":""}],"src":"4776:380:89"},{"body":{"nodeType":"YulBlock","src":"5335:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5352:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5363:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5345:6:89"},"nodeType":"YulFunctionCall","src":"5345:21:89"},"nodeType":"YulExpressionStatement","src":"5345:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5386:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5397:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5382:3:89"},"nodeType":"YulFunctionCall","src":"5382:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5402:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5375:6:89"},"nodeType":"YulFunctionCall","src":"5375:30:89"},"nodeType":"YulExpressionStatement","src":"5375:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5425:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5421:3:89"},"nodeType":"YulFunctionCall","src":"5421:18:89"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"5441:34:89","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5414:6:89"},"nodeType":"YulFunctionCall","src":"5414:62:89"},"nodeType":"YulExpressionStatement","src":"5414:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5496:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5507:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5492:3:89"},"nodeType":"YulFunctionCall","src":"5492:18:89"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"5512:3:89","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5485:6:89"},"nodeType":"YulFunctionCall","src":"5485:31:89"},"nodeType":"YulExpressionStatement","src":"5485:31:89"},{"nodeType":"YulAssignment","src":"5525:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5537:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5548:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5533:3:89"},"nodeType":"YulFunctionCall","src":"5533:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5525:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5312:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5326:4:89","type":""}],"src":"5161:397:89"},{"body":{"nodeType":"YulBlock","src":"5737:251:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5754:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5765:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5747:6:89"},"nodeType":"YulFunctionCall","src":"5747:21:89"},"nodeType":"YulExpressionStatement","src":"5747:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5788:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5799:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5784:3:89"},"nodeType":"YulFunctionCall","src":"5784:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5804:2:89","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5777:6:89"},"nodeType":"YulFunctionCall","src":"5777:30:89"},"nodeType":"YulExpressionStatement","src":"5777:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5827:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5838:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5823:3:89"},"nodeType":"YulFunctionCall","src":"5823:18:89"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"5843:34:89","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5816:6:89"},"nodeType":"YulFunctionCall","src":"5816:62:89"},"nodeType":"YulExpressionStatement","src":"5816:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:89"},"nodeType":"YulFunctionCall","src":"5894:18:89"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"5914:31:89","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5887:6:89"},"nodeType":"YulFunctionCall","src":"5887:59:89"},"nodeType":"YulExpressionStatement","src":"5887:59:89"},{"nodeType":"YulAssignment","src":"5955:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5967:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5978:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5963:3:89"},"nodeType":"YulFunctionCall","src":"5963:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5955:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5714:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5728:4:89","type":""}],"src":"5563:425:89"},{"body":{"nodeType":"YulBlock","src":"6167:235:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6184:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6195:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6177:6:89"},"nodeType":"YulFunctionCall","src":"6177:21:89"},"nodeType":"YulExpressionStatement","src":"6177:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6218:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6229:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6214:3:89"},"nodeType":"YulFunctionCall","src":"6214:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6234:2:89","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6207:6:89"},"nodeType":"YulFunctionCall","src":"6207:30:89"},"nodeType":"YulExpressionStatement","src":"6207:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6257:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6268:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6253:3:89"},"nodeType":"YulFunctionCall","src":"6253:18:89"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"6273:34:89","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6246:6:89"},"nodeType":"YulFunctionCall","src":"6246:62:89"},"nodeType":"YulExpressionStatement","src":"6246:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6328:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6339:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6324:3:89"},"nodeType":"YulFunctionCall","src":"6324:18:89"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"6344:15:89","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6317:6:89"},"nodeType":"YulFunctionCall","src":"6317:43:89"},"nodeType":"YulExpressionStatement","src":"6317:43:89"},{"nodeType":"YulAssignment","src":"6369:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6381:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6392:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6377:3:89"},"nodeType":"YulFunctionCall","src":"6377:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6369:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6144:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6158:4:89","type":""}],"src":"5993:409:89"},{"body":{"nodeType":"YulBlock","src":"6581:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6598:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6591:6:89"},"nodeType":"YulFunctionCall","src":"6591:21:89"},"nodeType":"YulExpressionStatement","src":"6591:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6632:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6643:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:89"},"nodeType":"YulFunctionCall","src":"6628:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6648:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:89"},"nodeType":"YulFunctionCall","src":"6621:30:89"},"nodeType":"YulExpressionStatement","src":"6621:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6682:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6667:3:89"},"nodeType":"YulFunctionCall","src":"6667:18:89"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"6687:26:89","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6660:6:89"},"nodeType":"YulFunctionCall","src":"6660:54:89"},"nodeType":"YulExpressionStatement","src":"6660:54:89"},{"nodeType":"YulAssignment","src":"6723:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6735:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6746:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6731:3:89"},"nodeType":"YulFunctionCall","src":"6731:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6723:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6558:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6572:4:89","type":""}],"src":"6407:348:89"},{"body":{"nodeType":"YulBlock","src":"6934:231:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6951:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6962:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6944:6:89"},"nodeType":"YulFunctionCall","src":"6944:21:89"},"nodeType":"YulExpressionStatement","src":"6944:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6985:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6996:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6981:3:89"},"nodeType":"YulFunctionCall","src":"6981:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7001:2:89","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6974:6:89"},"nodeType":"YulFunctionCall","src":"6974:30:89"},"nodeType":"YulExpressionStatement","src":"6974:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7035:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7020:3:89"},"nodeType":"YulFunctionCall","src":"7020:18:89"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"7040:34:89","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7013:6:89"},"nodeType":"YulFunctionCall","src":"7013:62:89"},"nodeType":"YulExpressionStatement","src":"7013:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7095:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7106:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7091:3:89"},"nodeType":"YulFunctionCall","src":"7091:18:89"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7111:11:89","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7084:6:89"},"nodeType":"YulFunctionCall","src":"7084:39:89"},"nodeType":"YulExpressionStatement","src":"7084:39:89"},{"nodeType":"YulAssignment","src":"7132:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7144:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7155:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7140:3:89"},"nodeType":"YulFunctionCall","src":"7140:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7132:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6911:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6925:4:89","type":""}],"src":"6760:405:89"},{"body":{"nodeType":"YulBlock","src":"7357:309:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7367:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7387:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7381:5:89"},"nodeType":"YulFunctionCall","src":"7381:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7371:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7442:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7450:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7438:3:89"},"nodeType":"YulFunctionCall","src":"7438:17:89"},{"name":"pos","nodeType":"YulIdentifier","src":"7457:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"7462:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"7403:34:89"},"nodeType":"YulFunctionCall","src":"7403:66:89"},"nodeType":"YulExpressionStatement","src":"7403:66:89"},{"nodeType":"YulVariableDeclaration","src":"7478:29:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7495:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"7500:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7491:3:89"},"nodeType":"YulFunctionCall","src":"7491:16:89"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"7482:5:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7516:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7538:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7532:5:89"},"nodeType":"YulFunctionCall","src":"7532:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"7520:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7593:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7601:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7589:3:89"},"nodeType":"YulFunctionCall","src":"7589:17:89"},{"name":"end_1","nodeType":"YulIdentifier","src":"7608:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"7615:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"7554:34:89"},"nodeType":"YulFunctionCall","src":"7554:70:89"},"nodeType":"YulExpressionStatement","src":"7554:70:89"},{"nodeType":"YulAssignment","src":"7633:27:89","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"7644:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"7651:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:89"},"nodeType":"YulFunctionCall","src":"7640:20:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7633:3:89"}]}]},"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":"7325:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7330:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7338:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7349:3:89","type":""}],"src":"7170:496:89"},{"body":{"nodeType":"YulBlock","src":"7845:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7862:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7873:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7855:6:89"},"nodeType":"YulFunctionCall","src":"7855:21:89"},"nodeType":"YulExpressionStatement","src":"7855:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7896:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7907:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7892:3:89"},"nodeType":"YulFunctionCall","src":"7892:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7912:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7885:6:89"},"nodeType":"YulFunctionCall","src":"7885:30:89"},"nodeType":"YulExpressionStatement","src":"7885:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7935:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7946:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7931:3:89"},"nodeType":"YulFunctionCall","src":"7931:18:89"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"7951:34:89","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7924:6:89"},"nodeType":"YulFunctionCall","src":"7924:62:89"},"nodeType":"YulExpressionStatement","src":"7924:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8006:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8017:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8002:3:89"},"nodeType":"YulFunctionCall","src":"8002:18:89"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"8022:7:89","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7995:6:89"},"nodeType":"YulFunctionCall","src":"7995:35:89"},"nodeType":"YulExpressionStatement","src":"7995:35:89"},{"nodeType":"YulAssignment","src":"8039:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8051:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8062:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8047:3:89"},"nodeType":"YulFunctionCall","src":"8047:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8039:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7822:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7836:4:89","type":""}],"src":"7671:401:89"},{"body":{"nodeType":"YulBlock","src":"8251:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8268:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8279:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8261:6:89"},"nodeType":"YulFunctionCall","src":"8261:21:89"},"nodeType":"YulExpressionStatement","src":"8261:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8302:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8313:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8298:3:89"},"nodeType":"YulFunctionCall","src":"8298:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8318:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8291:6:89"},"nodeType":"YulFunctionCall","src":"8291:30:89"},"nodeType":"YulExpressionStatement","src":"8291:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8341:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8352:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8337:3:89"},"nodeType":"YulFunctionCall","src":"8337:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"8357:34:89","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8330:6:89"},"nodeType":"YulFunctionCall","src":"8330:62:89"},"nodeType":"YulExpressionStatement","src":"8330:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8412:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8423:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8408:3:89"},"nodeType":"YulFunctionCall","src":"8408:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"8428:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8401:6:89"},"nodeType":"YulFunctionCall","src":"8401:34:89"},"nodeType":"YulExpressionStatement","src":"8401:34:89"},{"nodeType":"YulAssignment","src":"8444:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8456:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8467:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8452:3:89"},"nodeType":"YulFunctionCall","src":"8452:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8444:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8228:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8242:4:89","type":""}],"src":"8077:400:89"},{"body":{"nodeType":"YulBlock","src":"8656:175:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8673:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8684:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8666:6:89"},"nodeType":"YulFunctionCall","src":"8666:21:89"},"nodeType":"YulExpressionStatement","src":"8666:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8707:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8718:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8703:3:89"},"nodeType":"YulFunctionCall","src":"8703:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8723:2:89","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8696:6:89"},"nodeType":"YulFunctionCall","src":"8696:30:89"},"nodeType":"YulExpressionStatement","src":"8696:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8746:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8757:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8742:3:89"},"nodeType":"YulFunctionCall","src":"8742:18:89"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"8762:27:89","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8735:6:89"},"nodeType":"YulFunctionCall","src":"8735:55:89"},"nodeType":"YulExpressionStatement","src":"8735:55:89"},{"nodeType":"YulAssignment","src":"8799:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8811:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8822:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8807:3:89"},"nodeType":"YulFunctionCall","src":"8807:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8799:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8633:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8647:4:89","type":""}],"src":"8482:349:89"},{"body":{"nodeType":"YulBlock","src":"9010:240:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9027:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9038:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9020:6:89"},"nodeType":"YulFunctionCall","src":"9020:21:89"},"nodeType":"YulExpressionStatement","src":"9020:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9061:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9072:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9057:3:89"},"nodeType":"YulFunctionCall","src":"9057:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9077:2:89","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9050:6:89"},"nodeType":"YulFunctionCall","src":"9050:30:89"},"nodeType":"YulExpressionStatement","src":"9050:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9100:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9111:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9096:3:89"},"nodeType":"YulFunctionCall","src":"9096:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"9116:34:89","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9089:6:89"},"nodeType":"YulFunctionCall","src":"9089:62:89"},"nodeType":"YulExpressionStatement","src":"9089:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9171:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9182:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:89"},"nodeType":"YulFunctionCall","src":"9167:18:89"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"9187:20:89","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:89"},"nodeType":"YulFunctionCall","src":"9160:48:89"},"nodeType":"YulExpressionStatement","src":"9160:48:89"},{"nodeType":"YulAssignment","src":"9217:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9229:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9240:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9225:3:89"},"nodeType":"YulFunctionCall","src":"9225:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9217:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8987:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9001:4:89","type":""}],"src":"8836:414:89"},{"body":{"nodeType":"YulBlock","src":"9287:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9304:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9311:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9316:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9307:3:89"},"nodeType":"YulFunctionCall","src":"9307:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9297:6:89"},"nodeType":"YulFunctionCall","src":"9297:31:89"},"nodeType":"YulExpressionStatement","src":"9297:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9344:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9347:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9337:6:89"},"nodeType":"YulFunctionCall","src":"9337:15:89"},"nodeType":"YulExpressionStatement","src":"9337:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9368:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9371:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9361:6:89"},"nodeType":"YulFunctionCall","src":"9361:15:89"},"nodeType":"YulExpressionStatement","src":"9361:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"9255:127:89"},{"body":{"nodeType":"YulBlock","src":"9419:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9436:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9443:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9448:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9439:3:89"},"nodeType":"YulFunctionCall","src":"9439:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9429:6:89"},"nodeType":"YulFunctionCall","src":"9429:31:89"},"nodeType":"YulExpressionStatement","src":"9429:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9476:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9479:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9469:6:89"},"nodeType":"YulFunctionCall","src":"9469:15:89"},"nodeType":"YulExpressionStatement","src":"9469:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9500:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9503:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9493:6:89"},"nodeType":"YulFunctionCall","src":"9493:15:89"},"nodeType":"YulExpressionStatement","src":"9493:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9387:127:89"},{"body":{"nodeType":"YulBlock","src":"9568:79:89","statements":[{"nodeType":"YulAssignment","src":"9578:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9590:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"9593:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9586:3:89"},"nodeType":"YulFunctionCall","src":"9586:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9578:4:89"}]},{"body":{"nodeType":"YulBlock","src":"9619:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9621:16:89"},"nodeType":"YulFunctionCall","src":"9621:18:89"},"nodeType":"YulExpressionStatement","src":"9621:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"9610:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"9616:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9607:2:89"},"nodeType":"YulFunctionCall","src":"9607:11:89"},"nodeType":"YulIf","src":"9604:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9550:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"9553:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9559:4:89","type":""}],"src":"9519:128:89"},{"body":{"nodeType":"YulBlock","src":"9700:77:89","statements":[{"nodeType":"YulAssignment","src":"9710:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9721:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"9724:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9717:3:89"},"nodeType":"YulFunctionCall","src":"9717:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9710:3:89"}]},{"body":{"nodeType":"YulBlock","src":"9749:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9751:16:89"},"nodeType":"YulFunctionCall","src":"9751:18:89"},"nodeType":"YulExpressionStatement","src":"9751:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9741:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"9744:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9738:2:89"},"nodeType":"YulFunctionCall","src":"9738:10:89"},"nodeType":"YulIf","src":"9735:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9683:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"9686:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9692:3:89","type":""}],"src":"9652:125:89"},{"body":{"nodeType":"YulBlock","src":"9985:286:89","statements":[{"nodeType":"YulVariableDeclaration","src":"9995:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10013:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10018:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10009:3:89"},"nodeType":"YulFunctionCall","src":"10009:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"10022:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10005:3:89"},"nodeType":"YulFunctionCall","src":"10005:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9999:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10040:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10055:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"10063:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10051:3:89"},"nodeType":"YulFunctionCall","src":"10051:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10033:6:89"},"nodeType":"YulFunctionCall","src":"10033:34:89"},"nodeType":"YulExpressionStatement","src":"10033:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10087:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10098:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10083:3:89"},"nodeType":"YulFunctionCall","src":"10083:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10107:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"10115:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10103:3:89"},"nodeType":"YulFunctionCall","src":"10103:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10076:6:89"},"nodeType":"YulFunctionCall","src":"10076:43:89"},"nodeType":"YulExpressionStatement","src":"10076:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10139:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10150:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10135:3:89"},"nodeType":"YulFunctionCall","src":"10135:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"10155:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10128:6:89"},"nodeType":"YulFunctionCall","src":"10128:34:89"},"nodeType":"YulExpressionStatement","src":"10128:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10182:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10193:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10178:3:89"},"nodeType":"YulFunctionCall","src":"10178:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10198:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10171:6:89"},"nodeType":"YulFunctionCall","src":"10171:31:89"},"nodeType":"YulExpressionStatement","src":"10171:31:89"},{"nodeType":"YulAssignment","src":"10211:54:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"10237:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10249:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10260:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10245:3:89"},"nodeType":"YulFunctionCall","src":"10245:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"10219:17:89"},"nodeType":"YulFunctionCall","src":"10219:46:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10211:4:89"}]}]},"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":"9930:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9941:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9949:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9957:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9965:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9976:4:89","type":""}],"src":"9782:489:89"},{"body":{"nodeType":"YulBlock","src":"10356:169:89","statements":[{"body":{"nodeType":"YulBlock","src":"10402:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10411:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10414:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10404:6:89"},"nodeType":"YulFunctionCall","src":"10404:12:89"},"nodeType":"YulExpressionStatement","src":"10404:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10377:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"10386:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10373:3:89"},"nodeType":"YulFunctionCall","src":"10373:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"10398:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10369:3:89"},"nodeType":"YulFunctionCall","src":"10369:32:89"},"nodeType":"YulIf","src":"10366:52:89"},{"nodeType":"YulVariableDeclaration","src":"10427:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10446:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10440:5:89"},"nodeType":"YulFunctionCall","src":"10440:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10431:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10489:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"10465:23:89"},"nodeType":"YulFunctionCall","src":"10465:30:89"},"nodeType":"YulExpressionStatement","src":"10465:30:89"},{"nodeType":"YulAssignment","src":"10504:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"10514:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10504:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10322:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10333:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10345:6:89","type":""}],"src":"10276:249:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { 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_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_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, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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, shl(224, 0x4e487b71))\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 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(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, shl(224, 0x4e487b71))\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_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(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, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\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_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_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":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610cf9565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610d66565b61012461011f366004610d79565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610dae565b61030a565b005b61014f61015f366004610dd8565b610424565b61014f610172366004610dd8565b610455565b610124610185366004610d79565b610470565b61019d610198366004610e14565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610e2f565b610565565b61014f6101d4366004610e81565b610574565b6101046101e7366004610d79565b6105ac565b6100e76101fa366004610f5d565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606065805461026090610f90565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610f90565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152606960205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610fca565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152606760205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526068602052604090205490565b60606066805461026090610f90565b6105703383836108ee565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610fca565b6105a6848484846109bc565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f8846109ef565b604051602001610609929190611017565b6040516020818303038152906040525b9392505050565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b6000818152606760205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107b65760405162461bcd60e51b815260040161037e90611046565b6001600160a01b0382166108185760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108258383836001610a82565b826001600160a01b031661083882610470565b6001600160a01b03161461085e5760405162461bcd60e51b815260040161037e90611046565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361094f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109c784848461077d565b6109d384848484610b0a565b6105a65760405162461bcd60e51b815260040161037e9061108b565b606060006109fc83610c0b565b600101905060008167ffffffffffffffff811115610a1c57610a1c610e6b565b6040519080825280601f01601f191660200182016040528015610a46576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5057509392505050565b60018111156105a6576001600160a01b03841615610ac8576001600160a01b03841660009081526068602052604081208054839290610ac29084906110f3565b90915550505b6001600160a01b038316156105a6576001600160a01b03831660009081526068602052604081208054839290610aff908490611106565b909155505050505050565b60006001600160a01b0384163b15610c0057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b4e903390899088908890600401611119565b6020604051808303816000875af1925050508015610b89575060408051601f3d908101601f19168201909252610b8691810190611156565b60015b610be6573d808015610bb7576040519150601f19603f3d011682016040523d82523d6000602084013e610bbc565b606091505b508051600003610bde5760405162461bcd60e51b815260040161037e9061108b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c4a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c76576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c9457662386f26fc10000830492506010015b6305f5e1008310610cac576305f5e100830492506008015b6127108310610cc057612710830492506004015b60648310610cd2576064830492506002015b600a831061024b5760010192915050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610d0b57600080fd5b813561061981610ce3565b60005b83811015610d31578181015183820152602001610d19565b50506000910152565b60008151808452610d52816020860160208601610d16565b601f01601f19169290920160200192915050565b6020815260006106196020830184610d3a565b600060208284031215610d8b57600080fd5b5035919050565b80356001600160a01b0381168114610da957600080fd5b919050565b60008060408385031215610dc157600080fd5b610dca83610d92565b946020939093013593505050565b600080600060608486031215610ded57600080fd5b610df684610d92565b9250610e0460208501610d92565b9150604084013590509250925092565b600060208284031215610e2657600080fd5b61061982610d92565b60008060408385031215610e4257600080fd5b610e4b83610d92565b915060208301358015158114610e6057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e9757600080fd5b610ea085610d92565b9350610eae60208601610d92565b925060408501359150606085013567ffffffffffffffff80821115610ed257600080fd5b818701915087601f830112610ee657600080fd5b813581811115610ef857610ef8610e6b565b604051601f8201601f19908116603f01168101908382118183101715610f2057610f20610e6b565b816040528281528a6020848701011115610f3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f7057600080fd5b610f7983610d92565b9150610f8760208401610d92565b90509250929050565b600181811c90821680610fa457607f821691505b602082108103610fc457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351611029818460208801610d16565b83519083019061103d818360208801610d16565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b6110dd565b8082018082111561024b5761024b6110dd565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061114c90830184610d3a565b9695505050505050565b60006020828403121561116857600080fd5b815161061981610ce356fea2646970667358221220ad5e7a6cab1c1f148568f22e8b91e5ab99bc16a04158facbbb2fec169363bec164736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF 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 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF9 JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xDAE JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x424 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x455 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x556 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x565 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xF5D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x230 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x24B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x65 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 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 0x28C SWAP1 PUSH2 0xF90 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D9 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 0x2BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP3 PUSH2 0x64E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315 DUP3 PUSH2 0x470 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 0x387 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3A3 JUMPI POP PUSH2 0x3A3 DUP2 CALLER PUSH2 0x620 JUMP JUMPDEST PUSH2 0x415 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 0x37E JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 PUSH2 0x6B0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x42E CALLER DUP3 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x66 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH2 0x570 CALLER DUP4 DUP4 PUSH2 0x8EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x57E CALLER DUP4 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x5A6 DUP5 DUP5 DUP5 DUP5 PUSH2 0x9BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B7 DUP3 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CE 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 0x5EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x619 JUMP JUMPDEST DUP1 PUSH2 0x5F8 DUP5 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x609 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E5 DUP3 PUSH2 0x470 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 0x72A DUP4 PUSH2 0x470 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 0x751 JUMPI POP PUSH2 0x751 DUP2 DUP6 PUSH2 0x620 JUMP JUMPDEST DUP1 PUSH2 0x775 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76A DUP5 PUSH2 0x2E3 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 0x790 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST PUSH2 0x825 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xA82 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x838 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x85E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x68 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 0x67 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 0x94F 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 0x37E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A 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 0x9C7 DUP5 DUP5 DUP5 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x9D3 DUP5 DUP5 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9FC DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH2 0xE6B 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 0xA46 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 PUSH2 0xA50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAC2 SWAP1 DUP5 SWAP1 PUSH2 0x10F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAFF SWAP1 DUP5 SWAP1 PUSH2 0x1106 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB4E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1119 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB89 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB86 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBE6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xBB7 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 0xBBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x775 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC4A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC76 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC94 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xCAC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xCC0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCD2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD31 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD19 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD52 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD16 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 0x619 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD8B 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 0xDA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDCA DUP4 PUSH2 0xD92 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 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDF6 DUP5 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH2 0xE04 PUSH1 0x20 DUP6 ADD PUSH2 0xD92 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 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x619 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE4B DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA0 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP4 POP PUSH2 0xEAE PUSH1 0x20 DUP7 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0xE6B 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 0xF20 JUMPI PUSH2 0xF20 PUSH2 0xE6B JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF39 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 0xF70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF79 DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH2 0xF87 PUSH1 0x20 DUP5 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFA4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC4 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1029 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x103D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x114C SWAP1 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAD 0x5E PUSH27 0x6CAB1C1F148568F22E8B91E5AB99BC16A04158FACBBB2FEC169363 0xBE 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"751:17055:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:344;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;1987:344:2;;;;;;;;2932:98;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:89;;;1679:51;;1667:2;1652:18;4407:167:2;1533:203:89;3929:417:2;;;;;;:::i;:::-;;:::i;:::-;;5084:326;;;;;;:::i;:::-;;:::i;5476:179::-;;;;;;:::i;:::-;;:::i;2651:219::-;;;;;;:::i;:::-;;:::i;2390:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:89;;;2836:2;2821:18;2390:204:2;2702:177:89;3094:102:2;;;:::i;4641:153::-;;;;;;:::i;:::-;;:::i;5721:314::-;;;;;;:::i;:::-;;:::i;3262:276::-;;;;;;:::i;:::-;;:::i;4860:162::-;;;;;;:::i;:::-;;:::i;1987:344::-;2111:4;-1:-1:-1;;;;;;2146:51:2;;-1:-1:-1;;;2146:51:2;;:126;;-1:-1:-1;;;;;;;2213:59:2;;-1:-1:-1;;;2213:59:2;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:12;;;2288:36:2;2127:197;1987:344;-1:-1:-1;;1987:344:2:o;2932:98::-;2986:13;3018:5;3011:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:2;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:2;;4407:167::o;3929:417::-;4009:13;4025:34;4051:7;4025:25;:34::i;:::-;4009:50;;4083:5;-1:-1:-1;;;;;4077:11:2;:2;-1:-1:-1;;;;;4077:11:2;;4069:57;;;;-1:-1:-1;;;4069:57:2;;5363:2:89;4069:57:2;;;5345:21:89;5402:2;5382:18;;;5375:30;5441:34;5421:18;;;5414:62;-1:-1:-1;;;5492:18:89;;;5485:31;5533:19;;4069:57:2;;;;;;;;;929:10:10;-1:-1:-1;;;;;4158:21:2;;;;:62;;-1:-1:-1;4183:37:2;4200:5;929:10:10;4860:162:2;:::i;4183:37::-;4137:170;;;;-1:-1:-1;;;4137:170:2;;5765:2:89;4137:170:2;;;5747:21:89;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;5914:31;5894:18;;;5887:59;5963:19;;4137:170:2;5563:425:89;4137:170:2;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3999:347;3929:417;;:::o;5084:326::-;5273:41;929:10:10;5306:7:2;5273:18;:41::i;:::-;5265:99;;;;-1:-1:-1;;;5265:99:2;;;;;;;:::i;:::-;5375:28;5385:4;5391:2;5395:7;5375:9;:28::i;5476:179::-;5609:39;5626:4;5632:2;5636:7;5609:39;;;;;;;;;;;;:16;:39::i;2651:219::-;2723:7;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;;2785:56;;;;-1:-1:-1;;;2785:56:2;;6609:2:89;2785:56:2;;;6591:21:89;6648:2;6628:18;;;6621:30;-1:-1:-1;;;6667:18:89;;;6660:54;6731:18;;2785:56:2;6407:348:89;2390:204:2;2462:7;-1:-1:-1;;;;;2489:19:2;;2481:73;;;;-1:-1:-1;;;2481:73:2;;6962:2:89;2481:73:2;;;6944:21:89;7001:2;6981:18;;;6974:30;7040:34;7020:18;;;7013:62;-1:-1:-1;;;7091:18:89;;;7084:39;7140:19;;2481:73:2;6760:405:89;2481:73:2;-1:-1:-1;;;;;;2571:16:2;;;;;:9;:16;;;;;;;2390:204::o;3094:102::-;3150:13;3182:7;3175:14;;;;;:::i;4641:153::-;4735:52;929:10:10;4768:8:2;4778;4735:18;:52::i;:::-;4641:153;;:::o;5721:314::-;5889:41;929:10:10;5922:7:2;5889:18;:41::i;:::-;5881:99;;;;-1:-1:-1;;;5881:99:2;;;;;;;:::i;:::-;5990:38;6004:4;6010:2;6014:7;6023:4;5990:13;:38::i;:::-;5721:314;;;;:::o;3262:276::-;3335:13;3360:23;3375:7;3360:14;:23::i;:::-;3394:21;3418:10;3856:9;;;;;;;;;-1:-1:-1;3856:9:2;;;3780:92;3418:10;3394:34;;3469:1;3451:7;3445:21;:25;:86;;;;;;;;;;;;;;;;;3497:7;3506:18;:7;:16;:18::i;:::-;3480:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3445:86;3438:93;3262:276;-1:-1:-1;;;3262:276:2:o;4860:162::-;-1:-1:-1;;;;;4980:25:2;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162::o;14004:133::-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;14077:53;;;;-1:-1:-1;;;14077:53:2;;6609:2:89;14077:53:2;;;6591:21:89;6648:2;6628:18;;;6621:30;-1:-1:-1;;;6667:18:89;;;6660:54;6731:18;;14077:53:2;6407:348:89;14077:53:2;14004:133;:::o;13295:182::-;13369:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13369:29:2;-1:-1:-1;;;;;13369:29:2;;;;;;;;:24;;13422:34;13369:24;13422:25;:34::i;:::-;-1:-1:-1;;;;;13413:57:2;;;;;;;;;;;13295:182;;:::o;8012:272::-;8105:4;8121:13;8137:34;8163:7;8137:25;:34::i;:::-;8121:50;;8200:5;-1:-1:-1;;;;;8189:16:2;:7;-1:-1:-1;;;;;8189:16:2;;:52;;;;8209:32;8226:5;8233:7;8209:16;:32::i;:::-;8189:87;;;;8269:7;-1:-1:-1;;;;;8245:31:2;:20;8257:7;8245:11;:20::i;:::-;-1:-1:-1;;;;;8245:31:2;;8189:87;8181:96;8012:272;-1:-1:-1;;;;8012:272:2:o;11928:1255::-;12093:4;-1:-1:-1;;;;;12055:42:2;:34;12081:7;12055:25;:34::i;:::-;-1:-1:-1;;;;;12055:42:2;;12047:92;;;;-1:-1:-1;;;12047:92:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;12157:16:2;;12149:65;;;;-1:-1:-1;;;12149:65:2;;8279:2:89;12149:65:2;;;8261:21:89;8318:2;8298:18;;;8291:30;8357:34;8337:18;;;8330:62;-1:-1:-1;;;8408:18:89;;;8401:34;8452:19;;12149:65:2;8077:400:89;12149:65:2;12225:42;12246:4;12252:2;12256:7;12265:1;12225:20;:42::i;:::-;12405:4;-1:-1:-1;;;;;12367:42:2;:34;12393:7;12367:25;:34::i;:::-;-1:-1:-1;;;;;12367:42:2;;12359:92;;;;-1:-1:-1;;;12359:92:2;;;;;;;:::i;:::-;12520:24;;;;:15;:24;;;;;;;;12513:31;;-1:-1:-1;;;;;;12513:31:2;;;;;;-1:-1:-1;;;;;12988:15:2;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12988:20:2;;;13022:13;;;;;;;;;:18;;12513:31;13022:18;;;13060:16;;;:7;:16;;;;;;:21;;;;;;;;;;13097:27;;12536:7;;13097:27;;;3999:347;3929:417;;:::o;13613:307::-;13763:8;-1:-1:-1;;;;;13754:17:2;:5;-1:-1:-1;;;;;13754:17:2;;13746:55;;;;-1:-1:-1;;;13746:55:2;;8684:2:89;13746:55:2;;;8666:21:89;8723:2;8703:18;;;8696:30;8762:27;8742:18;;;8735:55;8807:18;;13746:55:2;8482:349:89;13746:55:2;-1:-1:-1;;;;;13811:25:2;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13811:46:2;;;;;;;;;;13872:41;;540::89;;;13872::2;;513:18:89;13872:41:2;;;;;;;13613:307;;;:::o;6896:305::-;7046:28;7056:4;7062:2;7066:7;7046:9;:28::i;:::-;7092:47;7115:4;7121:2;7125:7;7134:4;7092:22;:47::i;:::-;7084:110;;;;-1:-1:-1;;;7084:110:2;;;;;;;:::i;437:707:11:-;493:13;542:14;559:28;581:5;559:21;:28::i;:::-;590:1;559:32;542:49;;605:20;639:6;628:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:18:11;-1:-1:-1;605:41:11;-1:-1:-1;766:28:11;;;782:2;766:28;821:280;-1:-1:-1;;852:5:11;-1:-1:-1;;;986:2:11;975:14;;970:30;852:5;957:44;1045:2;1036:11;;;-1:-1:-1;1065:21:11;821:280;1065:21;-1:-1:-1;1121:6:11;437:707;-1:-1:-1;;;437:707:11:o;16258:396:2:-;16442:1;16430:9;:13;16426:222;;;-1:-1:-1;;;;;16463:18:2;;;16459:85;;-1:-1:-1;;;;;16501:15:2;;;;;;:9;:15;;;;;:28;;16520:9;;16501:15;:28;;16520:9;;16501:28;:::i;:::-;;;;-1:-1:-1;;16459:85:2;-1:-1:-1;;;;;16561:16:2;;;16557:81;;-1:-1:-1;;;;;16597:13:2;;;;;;:9;:13;;;;;:26;;16614:9;;16597:13;:26;;16614:9;;16597:26;:::i;:::-;;;;-1:-1:-1;;16258:396:2;;;;:::o;14689:853::-;14838:4;-1:-1:-1;;;;;14858:13:2;;1476:19:9;:23;14854:682:2;;14893:82;;-1:-1:-1;;;14893:82:2;;-1:-1:-1;;;;;14893:47:2;;;;;:82;;929:10:10;;14955:4:2;;14961:7;;14970:4;;14893:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14893:82:2;;;;;;;;-1:-1:-1;;14893:82:2;;;;;;;;;;;;:::i;:::-;;;14889:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15153:6;:13;15170:1;15153:18;15149:321;;15195:60;;-1:-1:-1;;;15195:60:2;;;;;;;:::i;15149:321::-;15422:6;15416:13;15407:6;15403:2;15399:15;15392:38;14889:595;-1:-1:-1;;;;;;15025:62:2;-1:-1:-1;;;15025:62:2;;-1:-1:-1;15018:69:2;;14854:682;-1:-1:-1;15521:4:2;14689:853;;;;;;:::o;9900:890:14:-;9953:7;;-1:-1:-1;;;10028:15:14;;10024:99;;-1:-1:-1;;;10063:15:14;;;-1:-1:-1;10106:2:14;10096:12;10024:99;10149:6;10140:5;:15;10136:99;;10184:6;10175:15;;;-1:-1:-1;10218:2:14;10208:12;10136:99;10261:6;10252:5;:15;10248:99;;10296:6;10287:15;;;-1:-1:-1;10330:2:14;10320:12;10248:99;10373:5;10364;:14;10360:96;;10407:5;10398:14;;;-1:-1:-1;10440:1:14;10430:11;10360:96;10482:5;10473;:14;10469:96;;10516:5;10507:14;;;-1:-1:-1;10549:1:14;10539:11;10469:96;10591:5;10582;:14;10578:96;;10625:5;10616:14;;;-1:-1:-1;10658:1:14;10648:11;10578:96;10700:5;10691;:14;10687:64;;10735:1;10725:11;10777:6;9900:890;-1:-1:-1;;9900:890:14:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:89;;1348:180;-1:-1:-1;1348:180:89:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:89;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:89:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:89;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5993:409::-;6195:2;6177:21;;;6234:2;6214:18;;;6207:30;6273:34;6268:2;6253:18;;6246:62;-1:-1:-1;;;6339:2:89;6324:18;;6317:43;6392:3;6377:19;;5993:409::o;7170:496::-;7349:3;7387:6;7381:13;7403:66;7462:6;7457:3;7450:4;7442:6;7438:17;7403:66;:::i;:::-;7532:13;;7491:16;;;;7554:70;7532:13;7491:16;7601:4;7589:17;;7554:70;:::i;:::-;7640:20;;7170:496;-1:-1:-1;;;;7170:496:89:o;7671:401::-;7873:2;7855:21;;;7912:2;7892:18;;;7885:30;7951:34;7946:2;7931:18;;7924:62;-1:-1:-1;;;8017:2:89;8002:18;;7995:35;8062:3;8047:19;;7671:401::o;8836:414::-;9038:2;9020:21;;;9077:2;9057:18;;;9050:30;9116:34;9111:2;9096:18;;9089:62;-1:-1:-1;;;9182:2:89;9167:18;;9160:48;9240:3;9225:19;;8836:414::o;9387:127::-;9448:10;9443:3;9439:20;9436:1;9429:31;9479:4;9476:1;9469:15;9503:4;9500:1;9493:15;9519:128;9586:9;;;9607:11;;;9604:37;;;9621:18;;:::i;9652:125::-;9717:9;;;9738:10;;;9735:36;;;9751:18;;:::i;9782:489::-;-1:-1:-1;;;;;10051:15:89;;;10033:34;;10103:15;;10098:2;10083:18;;10076:43;10150:2;10135:18;;10128:34;;;10198:3;10193:2;10178:18;;10171:31;;;9976:4;;10219:46;;10245:19;;10237:6;10219:46;:::i;:::-;10211:54;9782:489;-1:-1:-1;;;;;;9782:489:89:o;10276:249::-;10345:6;10398:2;10386:9;10377:7;10373:23;10369:32;10366:52;;;10414:1;10411;10404:12;10366:52;10446:9;10440:16;10465:30;10489:5;10465: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.17+commit.8df45f5f\"},\"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\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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}.\"},\"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}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":\"ERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":2525,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":329,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":331,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":335,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":339,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":343,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":1269,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:ERC721Upgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol":{"IERC721ReceiverUpgradeable":{"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.17+commit.8df45f5f\"},\"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-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":\"IERC721ReceiverUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol":{"IERC721Upgradeable":{"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.17+commit.8df45f5f\"},\"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-upgradeable/token/ERC721/IERC721Upgradeable.sol\":\"IERC721Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol":{"ERC721EnumerableUpgradeable":{"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":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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.17+commit.8df45f5f\"},\"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\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":\"ERC721EnumerableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x2c98457c4171d86094adf9a4fd8cd2402b7e3e309e961f07910a60a576dd100f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04d2ed5d0fc239e80a6b3f3044b423d4b5b1d1d5d9a08ba3454ea98b556760f9\",\"dweb:/ipfs/QmQQNic6ZcSqH6HZXLvm4woYbZ59er2szVQMdouwJPouhv\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0xf1870306db8391db9cf14b41be0da76857a88df0e5c623d2b2338fb30a3bd5ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://466149e3f8e96b81781b18dbb7b00a20d7172ddee599ef9d51b64c7e78ddfb1d\",\"dweb:/ipfs/QmTvLPy7ZF2Vm7JLSrknWm1Z2fyVaNhoXY2RFcRkmSKFAe\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":2525,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":329,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":331,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":335,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":339,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":343,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":1269,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":1434,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_ownedTokens","offset":0,"slot":"151","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},{"astId":1438,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_ownedTokensIndex","offset":0,"slot":"152","type":"t_mapping(t_uint256,t_uint256)"},{"astId":1441,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_allTokens","offset":0,"slot":"153","type":"t_array(t_uint256)dyn_storage"},{"astId":1445,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"_allTokensIndex","offset":0,"slot":"154","type":"t_mapping(t_uint256,t_uint256)"},{"astId":1777,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol:ERC721EnumerableUpgradeable","label":"__gap","offset":0,"slot":"155","type":"t_array(t_uint256)46_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol":{"ERC721URIStorageUpgradeable":{"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":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","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":{},"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.17+commit.8df45f5f\"},\"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\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"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\":\"ERC721 token with storage based token URI management.\",\"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}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol\":\"ERC721URIStorageUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol\":{\"keccak256\":\"0xbd5c6f8268a1d477f6a746ebedaf7fbcf412186f0c1c54ee104547cfb5e18edd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2723993f3fca4c29408c8a3084ab15ecf54930b58d4888a51b99a020ffe4c897\",\"dweb:/ipfs/QmdTvxnqkMyhZNFXLeHNNbuRPZcY1N4iJhm7YkQdUWVk4r\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":2525,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":329,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_name","offset":0,"slot":"101","type":"t_string_storage"},{"astId":331,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_symbol","offset":0,"slot":"102","type":"t_string_storage"},{"astId":335,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_owners","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_address)"},{"astId":339,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_balances","offset":0,"slot":"104","type":"t_mapping(t_address,t_uint256)"},{"astId":343,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_tokenApprovals","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_address)"},{"astId":349,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_operatorApprovals","offset":0,"slot":"106","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":1269,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"__gap","offset":0,"slot":"107","type":"t_array(t_uint256)44_storage"},{"astId":1806,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"_tokenURIs","offset":0,"slot":"151","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":1922,"contract":"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol:ERC721URIStorageUpgradeable","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol":{"IERC721EnumerableUpgradeable":{"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.17+commit.8df45f5f\"},\"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-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol\":\"IERC721EnumerableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0xf1870306db8391db9cf14b41be0da76857a88df0e5c623d2b2338fb30a3bd5ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://466149e3f8e96b81781b18dbb7b00a20d7172ddee599ef9d51b64c7e78ddfb1d\",\"dweb:/ipfs/QmTvLPy7ZF2Vm7JLSrknWm1Z2fyVaNhoXY2RFcRkmSKFAe\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol":{"IERC721MetadataUpgradeable":{"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.17+commit.8df45f5f\"},\"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-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":\"IERC721MetadataUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"AddressUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200ec0c20aa264a7b18ab26372b99b0cf65c6bae198e8f99a7cd78cfe38f1074c064736f6c63430008110033","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 0xE 0xC0 0xC2 EXP LOG2 PUSH5 0xA7B18AB263 PUSH19 0xB99B0CF65C6BAE198E8F99A7CD78CFE38F1074 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"194:8087:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8087:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200ec0c20aa264a7b18ab26372b99b0cf65c6bae198e8f99a7cd78cfe38f1074c064736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE 0xC0 0xC2 EXP LOG2 PUSH5 0xA7B18AB263 PUSH19 0xB99B0CF65C6BAE198E8F99A7CD78CFE38F1074 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"194:8087:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:ContextUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"StringsUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e21ba2a85ee3e90c39b9c613cc48241ec3e32fc00e57472d75ca176b9c6663c64736f6c63430008110033","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 RETURNDATACOPY 0x21 0xBA 0x2A DUP6 0xEE RETURNDATACOPY SWAP1 0xC3 SWAP12 SWAP13 PUSH2 0x3CC4 DUP3 COINBASE 0xEC RETURNDATACOPY ORIGIN 0xFC STOP 0xE5 PUSH21 0x72D75CA176B9C6663C64736F6C6343000811003300 ","sourceMap":"199:2098:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;199:2098:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e21ba2a85ee3e90c39b9c613cc48241ec3e32fc00e57472d75ca176b9c6663c64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY 0x21 0xBA 0x2A DUP6 0xEE RETURNDATACOPY SWAP1 0xC3 SWAP12 SWAP13 PUSH2 0x3CC4 DUP3 COINBASE 0xEC RETURNDATACOPY ORIGIN 0xFC STOP 0xE5 PUSH21 0x72D75CA176B9C6663C64736F6C6343000811003300 ","sourceMap":"199:2098:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":\"StringsUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"ERC165Upgradeable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"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.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"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}.\"}},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2525,"contract":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:ERC165Upgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"}],"types":{"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"IERC165Upgradeable":{"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.17+commit.8df45f5f\"},\"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-upgradeable/utils/introspection/IERC165Upgradeable.sol\":\"IERC165Upgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"MathUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b32ce41a6ba2dee214c06abe1d5380e33b42ca1fe9534c05db63af7dc4d9200f64736f6c63430008110033","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 0xB3 0x2C 0xE4 BYTE PUSH12 0xA2DEE214C06ABE1D5380E33B TIMESTAMP 0xCA 0x1F 0xE9 MSTORE8 0x4C SDIV 0xDB PUSH4 0xAF7DC4D9 KECCAK256 0xF PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12313:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12313:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b32ce41a6ba2dee214c06abe1d5380e33b42ca1fe9534c05db63af7dc4d9200f64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB3 0x2C 0xE4 BYTE PUSH12 0xA2DEE214C06ABE1D5380E33B TIMESTAMP 0xCA 0x1F 0xE9 MSTORE8 0x4C SDIV 0xDB PUSH4 0xAF7DC4D9 KECCAK256 0xF PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"202:12313:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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-upgradeable/utils/math/MathUpgradeable.sol\":\"MathUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol":{"EnumerableMapUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c0b2795a1bae4bc5804ef08f92d99ba1c5b93c34428d0e334513c0f942bd1c764736f6c63430008110033","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 0xC SIGNEXTEND 0x27 SWAP6 LOG1 0xBA 0xE4 0xBC PC DIV 0xEF ADDMOD 0xF9 0x2D SWAP10 0xBA SHR JUMPDEST SWAP4 0xC3 DIFFICULTY 0x28 0xD0 0xE3 CALLVALUE MLOAD EXTCODECOPY 0xF SWAP5 0x2B 0xD1 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1632:15845:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1632:15845:15;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c0b2795a1bae4bc5804ef08f92d99ba1c5b93c34428d0e334513c0f942bd1c764736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC SIGNEXTEND 0x27 SWAP6 LOG1 0xBA 0xE4 0xBC PC DIV 0xEF ADDMOD 0xF9 0x2D SWAP10 0xBA SHR JUMPDEST SWAP4 0xC3 DIFFICULTY 0x28 0xD0 0xE3 CALLVALUE MLOAD EXTCODECOPY 0xF SWAP5 0x2B 0xD1 0xC7 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1632:15845:15:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableMap for EnumerableMap.UintToAddressMap;     // Declare a set state variable     EnumerableMap.UintToAddressMap private myMap; } ``` The following map types are supported: - `uint256 -> address` (`UintToAddressMap`) since v3.0.0 - `address -> uint256` (`AddressToUintMap`) since v4.6.0 - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0 - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0 - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0 [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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an array of EnumerableMap. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\":\"EnumerableMapUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\":{\"keccak256\":\"0xba40dd2868045311c0890e57bca07dd7ce0b62730289f90971cf29d275a44e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f00ff27209e8869a2d415d1070c472857478000dd6b70d7f336e91bd61da863\",\"dweb:/ipfs/Qmb8wEe7RmqcNuyG8wC2xRR2d12S5iHjrNDSAES4YMEC4B\"]},\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol\":{\"keccak256\":\"0x4807db844a856813048b5af81a764fdd25a0ae8876a3132593e8d21ddc6b607c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ca2fce75b1b20047a41f6f67d2d1be3d24308bf34668a22c2f971689e319a70\",\"dweb:/ipfs/QmQ8hxhdkDmwK9CBURbV2eaEeFTBYb3bB3ByWw1GmjvEWo\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol":{"EnumerableSetUpgradeable":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e07d659d583db81e98d6161b3b6a35d4ccaef55fdad1995aa16dc295ed883b3164736f6c63430008110033","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 0xE0 PUSH30 0x659D583DB81E98D6161B3B6A35D4CCAEF55FDAD1995AA16DC295ED883B31 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1321:11641:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1321:11641:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e07d659d583db81e98d6161b3b6a35d4ccaef55fdad1995aa16dc295ed883b3164736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 PUSH30 0x659D583DB81E98D6161B3B6A35D4CCAEF55FDAD1995AA16DC295ED883B31 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1321:11641:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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-upgradeable/utils/structs/EnumerableSetUpgradeable.sol\":\"EnumerableSetUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol\":{\"keccak256\":\"0x4807db844a856813048b5af81a764fdd25a0ae8876a3132593e8d21ddc6b607c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ca2fce75b1b20047a41f6f67d2d1be3d24308bf34668a22c2f971689e319a70\",\"dweb:/ipfs/QmQ8hxhdkDmwK9CBURbV2eaEeFTBYb3bB3ByWw1GmjvEWo\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":5163,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)5158_storage"},"t_struct(RoleData)5158_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":5155,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":5157,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":5535,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"@openzeppelin/contracts/governance/Governor.sol":{"Governor":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Core of the governance system, designed to be extended though various modules. This contract is abstract and requires several function to be implemented in various modules: - A counting module must implement {quorum}, {_quorumReached}, {_voteSucceeded} and {_countVote} - A voting module must implement {_getVotes} - Additionanly, the {votingPeriod} must also be implemented _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Sets the value for {name} and {version}\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/Governor.sol\":\"Governor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/Governor.sol:Governor","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/IGovernor.sol":{"IGovernor":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"COUNTING_MODE()":"dd4e2ba5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the {Governor} core. _Available since v4.3._\",\"events\":{\"ProposalCanceled(uint256)\":{\"details\":\"Emitted when a proposal is canceled.\"},\"ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalExecuted(uint256)\":{\"details\":\"Emitted when a proposal is executed.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast without params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used.\"},\"VoteCastWithParams(address,uint256,uint8,uint256,string,bytes)\":{\"details\":\"Emitted when a vote is cast with params. Note: `support` values should be seen as buckets. Their interpretation depends on the voting module used. `params` are additional encoded parameters. Their intepepretation also depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"Cast a vote Emits a {VoteCast} event.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote using the user's cryptographic signature. Emits a {VoteCast} event.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"Cast a vote with a reason Emits a {VoteCast} event.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature. Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the deadline to be reached. Emits a {ProposalExecuted} event. Note: some module can modify the requirements for execution, for example by adding an additional timelock.\"},\"getVotes(address,uint256)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber`. Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or multiple), {ERC20Votes} tokens.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Hashing function used to (re)build the proposal id from the proposal details..\"},\"name()\":{\"details\":\"Name of the governor instance (used in building the ERC712 domain separator).\"},\"proposalDeadline(uint256)\":{\"details\":\"Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote during this block.\"},\"proposalSnapshot(uint256)\":{\"details\":\"Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the following block.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends {IGovernor-votingPeriod} blocks after the voting starts. Emits a {ProposalCreated} event.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"state(uint256)\":{\"details\":\"Current state of a proposal, following Compound's convention\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"version()\":{\"details\":\"Version of the governor instance (used in building the ERC712 domain separator). Default: \\\"1\\\"\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"getVotes(address,uint256)\":{\"notice\":\"module:reputation\"},\"getVotesWithParams(address,uint256,bytes)\":{\"notice\":\"module:reputation\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"notice\":\"module:core\"},\"name()\":{\"notice\":\"module:core\"},\"proposalDeadline(uint256)\":{\"notice\":\"module:core\"},\"proposalSnapshot(uint256)\":{\"notice\":\"module:core\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"state(uint256)\":{\"notice\":\"module:core\"},\"version()\":{\"notice\":\"module:core\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":\"IGovernor\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/governance/TimelockController.sol":{"TimelockController":{"abi":[{"inputs":[{"internalType":"uint256","name":"minDelay","type":"uint256"},{"internalType":"address[]","name":"proposers","type":"address[]"},{"internalType":"address[]","name":"executors","type":"address[]"},{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"CallExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"CallScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"Cancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"MinDelayChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"CANCELLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXECUTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"executeBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getMinDelay","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperation","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperationBatch","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperation","outputs":[{"internalType":"bool","name":"registered","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationDone","outputs":[{"internalType":"bool","name":"done","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationPending","outputs":[{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationReady","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"scheduleBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_7444":{"entryPoint":null,"id":7444,"parameterSlots":4,"returnSlots":0},"@_grantRole_5422":{"entryPoint":648,"id":5422,"parameterSlots":2,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_setRoleAdmin_5390":{"entryPoint":557,"id":5390,"parameterSlots":2,"returnSlots":0},"@_setupRole_5362":{"entryPoint":632,"id":5362,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_5285":{"entryPoint":null,"id":5285,"parameterSlots":1,"returnSlots":1},"@hasRole_5218":{"entryPoint":null,"id":5218,"parameterSlots":2,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":830,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_fromMemory":{"entryPoint":859,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_address_fromMemory":{"entryPoint":1032,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"increment_t_uint256":{"entryPoint":1189,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":1167,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":808,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2649:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"206:117:89","statements":[{"nodeType":"YulAssignment","src":"216:22:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"231:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"225:5:89"},"nodeType":"YulFunctionCall","src":"225:13:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:89"}]},{"body":{"nodeType":"YulBlock","src":"301:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"313:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"303:6:89"},"nodeType":"YulFunctionCall","src":"303:12:89"},"nodeType":"YulExpressionStatement","src":"303:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"260:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"271:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"291:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"282:3:89"},"nodeType":"YulFunctionCall","src":"282:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"278:3:89"},"nodeType":"YulFunctionCall","src":"278:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"267:3:89"},"nodeType":"YulFunctionCall","src":"267:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"257:2:89"},"nodeType":"YulFunctionCall","src":"257:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"250:6:89"},"nodeType":"YulFunctionCall","src":"250:50:89"},"nodeType":"YulIf","src":"247:70:89"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"185:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"196:5:89","type":""}],"src":"146:177:89"},{"body":{"nodeType":"YulBlock","src":"403:848:89","statements":[{"body":{"nodeType":"YulBlock","src":"452:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"461:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"464:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"454:6:89"},"nodeType":"YulFunctionCall","src":"454:12:89"},"nodeType":"YulExpressionStatement","src":"454:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"431:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"439:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:89"},"nodeType":"YulFunctionCall","src":"427:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"446:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"423:3:89"},"nodeType":"YulFunctionCall","src":"423:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"416:6:89"},"nodeType":"YulFunctionCall","src":"416:35:89"},"nodeType":"YulIf","src":"413:55:89"},{"nodeType":"YulVariableDeclaration","src":"477:23:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"493:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"487:5:89"},"nodeType":"YulFunctionCall","src":"487:13:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"481:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"509:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"519:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"513:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"532:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"550:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"554:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"546:3:89"},"nodeType":"YulFunctionCall","src":"546:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"542:3:89"},"nodeType":"YulFunctionCall","src":"542:18:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"536:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"583:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"585:16:89"},"nodeType":"YulFunctionCall","src":"585:18:89"},"nodeType":"YulExpressionStatement","src":"585:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"575:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"579:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"572:2:89"},"nodeType":"YulFunctionCall","src":"572:10:89"},"nodeType":"YulIf","src":"569:36:89"},{"nodeType":"YulVariableDeclaration","src":"614:20:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"628:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"631:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"624:3:89"},"nodeType":"YulFunctionCall","src":"624:10:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"618:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"643:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"663:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"657:5:89"},"nodeType":"YulFunctionCall","src":"657:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"647:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"675:56:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"697:6:89"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"713:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"717:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"709:3:89"},"nodeType":"YulFunctionCall","src":"709:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"726:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"722:3:89"},"nodeType":"YulFunctionCall","src":"722:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:89"},"nodeType":"YulFunctionCall","src":"705:25:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"693:3:89"},"nodeType":"YulFunctionCall","src":"693:38:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"679:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"790:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"792:16:89"},"nodeType":"YulFunctionCall","src":"792:18:89"},"nodeType":"YulExpressionStatement","src":"792:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"749:10:89"},{"name":"_3","nodeType":"YulIdentifier","src":"761:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"746:2:89"},"nodeType":"YulFunctionCall","src":"746:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"769:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"781:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"766:2:89"},"nodeType":"YulFunctionCall","src":"766:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"743:2:89"},"nodeType":"YulFunctionCall","src":"743:46:89"},"nodeType":"YulIf","src":"740:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"828:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"832:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"821:6:89"},"nodeType":"YulFunctionCall","src":"821:22:89"},"nodeType":"YulExpressionStatement","src":"821:22:89"},{"nodeType":"YulVariableDeclaration","src":"852:17:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"863:6:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"856:3:89","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"885:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"893:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"878:6:89"},"nodeType":"YulFunctionCall","src":"878:18:89"},"nodeType":"YulExpressionStatement","src":"878:18:89"},{"nodeType":"YulAssignment","src":"905:22:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"916:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"924:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"912:3:89"},"nodeType":"YulFunctionCall","src":"912:15:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"905:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"936:38:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"958:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"966:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"954:3:89"},"nodeType":"YulFunctionCall","src":"954:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"971:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"950:3:89"},"nodeType":"YulFunctionCall","src":"950:24:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"940:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1002:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1014:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1004:6:89"},"nodeType":"YulFunctionCall","src":"1004:12:89"},"nodeType":"YulExpressionStatement","src":"1004:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"989:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"997:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"986:2:89"},"nodeType":"YulFunctionCall","src":"986:15:89"},"nodeType":"YulIf","src":"983:35:89"},{"nodeType":"YulVariableDeclaration","src":"1027:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1042:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1050:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1038:3:89"},"nodeType":"YulFunctionCall","src":"1038:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1031:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:103:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1139:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1174:3:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1144:29:89"},"nodeType":"YulFunctionCall","src":"1144:34:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1132:6:89"},"nodeType":"YulFunctionCall","src":"1132:47:89"},"nodeType":"YulExpressionStatement","src":"1132:47:89"},{"nodeType":"YulAssignment","src":"1192:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1203:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1208:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1199:3:89"},"nodeType":"YulFunctionCall","src":"1199:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1192:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1073:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1078:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1070:2:89"},"nodeType":"YulFunctionCall","src":"1070:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1086:23:89","statements":[{"nodeType":"YulAssignment","src":"1088:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1099:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1104:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1095:3:89"},"nodeType":"YulFunctionCall","src":"1095:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1088:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1066:3:89","statements":[]},"src":"1062:159:89"},{"nodeType":"YulAssignment","src":"1230:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1239:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1230:5:89"}]}]},"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"377:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"385:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"393:5:89","type":""}],"src":"328:923:89"},{"body":{"nodeType":"YulBlock","src":"1438:579:89","statements":[{"body":{"nodeType":"YulBlock","src":"1485:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1494:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1497:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1487:6:89"},"nodeType":"YulFunctionCall","src":"1487:12:89"},"nodeType":"YulExpressionStatement","src":"1487:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1459:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1468:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1455:3:89"},"nodeType":"YulFunctionCall","src":"1455:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1480:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1451:3:89"},"nodeType":"YulFunctionCall","src":"1451:33:89"},"nodeType":"YulIf","src":"1448:53:89"},{"nodeType":"YulAssignment","src":"1510:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1526:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1520:5:89"},"nodeType":"YulFunctionCall","src":"1520:16:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1510:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1545:39:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1569:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1580:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1565:3:89"},"nodeType":"YulFunctionCall","src":"1565:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1559:5:89"},"nodeType":"YulFunctionCall","src":"1559:25:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1549:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1593:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1611:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1615:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1607:3:89"},"nodeType":"YulFunctionCall","src":"1607:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1619:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1603:3:89"},"nodeType":"YulFunctionCall","src":"1603:18:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1597:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1648:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1657:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1660:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1650:6:89"},"nodeType":"YulFunctionCall","src":"1650:12:89"},"nodeType":"YulExpressionStatement","src":"1650:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1636:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1644:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1633:2:89"},"nodeType":"YulFunctionCall","src":"1633:14:89"},"nodeType":"YulIf","src":"1630:34:89"},{"nodeType":"YulAssignment","src":"1673:82:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1727:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1738:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1723:3:89"},"nodeType":"YulFunctionCall","src":"1723:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1747:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1683:39:89"},"nodeType":"YulFunctionCall","src":"1683:72:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1673:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1764:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1790:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1801:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1786:3:89"},"nodeType":"YulFunctionCall","src":"1786:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1780:5:89"},"nodeType":"YulFunctionCall","src":"1780:25:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1768:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1834:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1843:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1846:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1836:6:89"},"nodeType":"YulFunctionCall","src":"1836:12:89"},"nodeType":"YulExpressionStatement","src":"1836:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1820:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1830:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1817:2:89"},"nodeType":"YulFunctionCall","src":"1817:16:89"},"nodeType":"YulIf","src":"1814:36:89"},{"nodeType":"YulAssignment","src":"1859:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1913:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1924:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1909:3:89"},"nodeType":"YulFunctionCall","src":"1909:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1935:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1869:39:89"},"nodeType":"YulFunctionCall","src":"1869:74:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1859:6:89"}]},{"nodeType":"YulAssignment","src":"1952:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1996:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2007:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1992:3:89"},"nodeType":"YulFunctionCall","src":"1992:18:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1962:29:89"},"nodeType":"YulFunctionCall","src":"1962:49:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1952:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1380:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1391:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1403:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1411:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1419:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1427:6:89","type":""}],"src":"1256:761:89"},{"body":{"nodeType":"YulBlock","src":"2054:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2071:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2078:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2083:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2074:3:89"},"nodeType":"YulFunctionCall","src":"2074:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2064:6:89"},"nodeType":"YulFunctionCall","src":"2064:31:89"},"nodeType":"YulExpressionStatement","src":"2064:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2111:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2114:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2104:6:89"},"nodeType":"YulFunctionCall","src":"2104:15:89"},"nodeType":"YulExpressionStatement","src":"2104:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2135:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2138:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2128:6:89"},"nodeType":"YulFunctionCall","src":"2128:15:89"},"nodeType":"YulExpressionStatement","src":"2128:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"2022:127:89"},{"body":{"nodeType":"YulBlock","src":"2201:185:89","statements":[{"body":{"nodeType":"YulBlock","src":"2240:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2261:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2268:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2273:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2264:3:89"},"nodeType":"YulFunctionCall","src":"2264:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2254:6:89"},"nodeType":"YulFunctionCall","src":"2254:31:89"},"nodeType":"YulExpressionStatement","src":"2254:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2305:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2308:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2298:6:89"},"nodeType":"YulFunctionCall","src":"2298:15:89"},"nodeType":"YulExpressionStatement","src":"2298:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2333:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2336:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2326:6:89"},"nodeType":"YulFunctionCall","src":"2326:15:89"},"nodeType":"YulExpressionStatement","src":"2326:15:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2217:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2228:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2224:3:89"},"nodeType":"YulFunctionCall","src":"2224:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2214:2:89"},"nodeType":"YulFunctionCall","src":"2214:17:89"},"nodeType":"YulIf","src":"2211:140:89"},{"nodeType":"YulAssignment","src":"2360:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2371:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2378:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2367:3:89"},"nodeType":"YulFunctionCall","src":"2367:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2360:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2183:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2193:3:89","type":""}],"src":"2154:232:89"},{"body":{"nodeType":"YulBlock","src":"2528:119:89","statements":[{"nodeType":"YulAssignment","src":"2538:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2550:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2561:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2546:3:89"},"nodeType":"YulFunctionCall","src":"2546:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2538:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2580:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2591:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2573:6:89"},"nodeType":"YulFunctionCall","src":"2573:25:89"},"nodeType":"YulExpressionStatement","src":"2573:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2618:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2629:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2614:3:89"},"nodeType":"YulFunctionCall","src":"2614:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"2634:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2607:6:89"},"nodeType":"YulFunctionCall","src":"2607:34:89"},"nodeType":"YulExpressionStatement","src":"2607:34:89"}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2489:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2500:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2508:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2519:4:89","type":""}],"src":"2391:256:89"}]},"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_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := sub(shl(64, 1), 1)\n        if gt(_1, _3) { panic_error_0x41() }\n        let _4 := shl(5, _1)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n        if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let srcEnd := add(add(offset, _4), _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, abi_decode_address_fromMemory(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := mload(headStart)\n        let offset := mload(add(headStart, 32))\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value1 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value2 := abi_decode_array_address_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n        value3 := abi_decode_address_fromMemory(add(headStart, 96))\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\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 abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200230038038062002300833981016040819052620000349162000408565b6200004f60008051602062002280833981519152806200022d565b62000079600080516020620022a0833981519152600080516020620022808339815191526200022d565b620000a3600080516020620022c0833981519152600080516020620022808339815191526200022d565b620000cd600080516020620022e0833981519152600080516020620022808339815191526200022d565b620000e8600080516020620022808339815191523062000278565b6001600160a01b03811615620001135762000113600080516020620022808339815191528262000278565b60005b835181101562000199576200015d600080516020620022a08339815191528583815181106200014957620001496200048f565b60200260200101516200027860201b60201c565b62000186600080516020620022e08339815191528583815181106200014957620001496200048f565b6200019181620004a5565b905062000116565b5060005b8251811015620001e357620001d0600080516020620022c08339815191528483815181106200014957620001496200048f565b620001db81620004a5565b90506200019d565b5060028490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150505050620004cd565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b62000284828262000288565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000284576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002e43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035657600080fd5b919050565b600082601f8301126200036d57600080fd5b815160206001600160401b03808311156200038c576200038c62000328565b8260051b604051601f19603f83011681018181108482111715620003b457620003b462000328565b604052938452858101830193838101925087851115620003d357600080fd5b83870191505b84821015620003fd57620003ed826200033e565b83529183019190830190620003d9565b979650505050505050565b600080600080608085870312156200041f57600080fd5b845160208601519094506001600160401b03808211156200043f57600080fd5b6200044d888389016200035b565b945060408701519150808211156200046457600080fd5b5062000473878288016200035b565b92505062000484606086016200033e565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060018201620004c657634e487b7160e01b600052601160045260246000fd5b5060010190565b611da380620004dd6000396000f3fe6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046113c0565b6105f6565b005b3480156101f557600080fd5b50610209610204366004611434565b61068b565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a236600461145e565b6106b6565b3480156102b357600080fd5b506102096102c23660046114c9565b61076b565b3480156102d357600080fd5b506102f26102e2366004611597565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b506102526103263660046114c9565b60009081526020819052604090206001015490565b34801561034757600080fd5b506102096103563660046114c9565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e76103873660046115fe565b610791565b34801561039857600080fd5b506102096103a73660046114c9565b6107bb565b3480156103b857600080fd5b506101e76103c73660046115fe565b6107d4565b3480156103d857600080fd5b506102096103e73660046114c9565b610857565b3480156103f857600080fd5b506101e76104073660046114c9565b61086d565b34801561041857600080fd5b5061025261042736600461145e565b610911565b34801561043857600080fd5b506101e761044736600461166e565b610950565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b3660046115fe565b610aa2565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b5061025261050436600461171f565b610acb565b34801561051557600080fd5b506102f2610524366004611846565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e76105503660046114c9565b610b10565b34801561056157600080fd5b506102526105703660046114c9565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d3660046115fe565b610be5565b6101e76105b036600461171f565b610c0a565b3480156105c157600080fd5b506102f26105d03660046118ef565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610d94565b6000610630898989898989610911565b905061063c8184610da1565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106789695949392919061197c565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106b057506106b082610e90565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636106e2816000610aa2565b6106f0576106f08133610ec5565b6000610700888888888888610911565b905061070c8185610f1e565b61071888888888610fba565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161075094939291906119b9565b60405180910390a36107618161108d565b5050505050505050565b60008181526001602052604081205460018111801561078a5750428111155b9392505050565b6000828152602081905260409020600101546107ac81610d94565b6107b683836110c6565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146108495760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610853828261114a565b5050565b60008181526001602081905260408220546107cd565b3330146108d05760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610840565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161092e9695949392919061197c565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161097a81610d94565b8887146109995760405162461bcd60e51b8152600401610840906119eb565b8885146109b85760405162461bcd60e51b8152600401610840906119eb565b60006109ca8b8b8b8b8b8b8b8b610acb565b90506109d68184610da1565b60005b8a811015610a945780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a1657610a16611a2e565b9050602002016020810190610a2b9190611a44565b8d8d86818110610a3d57610a3d611a2e565b905060200201358c8c87818110610a5657610a56611a2e565b9050602002810190610a689190611a5f565b8c8b604051610a7c9695949392919061197c565b60405180910390a3610a8d81611abb565b90506109d9565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610aec989796959493929190611b65565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b3a81610d94565b610b4382610857565b610ba95760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610840565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c0081610d94565b6107b6838361114a565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610c36816000610aa2565b610c4457610c448133610ec5565b878614610c635760405162461bcd60e51b8152600401610840906119eb565b878414610c825760405162461bcd60e51b8152600401610840906119eb565b6000610c948a8a8a8a8a8a8a8a610acb565b9050610ca08185610f1e565b60005b89811015610d7e5760008b8b83818110610cbf57610cbf611a2e565b9050602002016020810190610cd49190611a44565b905060008a8a84818110610cea57610cea611a2e565b9050602002013590503660008a8a86818110610d0857610d08611a2e565b9050602002810190610d1a9190611a5f565b91509150610d2a84848484610fba565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d6194939291906119b9565b60405180910390a35050505080610d7790611abb565b9050610ca3565b50610d888161108d565b50505050505050505050565b610d9e8133610ec5565b50565b610daa826107bb565b15610e0f5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610840565b600254811015610e705760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610840565b610e7a8142611c06565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106b057506301ffc9a760e01b6001600160e01b03198316146106b0565b610ecf8282610aa2565b61085357610edc816111af565b610ee78360206111c1565b604051602001610ef8929190611c3d565b60408051601f198184030181529082905262461bcd60e51b825261084091600401611cb2565b610f278261076b565b610f435760405162461bcd60e51b815260040161084090611ce5565b801580610f5f5750600081815260016020819052604090912054145b6108535760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610840565b6000846001600160a01b0316848484604051610fd7929190611d2f565b60006040518083038185875af1925050503d8060008114611014576040519150601f19603f3d011682016040523d82523d6000602084013e611019565b606091505b50509050806110865760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610840565b5050505050565b6110968161076b565b6110b25760405162461bcd60e51b815260040161084090611ce5565b600090815260016020819052604090912055565b6110d08282610aa2565b610853576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111548282610aa2565b15610853576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106b06001600160a01b03831660145b606060006111d0836002611d3f565b6111db906002611c06565b6001600160401b038111156111f2576111f26114e2565b6040519080825280601f01601f19166020018201604052801561121c576020820181803683370190505b509050600360fc1b8160008151811061123757611237611a2e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061126657611266611a2e565b60200101906001600160f81b031916908160001a905350600061128a846002611d3f565b611295906001611c06565b90505b600181111561130d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112c9576112c9611a2e565b1a60f81b8282815181106112df576112df611a2e565b60200101906001600160f81b031916908160001a90535060049490941c9361130681611d56565b9050611298565b50831561078a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610840565b80356001600160a01b038116811461137357600080fd5b919050565b60008083601f84011261138a57600080fd5b5081356001600160401b038111156113a157600080fd5b6020830191508360208285010111156113b957600080fd5b9250929050565b600080600080600080600060c0888a0312156113db57600080fd5b6113e48861135c565b96506020880135955060408801356001600160401b0381111561140657600080fd5b6114128a828b01611378565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561144657600080fd5b81356001600160e01b03198116811461078a57600080fd5b60008060008060008060a0878903121561147757600080fd5b6114808761135c565b95506020870135945060408701356001600160401b038111156114a257600080fd5b6114ae89828a01611378565b979a9699509760608101359660809091013595509350505050565b6000602082840312156114db57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611520576115206114e2565b604052919050565b600082601f83011261153957600080fd5b81356001600160401b03811115611552576115526114e2565b611565601f8201601f19166020016114f8565b81815284602083860101111561157a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156115ad57600080fd5b6115b68561135c565b93506115c46020860161135c565b92506040850135915060608501356001600160401b038111156115e657600080fd5b6115f287828801611528565b91505092959194509250565b6000806040838503121561161157600080fd5b823591506116216020840161135c565b90509250929050565b60008083601f84011261163c57600080fd5b5081356001600160401b0381111561165357600080fd5b6020830191508360208260051b85010111156113b957600080fd5b600080600080600080600080600060c08a8c03121561168c57600080fd5b89356001600160401b03808211156116a357600080fd5b6116af8d838e0161162a565b909b50995060208c01359150808211156116c857600080fd5b6116d48d838e0161162a565b909950975060408c01359150808211156116ed57600080fd5b506116fa8c828d0161162a565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561173b57600080fd5b88356001600160401b038082111561175257600080fd5b61175e8c838d0161162a565b909a50985060208b013591508082111561177757600080fd5b6117838c838d0161162a565b909850965060408b013591508082111561179c57600080fd5b506117a98b828c0161162a565b999c989b509699959896976060870135966080013595509350505050565b600082601f8301126117d857600080fd5b813560206001600160401b038211156117f3576117f36114e2565b8160051b6118028282016114f8565b928352848101820192828101908785111561181c57600080fd5b83870192505b8483101561183b57823582529183019190830190611822565b979650505050505050565b600080600080600060a0868803121561185e57600080fd5b6118678661135c565b94506118756020870161135c565b935060408601356001600160401b038082111561189157600080fd5b61189d89838a016117c7565b945060608801359150808211156118b357600080fd5b6118bf89838a016117c7565b935060808801359150808211156118d557600080fd5b506118e288828901611528565b9150509295509295909350565b600080600080600060a0868803121561190757600080fd5b6119108661135c565b945061191e6020870161135c565b9350604086013592506060860135915060808601356001600160401b0381111561194757600080fd5b6118e288828901611528565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006119a460a083018688611953565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006119e1606083018486611953565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5657600080fd5b61078a8261135c565b6000808335601e19843603018112611a7657600080fd5b8301803591506001600160401b03821115611a9057600080fd5b6020019150368190038213156113b957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611acd57611acd611aa5565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611b585782840389528135601e19883603018112611b0f57600080fd5b870185810190356001600160401b03811115611b2a57600080fd5b803603821315611b3957600080fd5b611b44868284611953565b9a87019a9550505090840190600101611aee565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611ba6576001600160a01b03611b918461135c565b16825260209283019290910190600101611b78565b5083810360208501528881526001600160fb1b03891115611bc657600080fd5b8860051b9150818a60208301370182810360209081016040850152611bee9082018789611ad4565b60608401959095525050608001529695505050505050565b808201808211156106b0576106b0611aa5565b60005b83811015611c34578181015183820152602001611c1c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c75816017850160208801611c19565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ca6816028840160208801611c19565b01602801949350505050565b6020815260008251806020840152611cd1816040850160208701611c19565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b80820281158282048414176106b0576106b0611aa5565b600081611d6557611d65611aa5565b50600019019056fea2646970667358221220d6f2e3b2789c6919b75b3c521caf7e720d752fefaabd75a11cb6960e6b12f19264736f6c634300081100335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2300 CODESIZE SUB DUP1 PUSH3 0x2300 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x408 JUMP JUMPDEST PUSH3 0x4F PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH3 0x22D JUMP JUMPDEST PUSH3 0x79 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22A0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x22D JUMP JUMPDEST PUSH3 0xA3 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22C0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x22D JUMP JUMPDEST PUSH3 0xCD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22E0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x22D JUMP JUMPDEST PUSH3 0xE8 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADDRESS PUSH3 0x278 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH3 0x113 JUMPI PUSH3 0x113 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2280 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH3 0x278 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH3 0x199 JUMPI PUSH3 0x15D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22A0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x149 JUMPI PUSH3 0x149 PUSH3 0x48F JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x278 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x186 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22E0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x149 JUMPI PUSH3 0x149 PUSH3 0x48F JUMP JUMPDEST PUSH3 0x191 DUP2 PUSH3 0x4A5 JUMP JUMPDEST SWAP1 POP PUSH3 0x116 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x1E3 JUMPI PUSH3 0x1D0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22C0 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x149 JUMPI PUSH3 0x149 PUSH3 0x48F JUMP JUMPDEST PUSH3 0x1DB DUP2 PUSH3 0x4A5 JUMP JUMPDEST SWAP1 POP PUSH3 0x19D JUMP JUMPDEST POP PUSH1 0x2 DUP5 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH3 0x4CD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH3 0x284 DUP3 DUP3 PUSH3 0x288 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x284 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 0x2E4 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 GT ISZERO PUSH3 0x38C JUMPI PUSH3 0x38C PUSH3 0x328 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH3 0x3B4 JUMPI PUSH3 0x3B4 PUSH3 0x328 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH3 0x3D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH3 0x3FD JUMPI PUSH3 0x3ED DUP3 PUSH3 0x33E JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH3 0x3D9 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x41F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x20 DUP7 ADD MLOAD SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x44D DUP9 DUP4 DUP10 ADD PUSH3 0x35B JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x473 DUP8 DUP3 DUP9 ADD PUSH3 0x35B JUMP JUMPDEST SWAP3 POP POP PUSH3 0x484 PUSH1 0x60 DUP7 ADD PUSH3 0x33E 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 PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x4C6 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 PUSH2 0x1DA3 DUP1 PUSH3 0x4DD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x582 JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x535 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x31D50750 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3CF6FC GT PUSH2 0x195 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13C0 JUMP JUMPDEST PUSH2 0x5F6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x1434 JUMP JUMPDEST PUSH2 0x68B 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 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1597 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x387 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x791 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x86D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x166E JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x515 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x524 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x550 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0xB10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xC0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x252 JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x620 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x630 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x63C DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH2 0x6B0 DUP3 PUSH2 0xE90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0x6E2 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x6F0 JUMPI PUSH2 0x6F0 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x700 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x70C DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x718 DUP9 DUP9 DUP9 DUP9 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x750 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x761 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x78A JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7AC DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x10C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x853 DUP3 DUP3 PUSH2 0x114A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x7CD JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x92E SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x97A DUP2 PUSH2 0xD94 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x9B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D6 DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA94 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA2B SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA3D JUMPI PUSH2 0xA3D PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA56 JUMPI PUSH2 0xA56 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA68 SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8D DUP2 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D9 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAEC SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB3A DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0xB43 DUP3 PUSH2 0x857 JUMP JUMPDEST PUSH2 0xBA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC00 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x114A JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0xC36 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0xC44 JUMPI PUSH2 0xC44 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA0 DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xCEA JUMPI PUSH2 0xCEA PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD08 JUMPI PUSH2 0xD08 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD1A SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD2A DUP5 DUP5 DUP5 DUP5 PUSH2 0xFBA JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD61 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD77 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA3 JUMP JUMPDEST POP PUSH2 0xD88 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9E DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x7BB JUMP JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH2 0xE7A DUP2 TIMESTAMP PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0xECF DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 JUMPI PUSH2 0xEDC DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0xEE7 DUP4 PUSH1 0x20 PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEF8 SWAP3 SWAP2 SWAP1 PUSH2 0x1C3D 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 0x840 SWAP2 PUSH1 0x4 ADD PUSH2 0x1CB2 JUMP JUMPDEST PUSH2 0xF27 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xF43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF5F JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x853 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1014 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 0x1019 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1096 DUP2 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x10B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x10D0 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 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 0x1106 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1154 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST ISZERO PUSH2 0x853 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x11D0 DUP4 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x11DB SWAP1 PUSH1 0x2 PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11F2 JUMPI PUSH2 0x11F2 PUSH2 0x14E2 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 0x121C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1237 JUMPI PUSH2 0x1237 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1266 JUMPI PUSH2 0x1266 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x128A DUP5 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x1295 SWAP1 PUSH1 0x1 PUSH2 0x1C06 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x130D JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x1A2E JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12DF JUMPI PUSH2 0x12DF PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1306 DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP PUSH2 0x1298 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x78A 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 0x840 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x138A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x13DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E4 DUP9 PUSH2 0x135C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1412 DUP11 DUP3 DUP12 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP8 PUSH2 0x135C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14AE DUP10 DUP3 DUP11 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x14E2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1552 JUMPI PUSH2 0x1552 PUSH2 0x14E2 JUMP JUMPDEST PUSH2 0x1565 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x14F8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x157A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B6 DUP6 PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH2 0x15C4 PUSH1 0x20 DUP7 ADD PUSH2 0x135C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F2 DUP8 DUP3 DUP9 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1621 PUSH1 0x20 DUP5 ADD PUSH2 0x135C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1653 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 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x168C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AF DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16D4 DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16FA DUP13 DUP3 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x173B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x175E DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1783 DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A9 DUP12 DUP3 DUP13 ADD PUSH2 0x162A JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x17F3 PUSH2 0x14E2 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x1802 DUP3 DUP3 ADD PUSH2 0x14F8 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x181C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x183B JUMPI DUP3 CALLDATALOAD DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x1822 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x185E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1867 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x1875 PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x189D DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18BF DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1910 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x191E PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19A4 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19E1 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1953 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78A DUP3 PUSH2 0x135C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 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 PUSH2 0x1ACD JUMPI PUSH2 0x1ACD PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1B58 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 ADD DUP6 DUP2 ADD SWAP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B44 DUP7 DUP3 DUP5 PUSH2 0x1953 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AEE JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1B91 DUP5 PUSH2 0x135C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B78 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD DUP3 DUP2 SUB PUSH1 0x20 SWAP1 DUP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1BEE SWAP1 DUP3 ADD DUP8 DUP10 PUSH2 0x1AD4 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C34 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C1C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C75 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1CA6 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 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 0x1CD1 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1D65 JUMPI PUSH2 0x1D65 PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 CALLCODE 0xE3 0xB2 PUSH25 0x9C6919B75B3C521CAF7E720D752FEFAABD75A11CB6960E6B12 CALL SWAP3 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER 0x5F PC 0xE3 LOG2 BALANCE PUSH4 0x49923CE3 PUSH25 0xF8D587DB2D72378AED66A8261C916544FA6846CA5B09AA5AE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xFD643C72 PUSH18 0xC63C0180259ABA6B2D05451E3591A24E58B PUSH3 0x239378 ADDMOD JUMPI 0x26 0xF7 DUP4 ","sourceMap":"1030:13261:22:-:0;;;3089:1045;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3238:55;-1:-1:-1;;;;;;;;;;;1162:32:22;3238:13;:55::i;:::-;3303:49;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3303:13:22;:49::i;:::-;3362;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3362:13:22;:49::i;:::-;3421:50;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3421:13:22;:50::i;:::-;3513:46;-1:-1:-1;;;;;;;;;;;3553:4:22;3513:10;:46::i;:::-;-1:-1:-1;;;;;3600:19:22;;;3596:88;;3635:38;-1:-1:-1;;;;;;;;;;;3667:5:22;3635:10;:38::i;:::-;3744:9;3739:165;3763:9;:16;3759:1;:20;3739:165;;;3800:39;-1:-1:-1;;;;;;;;;;;3826:9:22;3836:1;3826:12;;;;;;;;:::i;:::-;;;;;;;3800:10;;;:39;;:::i;:::-;3853:40;-1:-1:-1;;;;;;;;;;;3880:9:22;3890:1;3880:12;;;;;;;;:::i;3853:40::-;3781:3;;;:::i;:::-;;;3739:165;;;;3949:9;3944:111;3968:9;:16;3964:1;:20;3944:111;;;4005:39;-1:-1:-1;;;;;;;;;;;4031:9:22;4041:1;4031:12;;;;;;;;:::i;4005:39::-;3986:3;;;:::i;:::-;;;3944:111;;;-1:-1:-1;4065:9:22;:20;;;4100:27;;;4115:1;2573:25:89;;2629:2;2614:18;;2607:34;;;4100:27:22;;2546:18:89;4100:27:22;;;;;;;3089:1045;;;;1030:13261;;7046:247:17;7129:25;4478:12;;;;;;;;;;;:22;;;;7185:34;;;;7234:52;;4478:22;;7185:34;;4478:22;;:12;;7234:52;;7129:25;7234:52;7119:174;7046:247;;:::o;6811:110::-;6889:25;6900:4;6906:7;6889:10;:25::i;:::-;6811:110;;:::o;7461:233::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:17;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:17;;;;;;;;;:36;;-1:-1:-1;;7582:36:17;7614:4;7582:36;;;7664:12;719:10:47;;640:96;7664:12:17;-1:-1:-1;;;;;7637:40:17;7655:7;-1:-1:-1;;;;;7637:40:17;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;14:127:89:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:89;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:923::-;393:5;446:3;439:4;431:6;427:17;423:27;413:55;;464:1;461;454:12;413:55;487:13;;519:4;-1:-1:-1;;;;;572:10:89;;;569:36;;;585:18;;:::i;:::-;631:2;628:1;624:10;663:2;657:9;726:2;722:7;717:2;713;709:11;705:25;697:6;693:38;781:6;769:10;766:22;761:2;749:10;746:18;743:46;740:72;;;792:18;;:::i;:::-;828:2;821:22;878:18;;;954:15;;;950:24;;;912:15;;;;-1:-1:-1;986:15:89;;;983:35;;;1014:1;1011;1004:12;983:35;1050:2;1042:6;1038:15;1027:26;;1062:159;1078:6;1073:3;1070:15;1062:159;;;1144:34;1174:3;1144:34;:::i;:::-;1132:47;;1199:12;;;;1095;;;;1062:159;;;1239:6;328:923;-1:-1:-1;;;;;;;328:923:89:o;1256:761::-;1403:6;1411;1419;1427;1480:3;1468:9;1459:7;1455:23;1451:33;1448:53;;;1497:1;1494;1487:12;1448:53;1520:16;;1580:2;1565:18;;1559:25;1520:16;;-1:-1:-1;;;;;;1633:14:89;;;1630:34;;;1660:1;1657;1650:12;1630:34;1683:72;1747:7;1738:6;1727:9;1723:22;1683:72;:::i;:::-;1673:82;;1801:2;1790:9;1786:18;1780:25;1764:41;;1830:2;1820:8;1817:16;1814:36;;;1846:1;1843;1836:12;1814:36;;1869:74;1935:7;1924:8;1913:9;1909:24;1869:74;:::i;:::-;1859:84;;;1962:49;2007:2;1996:9;1992:18;1962:49;:::i;:::-;1952:59;;1256:761;;;;;;;:::o;2022:127::-;2083:10;2078:3;2074:20;2071:1;2064:31;2114:4;2111:1;2104:15;2138:4;2135:1;2128:15;2154:232;2193:3;2214:17;;;2211:140;;2273:10;2268:3;2264:20;2261:1;2254:31;2308:4;2305:1;2298:15;2336:4;2333:1;2326:15;2211:140;-1:-1:-1;2378:1:89;2367:13;;2154:232::o;2391:256::-;1030:13261:22;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CANCELLER_ROLE_7278":{"entryPoint":null,"id":7278,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_5166":{"entryPoint":null,"id":5166,"parameterSlots":0,"returnSlots":0},"@EXECUTOR_ROLE_7273":{"entryPoint":null,"id":7273,"parameterSlots":0,"returnSlots":0},"@PROPOSER_ROLE_7268":{"entryPoint":null,"id":7268,"parameterSlots":0,"returnSlots":0},"@TIMELOCK_ADMIN_ROLE_7263":{"entryPoint":null,"id":7263,"parameterSlots":0,"returnSlots":0},"@_7472":{"entryPoint":null,"id":7472,"parameterSlots":0,"returnSlots":0},"@_afterCall_8065":{"entryPoint":4237,"id":8065,"parameterSlots":1,"returnSlots":0},"@_beforeCall_8045":{"entryPoint":3870,"id":8045,"parameterSlots":2,"returnSlots":0},"@_checkRole_5231":{"entryPoint":3476,"id":5231,"parameterSlots":1,"returnSlots":0},"@_checkRole_5270":{"entryPoint":3781,"id":5270,"parameterSlots":2,"returnSlots":0},"@_execute_8015":{"entryPoint":4026,"id":8015,"parameterSlots":4,"returnSlots":0},"@_grantRole_5422":{"entryPoint":4294,"id":5422,"parameterSlots":2,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_revokeRole_5453":{"entryPoint":4426,"id":5453,"parameterSlots":2,"returnSlots":0},"@_schedule_7810":{"entryPoint":3489,"id":7810,"parameterSlots":2,"returnSlots":0},"@cancel_7836":{"entryPoint":2832,"id":7836,"parameterSlots":1,"returnSlots":0},"@executeBatch_7990":{"entryPoint":3082,"id":7990,"parameterSlots":8,"returnSlots":0},"@execute_7887":{"entryPoint":1718,"id":7887,"parameterSlots":6,"returnSlots":0},"@getMinDelay_7587":{"entryPoint":null,"id":7587,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_5285":{"entryPoint":null,"id":5285,"parameterSlots":1,"returnSlots":1},"@getTimestamp_7578":{"entryPoint":null,"id":7578,"parameterSlots":1,"returnSlots":1},"@grantRole_5305":{"entryPoint":1937,"id":5305,"parameterSlots":2,"returnSlots":0},"@hasRole_5218":{"entryPoint":2722,"id":5218,"parameterSlots":2,"returnSlots":1},"@hashOperationBatch_7646":{"entryPoint":2763,"id":7646,"parameterSlots":8,"returnSlots":1},"@hashOperation_7615":{"entryPoint":2321,"id":7615,"parameterSlots":6,"returnSlots":1},"@isOperationDone_7565":{"entryPoint":null,"id":7565,"parameterSlots":1,"returnSlots":1},"@isOperationPending_7526":{"entryPoint":2135,"id":7526,"parameterSlots":1,"returnSlots":1},"@isOperationReady_7550":{"entryPoint":1899,"id":7550,"parameterSlots":1,"returnSlots":1},"@isOperation_7511":{"entryPoint":1979,"id":7511,"parameterSlots":1,"returnSlots":1},"@onERC1155BatchReceived_8158":{"entryPoint":null,"id":8158,"parameterSlots":5,"returnSlots":1},"@onERC1155Received_8134":{"entryPoint":null,"id":8134,"parameterSlots":5,"returnSlots":1},"@onERC721Received_8112":{"entryPoint":null,"id":8112,"parameterSlots":4,"returnSlots":1},"@renounceRole_5348":{"entryPoint":2004,"id":5348,"parameterSlots":2,"returnSlots":0},"@revokeRole_5325":{"entryPoint":3045,"id":5325,"parameterSlots":2,"returnSlots":0},"@scheduleBatch_7776":{"entryPoint":2384,"id":7776,"parameterSlots":9,"returnSlots":0},"@schedule_7691":{"entryPoint":1526,"id":7691,"parameterSlots":7,"returnSlots":0},"@supportsInterface_15325":{"entryPoint":null,"id":15325,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5199":{"entryPoint":3728,"id":5199,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7496":{"entryPoint":1675,"id":7496,"parameterSlots":1,"returnSlots":1},"@toHexString_14552":{"entryPoint":4545,"id":14552,"parameterSlots":2,"returnSlots":1},"@toHexString_14572":{"entryPoint":4527,"id":14572,"parameterSlots":1,"returnSlots":1},"@updateDelay_8092":{"entryPoint":2157,"id":8092,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4956,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":5674,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_array_uint256_dyn":{"entryPoint":6087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":5416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":4984,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":6724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr":{"entryPoint":6214,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":5527,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":6383,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32":{"entryPoint":5214,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256":{"entryPoint":5056,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32":{"entryPoint":5919,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256":{"entryPoint":5742,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_bytes32":{"entryPoint":5321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5630,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5172,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_bytes_calldata_dyn_calldata":{"entryPoint":6868,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":6483,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7471,"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":7229,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6585,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed":{"entryPoint":6524,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":7013,"id":null,"parameterSlots":9,"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_bytes4__to_t_bytes4__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":7346,"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_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6635,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7397,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__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_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__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},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":6751,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":5368,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7174,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7487,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":7193,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":7510,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":6843,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6821,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6702,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5346,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:22292:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:89","statements":[{"nodeType":"YulAssignment","src":"73:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:89"},"nodeType":"YulFunctionCall","src":"82:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:89"}]},{"body":{"nodeType":"YulBlock","src":"165:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:89"},"nodeType":"YulFunctionCall","src":"167:12:89"},"nodeType":"YulExpressionStatement","src":"167:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:89"},"nodeType":"YulFunctionCall","src":"146:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:89"},"nodeType":"YulFunctionCall","src":"142:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:89"},"nodeType":"YulFunctionCall","src":"131:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:89"},"nodeType":"YulFunctionCall","src":"121:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:89"},"nodeType":"YulFunctionCall","src":"114:50:89"},"nodeType":"YulIf","src":"111:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:89","type":""}],"src":"14:173:89"},{"body":{"nodeType":"YulBlock","src":"264:275:89","statements":[{"body":{"nodeType":"YulBlock","src":"313:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"322:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"325:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"315:6:89"},"nodeType":"YulFunctionCall","src":"315:12:89"},"nodeType":"YulExpressionStatement","src":"315:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"292:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"300:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"288:3:89"},"nodeType":"YulFunctionCall","src":"288:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"307:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"284:3:89"},"nodeType":"YulFunctionCall","src":"284:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"277:6:89"},"nodeType":"YulFunctionCall","src":"277:35:89"},"nodeType":"YulIf","src":"274:55:89"},{"nodeType":"YulAssignment","src":"338:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"361:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"348:12:89"},"nodeType":"YulFunctionCall","src":"348:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"338:6:89"}]},{"body":{"nodeType":"YulBlock","src":"411:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"420:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"413:6:89"},"nodeType":"YulFunctionCall","src":"413:12:89"},"nodeType":"YulExpressionStatement","src":"413:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"383:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"391:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"380:2:89"},"nodeType":"YulFunctionCall","src":"380:30:89"},"nodeType":"YulIf","src":"377:50:89"},{"nodeType":"YulAssignment","src":"436:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"452:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"460:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"448:3:89"},"nodeType":"YulFunctionCall","src":"448:17:89"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"436:8:89"}]},{"body":{"nodeType":"YulBlock","src":"517:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:89"},"nodeType":"YulFunctionCall","src":"519:12:89"},"nodeType":"YulExpressionStatement","src":"519:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"488:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"496:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:89"},"nodeType":"YulFunctionCall","src":"484:19:89"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"480:3:89"},"nodeType":"YulFunctionCall","src":"480:30:89"},{"name":"end","nodeType":"YulIdentifier","src":"512:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"477:2:89"},"nodeType":"YulFunctionCall","src":"477:39:89"},"nodeType":"YulIf","src":"474:59:89"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"227:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"235:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"243:8:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"253:6:89","type":""}],"src":"192:347:89"},{"body":{"nodeType":"YulBlock","src":"718:584:89","statements":[{"body":{"nodeType":"YulBlock","src":"765:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"774:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"777:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"767:6:89"},"nodeType":"YulFunctionCall","src":"767:12:89"},"nodeType":"YulExpressionStatement","src":"767:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"739:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"748:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"735:3:89"},"nodeType":"YulFunctionCall","src":"735:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"760:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"731:3:89"},"nodeType":"YulFunctionCall","src":"731:33:89"},"nodeType":"YulIf","src":"728:53:89"},{"nodeType":"YulAssignment","src":"790:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"819:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"800:18:89"},"nodeType":"YulFunctionCall","src":"800:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"790:6:89"}]},{"nodeType":"YulAssignment","src":"838:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"865:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"876:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"861:3:89"},"nodeType":"YulFunctionCall","src":"861:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"848:12:89"},"nodeType":"YulFunctionCall","src":"848:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"838:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"889:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"920:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"931:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"916:3:89"},"nodeType":"YulFunctionCall","src":"916:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"903:12:89"},"nodeType":"YulFunctionCall","src":"903:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"893:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"978:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"987:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"990:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"980:6:89"},"nodeType":"YulFunctionCall","src":"980:12:89"},"nodeType":"YulExpressionStatement","src":"980:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"950:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"958:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"947:2:89"},"nodeType":"YulFunctionCall","src":"947:30:89"},"nodeType":"YulIf","src":"944:50:89"},{"nodeType":"YulVariableDeclaration","src":"1003:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1059:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1070:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1055:3:89"},"nodeType":"YulFunctionCall","src":"1055:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1079:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1029:25:89"},"nodeType":"YulFunctionCall","src":"1029:58:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"1007:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"1017:8:89","type":""}]},{"nodeType":"YulAssignment","src":"1096:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1106:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1096:6:89"}]},{"nodeType":"YulAssignment","src":"1123:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"1133:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1123:6:89"}]},{"nodeType":"YulAssignment","src":"1150:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1177:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1188:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1173:3:89"},"nodeType":"YulFunctionCall","src":"1173:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1160:12:89"},"nodeType":"YulFunctionCall","src":"1160:32:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1150:6:89"}]},{"nodeType":"YulAssignment","src":"1201:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1228:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1239:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1224:3:89"},"nodeType":"YulFunctionCall","src":"1224:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1211:12:89"},"nodeType":"YulFunctionCall","src":"1211:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1201:6:89"}]},{"nodeType":"YulAssignment","src":"1253:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1280:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1291:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1276:3:89"},"nodeType":"YulFunctionCall","src":"1276:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1263:12:89"},"nodeType":"YulFunctionCall","src":"1263:33:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"1253:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"636:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"647:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"659:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"667:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"675:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"683:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"691:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"699:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"707:6:89","type":""}],"src":"544:758:89"},{"body":{"nodeType":"YulBlock","src":"1376:217:89","statements":[{"body":{"nodeType":"YulBlock","src":"1422:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1431:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1434:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1424:6:89"},"nodeType":"YulFunctionCall","src":"1424:12:89"},"nodeType":"YulExpressionStatement","src":"1424:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1397:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1393:3:89"},"nodeType":"YulFunctionCall","src":"1393:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1418:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1389:3:89"},"nodeType":"YulFunctionCall","src":"1389:32:89"},"nodeType":"YulIf","src":"1386:52:89"},{"nodeType":"YulVariableDeclaration","src":"1447:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1473:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1460:12:89"},"nodeType":"YulFunctionCall","src":"1460:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1451:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1547:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1556:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1559:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1549:6:89"},"nodeType":"YulFunctionCall","src":"1549:12:89"},"nodeType":"YulExpressionStatement","src":"1549:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1505:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1516:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1527:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1532:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1523:3:89"},"nodeType":"YulFunctionCall","src":"1523:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1512:3:89"},"nodeType":"YulFunctionCall","src":"1512:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1502:2:89"},"nodeType":"YulFunctionCall","src":"1502:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1495:6:89"},"nodeType":"YulFunctionCall","src":"1495:51:89"},"nodeType":"YulIf","src":"1492:71:89"},{"nodeType":"YulAssignment","src":"1572:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"1582:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1572:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1342:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1353:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1365:6:89","type":""}],"src":"1307:286:89"},{"body":{"nodeType":"YulBlock","src":"1693:92:89","statements":[{"nodeType":"YulAssignment","src":"1703:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1715:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1726:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1711:3:89"},"nodeType":"YulFunctionCall","src":"1711:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1703:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1745:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1770:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1763:6:89"},"nodeType":"YulFunctionCall","src":"1763:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1756:6:89"},"nodeType":"YulFunctionCall","src":"1756:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1738:6:89"},"nodeType":"YulFunctionCall","src":"1738:41:89"},"nodeType":"YulExpressionStatement","src":"1738:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1662:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1673:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1684:4:89","type":""}],"src":"1598:187:89"},{"body":{"nodeType":"YulBlock","src":"1891:76:89","statements":[{"nodeType":"YulAssignment","src":"1901:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1913:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1924:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1909:3:89"},"nodeType":"YulFunctionCall","src":"1909:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1901:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1943:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1954:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1936:6:89"},"nodeType":"YulFunctionCall","src":"1936:25:89"},"nodeType":"YulExpressionStatement","src":"1936:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1860:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1871:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1882:4:89","type":""}],"src":"1790:177:89"},{"body":{"nodeType":"YulBlock","src":"2129:532:89","statements":[{"body":{"nodeType":"YulBlock","src":"2176:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2185:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2188:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2178:6:89"},"nodeType":"YulFunctionCall","src":"2178:12:89"},"nodeType":"YulExpressionStatement","src":"2178:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2150:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2146:3:89"},"nodeType":"YulFunctionCall","src":"2146:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2171:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2142:3:89"},"nodeType":"YulFunctionCall","src":"2142:33:89"},"nodeType":"YulIf","src":"2139:53:89"},{"nodeType":"YulAssignment","src":"2201:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2211:18:89"},"nodeType":"YulFunctionCall","src":"2211:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2201:6:89"}]},{"nodeType":"YulAssignment","src":"2249:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2276:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2287:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2272:3:89"},"nodeType":"YulFunctionCall","src":"2272:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2259:12:89"},"nodeType":"YulFunctionCall","src":"2259:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2249:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2300:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2331:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2342:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2327:3:89"},"nodeType":"YulFunctionCall","src":"2327:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2314:12:89"},"nodeType":"YulFunctionCall","src":"2314:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2304:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2398:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2401:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2391:6:89"},"nodeType":"YulFunctionCall","src":"2391:12:89"},"nodeType":"YulExpressionStatement","src":"2391:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2361:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2369:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2358:2:89"},"nodeType":"YulFunctionCall","src":"2358:30:89"},"nodeType":"YulIf","src":"2355:50:89"},{"nodeType":"YulVariableDeclaration","src":"2414:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2481:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2466:3:89"},"nodeType":"YulFunctionCall","src":"2466:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2490:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2440:25:89"},"nodeType":"YulFunctionCall","src":"2440:58:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2418:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2428:8:89","type":""}]},{"nodeType":"YulAssignment","src":"2507:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2517:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2507:6:89"}]},{"nodeType":"YulAssignment","src":"2534:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2544:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2534:6:89"}]},{"nodeType":"YulAssignment","src":"2561:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2588:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2599:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:89"},"nodeType":"YulFunctionCall","src":"2584:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2571:12:89"},"nodeType":"YulFunctionCall","src":"2571:32:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2561:6:89"}]},{"nodeType":"YulAssignment","src":"2612:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2639:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2650:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2635:3:89"},"nodeType":"YulFunctionCall","src":"2635:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2622:12:89"},"nodeType":"YulFunctionCall","src":"2622:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2612:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2055:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2066:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2078:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2086:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2094:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2102:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2110:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2118:6:89","type":""}],"src":"1972:689:89"},{"body":{"nodeType":"YulBlock","src":"2736:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"2782:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2791:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2794:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2784:6:89"},"nodeType":"YulFunctionCall","src":"2784:12:89"},"nodeType":"YulExpressionStatement","src":"2784:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2757:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2753:3:89"},"nodeType":"YulFunctionCall","src":"2753:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2778:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2749:3:89"},"nodeType":"YulFunctionCall","src":"2749:32:89"},"nodeType":"YulIf","src":"2746:52:89"},{"nodeType":"YulAssignment","src":"2807:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2830:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2817:12:89"},"nodeType":"YulFunctionCall","src":"2817:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2807:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2702:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2713:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2725:6:89","type":""}],"src":"2666:180:89"},{"body":{"nodeType":"YulBlock","src":"2883:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2900:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2907:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2912:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2903:3:89"},"nodeType":"YulFunctionCall","src":"2903:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2893:6:89"},"nodeType":"YulFunctionCall","src":"2893:31:89"},"nodeType":"YulExpressionStatement","src":"2893:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2940:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2943:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2933:6:89"},"nodeType":"YulFunctionCall","src":"2933:15:89"},"nodeType":"YulExpressionStatement","src":"2933:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2964:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2967:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:89"},"nodeType":"YulFunctionCall","src":"2957:15:89"},"nodeType":"YulExpressionStatement","src":"2957:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2851:127:89"},{"body":{"nodeType":"YulBlock","src":"3028:230:89","statements":[{"nodeType":"YulAssignment","src":"3038:19:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3054:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3048:5:89"},"nodeType":"YulFunctionCall","src":"3048:9:89"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3038:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3066:58:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3088:6:89"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3104:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"3110:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:89"},"nodeType":"YulFunctionCall","src":"3100:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3119:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3115:3:89"},"nodeType":"YulFunctionCall","src":"3115:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3096:3:89"},"nodeType":"YulFunctionCall","src":"3096:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:89"},"nodeType":"YulFunctionCall","src":"3084:40:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3070:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3199:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3201:16:89"},"nodeType":"YulFunctionCall","src":"3201:18:89"},"nodeType":"YulExpressionStatement","src":"3201:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3142:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"3154:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3139:2:89"},"nodeType":"YulFunctionCall","src":"3139:34:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3178:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3190:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3175:2:89"},"nodeType":"YulFunctionCall","src":"3175:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3136:2:89"},"nodeType":"YulFunctionCall","src":"3136:62:89"},"nodeType":"YulIf","src":"3133:88:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3237:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3241:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3230:6:89"},"nodeType":"YulFunctionCall","src":"3230:22:89"},"nodeType":"YulExpressionStatement","src":"3230:22:89"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3008:4:89","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3017:6:89","type":""}],"src":"2983:275:89"},{"body":{"nodeType":"YulBlock","src":"3315:478:89","statements":[{"body":{"nodeType":"YulBlock","src":"3364:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3373:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3376:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3366:6:89"},"nodeType":"YulFunctionCall","src":"3366:12:89"},"nodeType":"YulExpressionStatement","src":"3366:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3343:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3351:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3339:3:89"},"nodeType":"YulFunctionCall","src":"3339:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"3358:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3335:3:89"},"nodeType":"YulFunctionCall","src":"3335:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3328:6:89"},"nodeType":"YulFunctionCall","src":"3328:35:89"},"nodeType":"YulIf","src":"3325:55:89"},{"nodeType":"YulVariableDeclaration","src":"3389:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3412:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3399:12:89"},"nodeType":"YulFunctionCall","src":"3399:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3393:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3458:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3460:16:89"},"nodeType":"YulFunctionCall","src":"3460:18:89"},"nodeType":"YulExpressionStatement","src":"3460:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3434:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3438:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3431:2:89"},"nodeType":"YulFunctionCall","src":"3431:26:89"},"nodeType":"YulIf","src":"3428:52:89"},{"nodeType":"YulVariableDeclaration","src":"3489:70:89","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3532:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3536:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3528:3:89"},"nodeType":"YulFunctionCall","src":"3528:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3547:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3543:3:89"},"nodeType":"YulFunctionCall","src":"3543:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3524:3:89"},"nodeType":"YulFunctionCall","src":"3524:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"3553:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3520:3:89"},"nodeType":"YulFunctionCall","src":"3520:38:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3504:15:89"},"nodeType":"YulFunctionCall","src":"3504:55:89"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"3493:7:89","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3575:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3584:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3568:6:89"},"nodeType":"YulFunctionCall","src":"3568:19:89"},"nodeType":"YulExpressionStatement","src":"3568:19:89"},{"body":{"nodeType":"YulBlock","src":"3635:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3644:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3647:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3637:6:89"},"nodeType":"YulFunctionCall","src":"3637:12:89"},"nodeType":"YulExpressionStatement","src":"3637:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3610:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3618:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3606:3:89"},"nodeType":"YulFunctionCall","src":"3606:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"3623:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3602:3:89"},"nodeType":"YulFunctionCall","src":"3602:26:89"},{"name":"end","nodeType":"YulIdentifier","src":"3630:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3599:2:89"},"nodeType":"YulFunctionCall","src":"3599:35:89"},"nodeType":"YulIf","src":"3596:55:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3677:7:89"},{"kind":"number","nodeType":"YulLiteral","src":"3686:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3673:3:89"},"nodeType":"YulFunctionCall","src":"3673:18:89"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3697:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3705:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3693:3:89"},"nodeType":"YulFunctionCall","src":"3693:17:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3712:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3660:12:89"},"nodeType":"YulFunctionCall","src":"3660:55:89"},"nodeType":"YulExpressionStatement","src":"3660:55:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3739:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3748:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3735:3:89"},"nodeType":"YulFunctionCall","src":"3735:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"3753:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3731:3:89"},"nodeType":"YulFunctionCall","src":"3731:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"3760:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3724:6:89"},"nodeType":"YulFunctionCall","src":"3724:38:89"},"nodeType":"YulExpressionStatement","src":"3724:38:89"},{"nodeType":"YulAssignment","src":"3771:16:89","value":{"name":"array_1","nodeType":"YulIdentifier","src":"3780:7:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3771:5:89"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3289:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"3297:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3305:5:89","type":""}],"src":"3263:530:89"},{"body":{"nodeType":"YulBlock","src":"3928:407:89","statements":[{"body":{"nodeType":"YulBlock","src":"3975:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3984:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3987:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3977:6:89"},"nodeType":"YulFunctionCall","src":"3977:12:89"},"nodeType":"YulExpressionStatement","src":"3977:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3949:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3958:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3945:3:89"},"nodeType":"YulFunctionCall","src":"3945:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3970:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3941:3:89"},"nodeType":"YulFunctionCall","src":"3941:33:89"},"nodeType":"YulIf","src":"3938:53:89"},{"nodeType":"YulAssignment","src":"4000:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4029:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4010:18:89"},"nodeType":"YulFunctionCall","src":"4010:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4000:6:89"}]},{"nodeType":"YulAssignment","src":"4048:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4081:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4092:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4077:3:89"},"nodeType":"YulFunctionCall","src":"4077:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4058:18:89"},"nodeType":"YulFunctionCall","src":"4058:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4048:6:89"}]},{"nodeType":"YulAssignment","src":"4105:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4132:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4143:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4128:3:89"},"nodeType":"YulFunctionCall","src":"4128:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4115:12:89"},"nodeType":"YulFunctionCall","src":"4115:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4105:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4156:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4187:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4198:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4183:3:89"},"nodeType":"YulFunctionCall","src":"4183:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4170:12:89"},"nodeType":"YulFunctionCall","src":"4170:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4160:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4245:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4254:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4247:6:89"},"nodeType":"YulFunctionCall","src":"4247:12:89"},"nodeType":"YulExpressionStatement","src":"4247:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4217:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4225:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4214:2:89"},"nodeType":"YulFunctionCall","src":"4214:30:89"},"nodeType":"YulIf","src":"4211:50:89"},{"nodeType":"YulAssignment","src":"4270:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4301:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4312:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4297:3:89"},"nodeType":"YulFunctionCall","src":"4297:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4321:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4280:16:89"},"nodeType":"YulFunctionCall","src":"4280:49:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4270:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3870:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3881:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3893:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3901:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3909:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3917:6:89","type":""}],"src":"3798:537:89"},{"body":{"nodeType":"YulBlock","src":"4439:103:89","statements":[{"nodeType":"YulAssignment","src":"4449:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4461:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4472:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4457:3:89"},"nodeType":"YulFunctionCall","src":"4457:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4449:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4491:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4506:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4518:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4523:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4514:3:89"},"nodeType":"YulFunctionCall","src":"4514:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4502:3:89"},"nodeType":"YulFunctionCall","src":"4502:33:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4484:6:89"},"nodeType":"YulFunctionCall","src":"4484:52:89"},"nodeType":"YulExpressionStatement","src":"4484:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4408:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4419:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4430:4:89","type":""}],"src":"4340:202:89"},{"body":{"nodeType":"YulBlock","src":"4634:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"4680:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4689:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4692:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4682:6:89"},"nodeType":"YulFunctionCall","src":"4682:12:89"},"nodeType":"YulExpressionStatement","src":"4682:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4655:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4664:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4651:3:89"},"nodeType":"YulFunctionCall","src":"4651:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4676:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4647:3:89"},"nodeType":"YulFunctionCall","src":"4647:32:89"},"nodeType":"YulIf","src":"4644:52:89"},{"nodeType":"YulAssignment","src":"4705:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4728:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4715:12:89"},"nodeType":"YulFunctionCall","src":"4715:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4705:6:89"}]},{"nodeType":"YulAssignment","src":"4747:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4780:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4791:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4776:3:89"},"nodeType":"YulFunctionCall","src":"4776:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4757:18:89"},"nodeType":"YulFunctionCall","src":"4757:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4747:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4592:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4603:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4615:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4623:6:89","type":""}],"src":"4547:254:89"},{"body":{"nodeType":"YulBlock","src":"4876:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"4922:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4931:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4934:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4924:6:89"},"nodeType":"YulFunctionCall","src":"4924:12:89"},"nodeType":"YulExpressionStatement","src":"4924:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4897:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4906:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4893:3:89"},"nodeType":"YulFunctionCall","src":"4893:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4918:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4889:3:89"},"nodeType":"YulFunctionCall","src":"4889:32:89"},"nodeType":"YulIf","src":"4886:52:89"},{"nodeType":"YulAssignment","src":"4947:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4970:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4957:12:89"},"nodeType":"YulFunctionCall","src":"4957:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4947:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4842:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4853:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4865:6:89","type":""}],"src":"4806:180:89"},{"body":{"nodeType":"YulBlock","src":"5075:283:89","statements":[{"body":{"nodeType":"YulBlock","src":"5124:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5133:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5136:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5126:6:89"},"nodeType":"YulFunctionCall","src":"5126:12:89"},"nodeType":"YulExpressionStatement","src":"5126:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5103:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5111:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5099:3:89"},"nodeType":"YulFunctionCall","src":"5099:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"5118:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5095:3:89"},"nodeType":"YulFunctionCall","src":"5095:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5088:6:89"},"nodeType":"YulFunctionCall","src":"5088:35:89"},"nodeType":"YulIf","src":"5085:55:89"},{"nodeType":"YulAssignment","src":"5149:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5172:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5159:12:89"},"nodeType":"YulFunctionCall","src":"5159:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5149:6:89"}]},{"body":{"nodeType":"YulBlock","src":"5222:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5231:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5224:6:89"},"nodeType":"YulFunctionCall","src":"5224:12:89"},"nodeType":"YulExpressionStatement","src":"5224:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5194:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5202:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5191:2:89"},"nodeType":"YulFunctionCall","src":"5191:30:89"},"nodeType":"YulIf","src":"5188:50:89"},{"nodeType":"YulAssignment","src":"5247:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5263:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5271:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5259:3:89"},"nodeType":"YulFunctionCall","src":"5259:17:89"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5247:8:89"}]},{"body":{"nodeType":"YulBlock","src":"5336:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5345:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5348:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5338:6:89"},"nodeType":"YulFunctionCall","src":"5338:12:89"},"nodeType":"YulExpressionStatement","src":"5338:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5299:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5311:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"5314:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5307:3:89"},"nodeType":"YulFunctionCall","src":"5307:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5295:3:89"},"nodeType":"YulFunctionCall","src":"5295:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"5324:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5291:3:89"},"nodeType":"YulFunctionCall","src":"5291:38:89"},{"name":"end","nodeType":"YulIdentifier","src":"5331:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5288:2:89"},"nodeType":"YulFunctionCall","src":"5288:47:89"},"nodeType":"YulIf","src":"5285:67:89"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5038:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"5046:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"5054:8:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"5064:6:89","type":""}],"src":"4991:367:89"},{"body":{"nodeType":"YulBlock","src":"5634:1035:89","statements":[{"body":{"nodeType":"YulBlock","src":"5681:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5690:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5693:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5683:6:89"},"nodeType":"YulFunctionCall","src":"5683:12:89"},"nodeType":"YulExpressionStatement","src":"5683:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5655:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5664:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5651:3:89"},"nodeType":"YulFunctionCall","src":"5651:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5676:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5647:3:89"},"nodeType":"YulFunctionCall","src":"5647:33:89"},"nodeType":"YulIf","src":"5644:53:89"},{"nodeType":"YulVariableDeclaration","src":"5706:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5733:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5720:12:89"},"nodeType":"YulFunctionCall","src":"5720:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5710:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5752:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"5762:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5756:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5807:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5816:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5819:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5809:6:89"},"nodeType":"YulFunctionCall","src":"5809:12:89"},"nodeType":"YulExpressionStatement","src":"5809:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5795:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5803:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5792:2:89"},"nodeType":"YulFunctionCall","src":"5792:14:89"},"nodeType":"YulIf","src":"5789:34:89"},{"nodeType":"YulVariableDeclaration","src":"5832:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5900:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5911:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5896:3:89"},"nodeType":"YulFunctionCall","src":"5896:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5920:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"5858:37:89"},"nodeType":"YulFunctionCall","src":"5858:70:89"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5836:8:89","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5846:8:89","type":""}]},{"nodeType":"YulAssignment","src":"5937:18:89","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5947:8:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5937:6:89"}]},{"nodeType":"YulAssignment","src":"5964:18:89","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5974:8:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5964:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5991:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6024:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6035:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6020:3:89"},"nodeType":"YulFunctionCall","src":"6020:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6007:12:89"},"nodeType":"YulFunctionCall","src":"6007:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5995:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6068:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6077:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6080:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6070:6:89"},"nodeType":"YulFunctionCall","src":"6070:12:89"},"nodeType":"YulExpressionStatement","src":"6070:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6054:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6064:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6051:2:89"},"nodeType":"YulFunctionCall","src":"6051:16:89"},"nodeType":"YulIf","src":"6048:36:89"},{"nodeType":"YulVariableDeclaration","src":"6093:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6161:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6172:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6157:3:89"},"nodeType":"YulFunctionCall","src":"6157:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6183:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6119:37:89"},"nodeType":"YulFunctionCall","src":"6119:72:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6097:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6107:8:89","type":""}]},{"nodeType":"YulAssignment","src":"6200:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6210:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6200:6:89"}]},{"nodeType":"YulAssignment","src":"6227:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6237:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6227:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"6254:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:89"},"nodeType":"YulFunctionCall","src":"6283:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6270:12:89"},"nodeType":"YulFunctionCall","src":"6270:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"6258:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6331:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6340:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6343:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6333:6:89"},"nodeType":"YulFunctionCall","src":"6333:12:89"},"nodeType":"YulExpressionStatement","src":"6333:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"6317:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6327:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6314:2:89"},"nodeType":"YulFunctionCall","src":"6314:16:89"},"nodeType":"YulIf","src":"6311:36:89"},{"nodeType":"YulVariableDeclaration","src":"6356:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6424:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"6435:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6420:3:89"},"nodeType":"YulFunctionCall","src":"6420:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6446:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6382:37:89"},"nodeType":"YulFunctionCall","src":"6382:72:89"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"6360:8:89","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"6370:8:89","type":""}]},{"nodeType":"YulAssignment","src":"6463:18:89","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6473:8:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6463:6:89"}]},{"nodeType":"YulAssignment","src":"6490:18:89","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"6500:8:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6490:6:89"}]},{"nodeType":"YulAssignment","src":"6517:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6544:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6555:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6540:3:89"},"nodeType":"YulFunctionCall","src":"6540:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6527:12:89"},"nodeType":"YulFunctionCall","src":"6527:32:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6517:6:89"}]},{"nodeType":"YulAssignment","src":"6568:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6595:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6606:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6591:3:89"},"nodeType":"YulFunctionCall","src":"6591:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6578:12:89"},"nodeType":"YulFunctionCall","src":"6578:33:89"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"6568:6:89"}]},{"nodeType":"YulAssignment","src":"6620:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6647:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6658:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6643:3:89"},"nodeType":"YulFunctionCall","src":"6643:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6630:12:89"},"nodeType":"YulFunctionCall","src":"6630:33:89"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"6620:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5536:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5547:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5559:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5567:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5575:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5583:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5591:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5599:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5607:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"5615:6:89","type":""},{"name":"value8","nodeType":"YulTypedName","src":"5623:6:89","type":""}],"src":"5363:1306:89"},{"body":{"nodeType":"YulBlock","src":"6928:983:89","statements":[{"body":{"nodeType":"YulBlock","src":"6975:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6984:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6987:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6977:6:89"},"nodeType":"YulFunctionCall","src":"6977:12:89"},"nodeType":"YulExpressionStatement","src":"6977:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6949:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6945:3:89"},"nodeType":"YulFunctionCall","src":"6945:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"6970:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6941:3:89"},"nodeType":"YulFunctionCall","src":"6941:33:89"},"nodeType":"YulIf","src":"6938:53:89"},{"nodeType":"YulVariableDeclaration","src":"7000:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7027:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7014:12:89"},"nodeType":"YulFunctionCall","src":"7014:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7004:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7046:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7056:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7050:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7101:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7110:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7113:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7103:6:89"},"nodeType":"YulFunctionCall","src":"7103:12:89"},"nodeType":"YulExpressionStatement","src":"7103:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7089:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7097:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7086:2:89"},"nodeType":"YulFunctionCall","src":"7086:14:89"},"nodeType":"YulIf","src":"7083:34:89"},{"nodeType":"YulVariableDeclaration","src":"7126:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7194:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"7205:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7190:3:89"},"nodeType":"YulFunctionCall","src":"7190:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7214:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7152:37:89"},"nodeType":"YulFunctionCall","src":"7152:70:89"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7130:8:89","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7140:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7231:18:89","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"7241:8:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7231:6:89"}]},{"nodeType":"YulAssignment","src":"7258:18:89","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7268:8:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7258:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"7285:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7318:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7329:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7314:3:89"},"nodeType":"YulFunctionCall","src":"7314:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7301:12:89"},"nodeType":"YulFunctionCall","src":"7301:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7289:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7362:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7371:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7374:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7364:6:89"},"nodeType":"YulFunctionCall","src":"7364:12:89"},"nodeType":"YulExpressionStatement","src":"7364:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7348:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7358:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7345:2:89"},"nodeType":"YulFunctionCall","src":"7345:16:89"},"nodeType":"YulIf","src":"7342:36:89"},{"nodeType":"YulVariableDeclaration","src":"7387:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7455:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7466:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7451:3:89"},"nodeType":"YulFunctionCall","src":"7451:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7477:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7413:37:89"},"nodeType":"YulFunctionCall","src":"7413:72:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7391:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7401:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7494:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7504:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7494:6:89"}]},{"nodeType":"YulAssignment","src":"7521:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7531:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7521:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"7548:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7581:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7592:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7577:3:89"},"nodeType":"YulFunctionCall","src":"7577:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7564:12:89"},"nodeType":"YulFunctionCall","src":"7564:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7552:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7625:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7634:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7637:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7627:6:89"},"nodeType":"YulFunctionCall","src":"7627:12:89"},"nodeType":"YulExpressionStatement","src":"7627:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7611:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7621:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7608:2:89"},"nodeType":"YulFunctionCall","src":"7608:16:89"},"nodeType":"YulIf","src":"7605:36:89"},{"nodeType":"YulVariableDeclaration","src":"7650:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7718:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7729:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7714:3:89"},"nodeType":"YulFunctionCall","src":"7714:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7740:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7676:37:89"},"nodeType":"YulFunctionCall","src":"7676:72:89"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"7654:8:89","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"7664:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7757:18:89","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7767:8:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7757:6:89"}]},{"nodeType":"YulAssignment","src":"7784:18:89","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"7794:8:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7784:6:89"}]},{"nodeType":"YulAssignment","src":"7811:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7849:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7834:3:89"},"nodeType":"YulFunctionCall","src":"7834:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7821:12:89"},"nodeType":"YulFunctionCall","src":"7821:32:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7811:6:89"}]},{"nodeType":"YulAssignment","src":"7862:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7889:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7900:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7885:3:89"},"nodeType":"YulFunctionCall","src":"7885:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7872:12:89"},"nodeType":"YulFunctionCall","src":"7872:33:89"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"7862:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6838:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6849:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6861:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6869:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6877:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6885:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6893:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6901:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6909:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6917:6:89","type":""}],"src":"6674:1237:89"},{"body":{"nodeType":"YulBlock","src":"7980:648:89","statements":[{"body":{"nodeType":"YulBlock","src":"8029:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8038:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8041:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8031:6:89"},"nodeType":"YulFunctionCall","src":"8031:12:89"},"nodeType":"YulExpressionStatement","src":"8031:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8008:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8016:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8004:3:89"},"nodeType":"YulFunctionCall","src":"8004:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"8023:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8000:3:89"},"nodeType":"YulFunctionCall","src":"8000:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7993:6:89"},"nodeType":"YulFunctionCall","src":"7993:35:89"},"nodeType":"YulIf","src":"7990:55:89"},{"nodeType":"YulVariableDeclaration","src":"8054:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8077:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8064:12:89"},"nodeType":"YulFunctionCall","src":"8064:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8058:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8093:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"8103:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8097:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8146:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8148:16:89"},"nodeType":"YulFunctionCall","src":"8148:18:89"},"nodeType":"YulExpressionStatement","src":"8148:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8122:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"8126:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8119:2:89"},"nodeType":"YulFunctionCall","src":"8119:26:89"},"nodeType":"YulIf","src":"8116:52:89"},{"nodeType":"YulVariableDeclaration","src":"8177:20:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"8194:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8187:3:89"},"nodeType":"YulFunctionCall","src":"8187:10:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"8181:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8206:39:89","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"8237:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8241:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8233:3:89"},"nodeType":"YulFunctionCall","src":"8233:11:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8217:15:89"},"nodeType":"YulFunctionCall","src":"8217:28:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"8210:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8254:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"8267:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"8258:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8286:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8291:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8279:6:89"},"nodeType":"YulFunctionCall","src":"8279:15:89"},"nodeType":"YulExpressionStatement","src":"8279:15:89"},{"nodeType":"YulAssignment","src":"8303:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8314:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8319:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8310:3:89"},"nodeType":"YulFunctionCall","src":"8310:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"8303:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"8331:38:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8353:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"8361:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8349:3:89"},"nodeType":"YulFunctionCall","src":"8349:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8366:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8345:3:89"},"nodeType":"YulFunctionCall","src":"8345:24:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"8335:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8397:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8406:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8409:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8399:6:89"},"nodeType":"YulFunctionCall","src":"8399:12:89"},"nodeType":"YulExpressionStatement","src":"8399:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"8384:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"8392:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8381:2:89"},"nodeType":"YulFunctionCall","src":"8381:15:89"},"nodeType":"YulIf","src":"8378:35:89"},{"nodeType":"YulVariableDeclaration","src":"8422:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8437:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8445:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8433:3:89"},"nodeType":"YulFunctionCall","src":"8433:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"8426:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8513:86:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8534:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8552:3:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8539:12:89"},"nodeType":"YulFunctionCall","src":"8539:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8527:6:89"},"nodeType":"YulFunctionCall","src":"8527:30:89"},"nodeType":"YulExpressionStatement","src":"8527:30:89"},{"nodeType":"YulAssignment","src":"8570:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8581:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8586:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8577:3:89"},"nodeType":"YulFunctionCall","src":"8577:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"8570:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8468:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"8473:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8465:2:89"},"nodeType":"YulFunctionCall","src":"8465:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8481:23:89","statements":[{"nodeType":"YulAssignment","src":"8483:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8494:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8499:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8490:3:89"},"nodeType":"YulFunctionCall","src":"8490:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"8483:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"8461:3:89","statements":[]},"src":"8457:142:89"},{"nodeType":"YulAssignment","src":"8608:14:89","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"8617:5:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"8608:5:89"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7954:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"7962:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7970:5:89","type":""}],"src":"7916:712:89"},{"body":{"nodeType":"YulBlock","src":"8830:746:89","statements":[{"body":{"nodeType":"YulBlock","src":"8877:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8886:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8889:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8879:6:89"},"nodeType":"YulFunctionCall","src":"8879:12:89"},"nodeType":"YulExpressionStatement","src":"8879:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8851:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"8860:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8847:3:89"},"nodeType":"YulFunctionCall","src":"8847:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"8872:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8843:3:89"},"nodeType":"YulFunctionCall","src":"8843:33:89"},"nodeType":"YulIf","src":"8840:53:89"},{"nodeType":"YulAssignment","src":"8902:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8931:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8912:18:89"},"nodeType":"YulFunctionCall","src":"8912:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8902:6:89"}]},{"nodeType":"YulAssignment","src":"8950:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8983:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8994:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8979:3:89"},"nodeType":"YulFunctionCall","src":"8979:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8960:18:89"},"nodeType":"YulFunctionCall","src":"8960:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8950:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9007:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9038:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9049:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9034:3:89"},"nodeType":"YulFunctionCall","src":"9034:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9021:12:89"},"nodeType":"YulFunctionCall","src":"9021:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9011:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9062:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9072:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9066:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9117:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9126:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9129:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9119:6:89"},"nodeType":"YulFunctionCall","src":"9119:12:89"},"nodeType":"YulExpressionStatement","src":"9119:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9105:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9113:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9102:2:89"},"nodeType":"YulFunctionCall","src":"9102:14:89"},"nodeType":"YulIf","src":"9099:34:89"},{"nodeType":"YulAssignment","src":"9142:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9185:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"9196:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9181:3:89"},"nodeType":"YulFunctionCall","src":"9181:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9205:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9152:28:89"},"nodeType":"YulFunctionCall","src":"9152:61:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9142:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9222:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9255:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9266:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9251:3:89"},"nodeType":"YulFunctionCall","src":"9251:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9238:12:89"},"nodeType":"YulFunctionCall","src":"9238:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9226:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9299:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9308:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9311:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9301:6:89"},"nodeType":"YulFunctionCall","src":"9301:12:89"},"nodeType":"YulExpressionStatement","src":"9301:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9285:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9295:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9282:2:89"},"nodeType":"YulFunctionCall","src":"9282:16:89"},"nodeType":"YulIf","src":"9279:36:89"},{"nodeType":"YulAssignment","src":"9324:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9367:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9378:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9363:3:89"},"nodeType":"YulFunctionCall","src":"9363:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9389:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9334:28:89"},"nodeType":"YulFunctionCall","src":"9334:63:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9324:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9406:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9450:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:89"},"nodeType":"YulFunctionCall","src":"9435:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9422:12:89"},"nodeType":"YulFunctionCall","src":"9422:33:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9410:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9484:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9493:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9496:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9486:6:89"},"nodeType":"YulFunctionCall","src":"9486:12:89"},"nodeType":"YulExpressionStatement","src":"9486:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9470:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9480:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9467:2:89"},"nodeType":"YulFunctionCall","src":"9467:16:89"},"nodeType":"YulIf","src":"9464:36:89"},{"nodeType":"YulAssignment","src":"9509:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9540:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9551:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9536:3:89"},"nodeType":"YulFunctionCall","src":"9536:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9562:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"9519:16:89"},"nodeType":"YulFunctionCall","src":"9519:51:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9509:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8764:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8775:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8787:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8795:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8803:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8811:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8819:6:89","type":""}],"src":"8633:943:89"},{"body":{"nodeType":"YulBlock","src":"9682:76:89","statements":[{"nodeType":"YulAssignment","src":"9692:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9704:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9715:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9700:3:89"},"nodeType":"YulFunctionCall","src":"9700:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9692:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9734:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"9745:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9727:6:89"},"nodeType":"YulFunctionCall","src":"9727:25:89"},"nodeType":"YulExpressionStatement","src":"9727:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9651:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9662:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9673:4:89","type":""}],"src":"9581:177:89"},{"body":{"nodeType":"YulBlock","src":"9910:459:89","statements":[{"body":{"nodeType":"YulBlock","src":"9957:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9966:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9969:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9959:6:89"},"nodeType":"YulFunctionCall","src":"9959:12:89"},"nodeType":"YulExpressionStatement","src":"9959:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9931:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"9940:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9927:3:89"},"nodeType":"YulFunctionCall","src":"9927:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"9952:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9923:3:89"},"nodeType":"YulFunctionCall","src":"9923:33:89"},"nodeType":"YulIf","src":"9920:53:89"},{"nodeType":"YulAssignment","src":"9982:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10011:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"9992:18:89"},"nodeType":"YulFunctionCall","src":"9992:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9982:6:89"}]},{"nodeType":"YulAssignment","src":"10030:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10063:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10074:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10059:3:89"},"nodeType":"YulFunctionCall","src":"10059:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"10040:18:89"},"nodeType":"YulFunctionCall","src":"10040:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10030:6:89"}]},{"nodeType":"YulAssignment","src":"10087:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10114:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10125:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10110:3:89"},"nodeType":"YulFunctionCall","src":"10110:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10097:12:89"},"nodeType":"YulFunctionCall","src":"10097:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10087:6:89"}]},{"nodeType":"YulAssignment","src":"10138:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10165:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10176:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10161:3:89"},"nodeType":"YulFunctionCall","src":"10161:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10148:12:89"},"nodeType":"YulFunctionCall","src":"10148:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10138:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"10189:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10231:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10216:3:89"},"nodeType":"YulFunctionCall","src":"10216:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10203:12:89"},"nodeType":"YulFunctionCall","src":"10203:33:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10193:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"10279:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10288:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10291:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10281:6:89"},"nodeType":"YulFunctionCall","src":"10281:12:89"},"nodeType":"YulExpressionStatement","src":"10281:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10251:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10259:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10248:2:89"},"nodeType":"YulFunctionCall","src":"10248:30:89"},"nodeType":"YulIf","src":"10245:50:89"},{"nodeType":"YulAssignment","src":"10304:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10335:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"10346:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10331:3:89"},"nodeType":"YulFunctionCall","src":"10331:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10355:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"10314:16:89"},"nodeType":"YulFunctionCall","src":"10314:49:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"10304:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9844:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9855:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9867:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9875:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9883:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9891:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9899:6:89","type":""}],"src":"9763:606:89"},{"body":{"nodeType":"YulBlock","src":"10440:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10457:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"10462:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10450:6:89"},"nodeType":"YulFunctionCall","src":"10450:19:89"},"nodeType":"YulExpressionStatement","src":"10450:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10495:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"10500:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10491:3:89"},"nodeType":"YulFunctionCall","src":"10491:14:89"},{"name":"start","nodeType":"YulIdentifier","src":"10507:5:89"},{"name":"length","nodeType":"YulIdentifier","src":"10514:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10478:12:89"},"nodeType":"YulFunctionCall","src":"10478:43:89"},"nodeType":"YulExpressionStatement","src":"10478:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10545:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"10550:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10541:3:89"},"nodeType":"YulFunctionCall","src":"10541:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"10559:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10537:3:89"},"nodeType":"YulFunctionCall","src":"10537:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"10566:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10530:6:89"},"nodeType":"YulFunctionCall","src":"10530:38:89"},"nodeType":"YulExpressionStatement","src":"10530:38:89"},{"nodeType":"YulAssignment","src":"10577:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10592:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10605:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10613:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10601:3:89"},"nodeType":"YulFunctionCall","src":"10601:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10622:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10618:3:89"},"nodeType":"YulFunctionCall","src":"10618:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10597:3:89"},"nodeType":"YulFunctionCall","src":"10597:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10588:3:89"},"nodeType":"YulFunctionCall","src":"10588:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"10629:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10584:3:89"},"nodeType":"YulFunctionCall","src":"10584:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10577:3:89"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"10409:5:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"10416:6:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10424:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10432:3:89","type":""}],"src":"10374:266:89"},{"body":{"nodeType":"YulBlock","src":"10886:316:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10903:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10918:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10934:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10939:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10930:3:89"},"nodeType":"YulFunctionCall","src":"10930:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"10943:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10926:3:89"},"nodeType":"YulFunctionCall","src":"10926:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10914:3:89"},"nodeType":"YulFunctionCall","src":"10914:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10896:6:89"},"nodeType":"YulFunctionCall","src":"10896:51:89"},"nodeType":"YulExpressionStatement","src":"10896:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10967:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10978:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10963:3:89"},"nodeType":"YulFunctionCall","src":"10963:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"10983:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10956:6:89"},"nodeType":"YulFunctionCall","src":"10956:34:89"},"nodeType":"YulExpressionStatement","src":"10956:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11010:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11021:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11006:3:89"},"nodeType":"YulFunctionCall","src":"11006:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11026:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10999:6:89"},"nodeType":"YulFunctionCall","src":"10999:31:89"},"nodeType":"YulExpressionStatement","src":"10999:31:89"},{"nodeType":"YulAssignment","src":"11039:70:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11073:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"11081:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11104:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:89"},"nodeType":"YulFunctionCall","src":"11089:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11047:25:89"},"nodeType":"YulFunctionCall","src":"11047:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11039:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11129:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11140:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11125:3:89"},"nodeType":"YulFunctionCall","src":"11125:18:89"},{"name":"value4","nodeType":"YulIdentifier","src":"11145:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11118:6:89"},"nodeType":"YulFunctionCall","src":"11118:34:89"},"nodeType":"YulExpressionStatement","src":"11118:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11172:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11183:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11168:3:89"},"nodeType":"YulFunctionCall","src":"11168:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"11189:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11161:6:89"},"nodeType":"YulFunctionCall","src":"11161:35:89"},"nodeType":"YulExpressionStatement","src":"11161:35:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10815:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10826:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10834:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10842:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10850:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10858:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10866:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10877:4:89","type":""}],"src":"10645:557:89"},{"body":{"nodeType":"YulBlock","src":"11392:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11409:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11424:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11440:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11445:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11436:3:89"},"nodeType":"YulFunctionCall","src":"11436:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"11449:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11432:3:89"},"nodeType":"YulFunctionCall","src":"11432:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11420:3:89"},"nodeType":"YulFunctionCall","src":"11420:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11402:6:89"},"nodeType":"YulFunctionCall","src":"11402:51:89"},"nodeType":"YulExpressionStatement","src":"11402:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11473:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11484:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11469:3:89"},"nodeType":"YulFunctionCall","src":"11469:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"11489:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11462:6:89"},"nodeType":"YulFunctionCall","src":"11462:34:89"},"nodeType":"YulExpressionStatement","src":"11462:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11516:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11527:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11512:3:89"},"nodeType":"YulFunctionCall","src":"11512:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11532:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11505:6:89"},"nodeType":"YulFunctionCall","src":"11505:30:89"},"nodeType":"YulExpressionStatement","src":"11505:30:89"},{"nodeType":"YulAssignment","src":"11544:69:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11578:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"11586:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11598:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11609:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11594:3:89"},"nodeType":"YulFunctionCall","src":"11594:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11552:25:89"},"nodeType":"YulFunctionCall","src":"11552:61:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11544:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11337:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11348:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11356:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11364:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11372:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11383:4:89","type":""}],"src":"11207:412:89"},{"body":{"nodeType":"YulBlock","src":"11798:237:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11815:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11826:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11808:6:89"},"nodeType":"YulFunctionCall","src":"11808:21:89"},"nodeType":"YulExpressionStatement","src":"11808:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11849:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11860:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11845:3:89"},"nodeType":"YulFunctionCall","src":"11845:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11865:2:89","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11838:6:89"},"nodeType":"YulFunctionCall","src":"11838:30:89"},"nodeType":"YulExpressionStatement","src":"11838:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11888:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11899:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11884:3:89"},"nodeType":"YulFunctionCall","src":"11884:18:89"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"11904:34:89","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11877:6:89"},"nodeType":"YulFunctionCall","src":"11877:62:89"},"nodeType":"YulExpressionStatement","src":"11877:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11959:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11970:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11955:3:89"},"nodeType":"YulFunctionCall","src":"11955:18:89"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"11975:17:89","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11948:6:89"},"nodeType":"YulFunctionCall","src":"11948:45:89"},"nodeType":"YulExpressionStatement","src":"11948:45:89"},{"nodeType":"YulAssignment","src":"12002:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12014:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12025:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12010:3:89"},"nodeType":"YulFunctionCall","src":"12010:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12002:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11775:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11789:4:89","type":""}],"src":"11624:411:89"},{"body":{"nodeType":"YulBlock","src":"12214:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12231:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12242:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12224:6:89"},"nodeType":"YulFunctionCall","src":"12224:21:89"},"nodeType":"YulExpressionStatement","src":"12224:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12265:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12276:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12261:3:89"},"nodeType":"YulFunctionCall","src":"12261:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12281:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12254:6:89"},"nodeType":"YulFunctionCall","src":"12254:30:89"},"nodeType":"YulExpressionStatement","src":"12254:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12304:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12315:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12300:3:89"},"nodeType":"YulFunctionCall","src":"12300:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d75737420","kind":"string","nodeType":"YulLiteral","src":"12320:34:89","type":"","value":"TimelockController: caller must "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12293:6:89"},"nodeType":"YulFunctionCall","src":"12293:62:89"},"nodeType":"YulExpressionStatement","src":"12293:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12375:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12386:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12371:3:89"},"nodeType":"YulFunctionCall","src":"12371:18:89"},{"hexValue":"62652074696d656c6f636b","kind":"string","nodeType":"YulLiteral","src":"12391:13:89","type":"","value":"be timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12364:6:89"},"nodeType":"YulFunctionCall","src":"12364:41:89"},"nodeType":"YulExpressionStatement","src":"12364:41:89"},{"nodeType":"YulAssignment","src":"12414:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12426:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12437:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12422:3:89"},"nodeType":"YulFunctionCall","src":"12422:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12414:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12191:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12205:4:89","type":""}],"src":"12040:407:89"},{"body":{"nodeType":"YulBlock","src":"12581:119:89","statements":[{"nodeType":"YulAssignment","src":"12591:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12603:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12614:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12599:3:89"},"nodeType":"YulFunctionCall","src":"12599:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12591:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12633:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"12644:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12626:6:89"},"nodeType":"YulFunctionCall","src":"12626:25:89"},"nodeType":"YulExpressionStatement","src":"12626:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12682:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12667:3:89"},"nodeType":"YulFunctionCall","src":"12667:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"12687:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12660:6:89"},"nodeType":"YulFunctionCall","src":"12660:34:89"},"nodeType":"YulExpressionStatement","src":"12660:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12542:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12553:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12561:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12572:4:89","type":""}],"src":"12452:248:89"},{"body":{"nodeType":"YulBlock","src":"12946:316:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12963:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12978:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12994:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12999:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12990:3:89"},"nodeType":"YulFunctionCall","src":"12990:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"13003:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12986:3:89"},"nodeType":"YulFunctionCall","src":"12986:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12974:3:89"},"nodeType":"YulFunctionCall","src":"12974:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12956:6:89"},"nodeType":"YulFunctionCall","src":"12956:51:89"},"nodeType":"YulExpressionStatement","src":"12956:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13027:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13038:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13023:3:89"},"nodeType":"YulFunctionCall","src":"13023:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"13043:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13016:6:89"},"nodeType":"YulFunctionCall","src":"13016:34:89"},"nodeType":"YulExpressionStatement","src":"13016:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13070:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13081:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13066:3:89"},"nodeType":"YulFunctionCall","src":"13066:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"13086:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13059:6:89"},"nodeType":"YulFunctionCall","src":"13059:31:89"},"nodeType":"YulExpressionStatement","src":"13059:31:89"},{"nodeType":"YulAssignment","src":"13099:70:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13133:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"13141:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13153:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13164:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13149:3:89"},"nodeType":"YulFunctionCall","src":"13149:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13107:25:89"},"nodeType":"YulFunctionCall","src":"13107:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13099:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13189:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13200:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13185:3:89"},"nodeType":"YulFunctionCall","src":"13185:18:89"},{"name":"value4","nodeType":"YulIdentifier","src":"13205:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13178:6:89"},"nodeType":"YulFunctionCall","src":"13178:34:89"},"nodeType":"YulExpressionStatement","src":"13178:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13232:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13243:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13228:3:89"},"nodeType":"YulFunctionCall","src":"13228:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"13249:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13221:6:89"},"nodeType":"YulFunctionCall","src":"13221:35:89"},"nodeType":"YulExpressionStatement","src":"13221:35:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12875:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"12886:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12894:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12902:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12910:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12918:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12926:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12937:4:89","type":""}],"src":"12705:557:89"},{"body":{"nodeType":"YulBlock","src":"13441:225:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13458:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13469:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13451:6:89"},"nodeType":"YulFunctionCall","src":"13451:21:89"},"nodeType":"YulExpressionStatement","src":"13451:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13492:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13503:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13488:3:89"},"nodeType":"YulFunctionCall","src":"13488:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"13508:2:89","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13481:6:89"},"nodeType":"YulFunctionCall","src":"13481:30:89"},"nodeType":"YulExpressionStatement","src":"13481:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13531:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13542:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13527:3:89"},"nodeType":"YulFunctionCall","src":"13527:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61","kind":"string","nodeType":"YulLiteral","src":"13547:34:89","type":"","value":"TimelockController: length misma"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13520:6:89"},"nodeType":"YulFunctionCall","src":"13520:62:89"},"nodeType":"YulExpressionStatement","src":"13520:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13602:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13613:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13598:3:89"},"nodeType":"YulFunctionCall","src":"13598:18:89"},{"hexValue":"746368","kind":"string","nodeType":"YulLiteral","src":"13618:5:89","type":"","value":"tch"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13591:6:89"},"nodeType":"YulFunctionCall","src":"13591:33:89"},"nodeType":"YulExpressionStatement","src":"13591:33:89"},{"nodeType":"YulAssignment","src":"13633:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13645:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13656:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13641:3:89"},"nodeType":"YulFunctionCall","src":"13641:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13633:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13418:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13432:4:89","type":""}],"src":"13267:399:89"},{"body":{"nodeType":"YulBlock","src":"13703:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13720:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13727:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13732:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13723:3:89"},"nodeType":"YulFunctionCall","src":"13723:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13713:6:89"},"nodeType":"YulFunctionCall","src":"13713:31:89"},"nodeType":"YulExpressionStatement","src":"13713:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13760:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13763:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13753:6:89"},"nodeType":"YulFunctionCall","src":"13753:15:89"},"nodeType":"YulExpressionStatement","src":"13753:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13784:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13787:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13777:6:89"},"nodeType":"YulFunctionCall","src":"13777:15:89"},"nodeType":"YulExpressionStatement","src":"13777:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"13671:127:89"},{"body":{"nodeType":"YulBlock","src":"13873:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"13919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13928:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13921:6:89"},"nodeType":"YulFunctionCall","src":"13921:12:89"},"nodeType":"YulExpressionStatement","src":"13921:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13894:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"13903:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13890:3:89"},"nodeType":"YulFunctionCall","src":"13890:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13886:3:89"},"nodeType":"YulFunctionCall","src":"13886:32:89"},"nodeType":"YulIf","src":"13883:52:89"},{"nodeType":"YulAssignment","src":"13944:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13973:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"13954:18:89"},"nodeType":"YulFunctionCall","src":"13954:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13944:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13839:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13850:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13862:6:89","type":""}],"src":"13803:186:89"},{"body":{"nodeType":"YulBlock","src":"14088:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14098:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"14137:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14124:12:89"},"nodeType":"YulFunctionCall","src":"14124:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"14102:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14238:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14247:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14250:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14240:6:89"},"nodeType":"YulFunctionCall","src":"14240:12:89"},"nodeType":"YulExpressionStatement","src":"14240:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"14172:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"14200:12:89"},"nodeType":"YulFunctionCall","src":"14200:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"14216:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14196:3:89"},"nodeType":"YulFunctionCall","src":"14196:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14231:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14227:3:89"},"nodeType":"YulFunctionCall","src":"14227:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14192:3:89"},"nodeType":"YulFunctionCall","src":"14192:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14168:3:89"},"nodeType":"YulFunctionCall","src":"14168:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14161:6:89"},"nodeType":"YulFunctionCall","src":"14161:76:89"},"nodeType":"YulIf","src":"14158:96:89"},{"nodeType":"YulVariableDeclaration","src":"14263:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"14281:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"14291:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14277:3:89"},"nodeType":"YulFunctionCall","src":"14277:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"14267:6:89","type":""}]},{"nodeType":"YulAssignment","src":"14319:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"14342:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14329:12:89"},"nodeType":"YulFunctionCall","src":"14329:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14319:6:89"}]},{"body":{"nodeType":"YulBlock","src":"14392:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14401:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14404:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14394:6:89"},"nodeType":"YulFunctionCall","src":"14394:12:89"},"nodeType":"YulExpressionStatement","src":"14394:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14364:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"14372:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14361:2:89"},"nodeType":"YulFunctionCall","src":"14361:30:89"},"nodeType":"YulIf","src":"14358:50:89"},{"nodeType":"YulAssignment","src":"14417:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"14429:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"14437:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14425:3:89"},"nodeType":"YulFunctionCall","src":"14425:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"14417:4:89"}]},{"body":{"nodeType":"YulBlock","src":"14493:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14502:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14505:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14495:6:89"},"nodeType":"YulFunctionCall","src":"14495:12:89"},"nodeType":"YulExpressionStatement","src":"14495:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"14458:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"14468:12:89"},"nodeType":"YulFunctionCall","src":"14468:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"14484:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14464:3:89"},"nodeType":"YulFunctionCall","src":"14464:27:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"14454:3:89"},"nodeType":"YulFunctionCall","src":"14454:38:89"},"nodeType":"YulIf","src":"14451:58:89"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"14045:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"14055:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"14071:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"14077:6:89","type":""}],"src":"13994:521:89"},{"body":{"nodeType":"YulBlock","src":"14552:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14569:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14576:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14581:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14572:3:89"},"nodeType":"YulFunctionCall","src":"14572:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14562:6:89"},"nodeType":"YulFunctionCall","src":"14562:31:89"},"nodeType":"YulExpressionStatement","src":"14562:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14609:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14612:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14602:6:89"},"nodeType":"YulFunctionCall","src":"14602:15:89"},"nodeType":"YulExpressionStatement","src":"14602:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14633:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14636:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14626:6:89"},"nodeType":"YulFunctionCall","src":"14626:15:89"},"nodeType":"YulExpressionStatement","src":"14626:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14520:127:89"},{"body":{"nodeType":"YulBlock","src":"14699:88:89","statements":[{"body":{"nodeType":"YulBlock","src":"14730:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14732:16:89"},"nodeType":"YulFunctionCall","src":"14732:18:89"},"nodeType":"YulExpressionStatement","src":"14732:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14715:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14726:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14722:3:89"},"nodeType":"YulFunctionCall","src":"14722:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14712:2:89"},"nodeType":"YulFunctionCall","src":"14712:17:89"},"nodeType":"YulIf","src":"14709:43:89"},{"nodeType":"YulAssignment","src":"14761:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14772:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"14779:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14768:3:89"},"nodeType":"YulFunctionCall","src":"14768:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14761:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14681:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14691:3:89","type":""}],"src":"14652:135:89"},{"body":{"nodeType":"YulBlock","src":"14877:982:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14894:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"14899:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14887:6:89"},"nodeType":"YulFunctionCall","src":"14887:19:89"},"nodeType":"YulExpressionStatement","src":"14887:19:89"},{"nodeType":"YulVariableDeclaration","src":"14915:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14925:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14919:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14938:31:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14961:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"14966:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14957:3:89"},"nodeType":"YulFunctionCall","src":"14957:12:89"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14942:11:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14978:24:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"14991:11:89"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"14982:5:89","type":""}]},{"nodeType":"YulAssignment","src":"15011:18:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"15018:11:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15011:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"15038:38:89","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"15054:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15065:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"15068:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15061:3:89"},"nodeType":"YulFunctionCall","src":"15061:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15050:3:89"},"nodeType":"YulFunctionCall","src":"15050:26:89"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"15042:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15085:19:89","value":{"name":"value","nodeType":"YulIdentifier","src":"15099:5:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"15089:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15113:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"15122:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15117:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15181:652:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15202:3:89"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15211:4:89"},{"name":"pos_1","nodeType":"YulIdentifier","src":"15217:5:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15207:3:89"},"nodeType":"YulFunctionCall","src":"15207:16:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15195:6:89"},"nodeType":"YulFunctionCall","src":"15195:29:89"},"nodeType":"YulExpressionStatement","src":"15195:29:89"},{"nodeType":"YulVariableDeclaration","src":"15237:46:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15276:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15263:12:89"},"nodeType":"YulFunctionCall","src":"15263:20:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"15241:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15373:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15382:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15385:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15375:6:89"},"nodeType":"YulFunctionCall","src":"15375:12:89"},"nodeType":"YulExpressionStatement","src":"15375:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"15310:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"15338:12:89"},"nodeType":"YulFunctionCall","src":"15338:14:89"},{"name":"value","nodeType":"YulIdentifier","src":"15354:5:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15334:3:89"},"nodeType":"YulFunctionCall","src":"15334:26:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15366:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15362:3:89"},"nodeType":"YulFunctionCall","src":"15362:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15330:3:89"},"nodeType":"YulFunctionCall","src":"15330:40:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15306:3:89"},"nodeType":"YulFunctionCall","src":"15306:65:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15299:6:89"},"nodeType":"YulFunctionCall","src":"15299:73:89"},"nodeType":"YulIf","src":"15296:93:89"},{"nodeType":"YulVariableDeclaration","src":"15402:45:89","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"15421:18:89"},{"name":"value","nodeType":"YulIdentifier","src":"15441:5:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15417:3:89"},"nodeType":"YulFunctionCall","src":"15417:30:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15406:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15460:37:89","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15489:7:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15476:12:89"},"nodeType":"YulFunctionCall","src":"15476:21:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"15464:8:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15510:31:89","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15529:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15538:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15525:3:89"},"nodeType":"YulFunctionCall","src":"15525:16:89"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"15514:7:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15590:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15599:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15602:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15592:6:89"},"nodeType":"YulFunctionCall","src":"15592:12:89"},"nodeType":"YulExpressionStatement","src":"15592:12:89"}]},"condition":{"arguments":[{"name":"length_1","nodeType":"YulIdentifier","src":"15560:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"15570:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15557:2:89"},"nodeType":"YulFunctionCall","src":"15557:32:89"},"nodeType":"YulIf","src":"15554:52:89"},{"body":{"nodeType":"YulBlock","src":"15666:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15675:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15678:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15668:6:89"},"nodeType":"YulFunctionCall","src":"15668:12:89"},"nodeType":"YulExpressionStatement","src":"15668:12:89"}]},"condition":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"15626:7:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"15639:12:89"},"nodeType":"YulFunctionCall","src":"15639:14:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"15655:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15635:3:89"},"nodeType":"YulFunctionCall","src":"15635:29:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"15622:3:89"},"nodeType":"YulFunctionCall","src":"15622:43:89"},"nodeType":"YulIf","src":"15619:63:89"},{"nodeType":"YulAssignment","src":"15695:58:89","value":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"15729:7:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"15738:8:89"},{"name":"tail","nodeType":"YulIdentifier","src":"15748:4:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15703:25:89"},"nodeType":"YulFunctionCall","src":"15703:50:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15695:4:89"}]},{"nodeType":"YulAssignment","src":"15766:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15780:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15788:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15776:3:89"},"nodeType":"YulFunctionCall","src":"15776:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15766:6:89"}]},{"nodeType":"YulAssignment","src":"15804:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15815:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15820:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15811:3:89"},"nodeType":"YulFunctionCall","src":"15811:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15143:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"15146:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15140:2:89"},"nodeType":"YulFunctionCall","src":"15140:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15154:18:89","statements":[{"nodeType":"YulAssignment","src":"15156:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15165:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"15168:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15161:3:89"},"nodeType":"YulFunctionCall","src":"15161:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15156:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"15136:3:89","statements":[]},"src":"15132:701:89"},{"nodeType":"YulAssignment","src":"15842:11:89","value":{"name":"tail","nodeType":"YulIdentifier","src":"15849:4:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15842:3:89"}]}]},"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14846:5:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"14853:6:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14861:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14869:3:89","type":""}],"src":"14792:1067:89"},{"body":{"nodeType":"YulBlock","src":"16277:980:89","statements":[{"nodeType":"YulVariableDeclaration","src":"16287:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16305:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16316:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:89"},"nodeType":"YulFunctionCall","src":"16301:19:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16291:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16336:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16347:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16329:6:89"},"nodeType":"YulFunctionCall","src":"16329:22:89"},"nodeType":"YulExpressionStatement","src":"16329:22:89"},{"nodeType":"YulVariableDeclaration","src":"16360:17:89","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"16371:6:89"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"16364:3:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"16393:6:89"},{"name":"value1","nodeType":"YulIdentifier","src":"16401:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16386:6:89"},"nodeType":"YulFunctionCall","src":"16386:22:89"},"nodeType":"YulExpressionStatement","src":"16386:22:89"},{"nodeType":"YulAssignment","src":"16417:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16428:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16439:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16424:3:89"},"nodeType":"YulFunctionCall","src":"16424:19:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16417:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"16452:20:89","value":{"name":"value0","nodeType":"YulIdentifier","src":"16466:6:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"16456:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16481:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"16490:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"16485:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"16549:186:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16570:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16598:6:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"16579:18:89"},"nodeType":"YulFunctionCall","src":"16579:26:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16615:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16620:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16611:3:89"},"nodeType":"YulFunctionCall","src":"16611:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16624:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16607:3:89"},"nodeType":"YulFunctionCall","src":"16607:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16575:3:89"},"nodeType":"YulFunctionCall","src":"16575:52:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16563:6:89"},"nodeType":"YulFunctionCall","src":"16563:65:89"},"nodeType":"YulExpressionStatement","src":"16563:65:89"},{"nodeType":"YulVariableDeclaration","src":"16641:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"16651:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16645:2:89","type":""}]},{"nodeType":"YulAssignment","src":"16668:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16679:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16684:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16675:3:89"},"nodeType":"YulFunctionCall","src":"16675:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16668:3:89"}]},{"nodeType":"YulAssignment","src":"16700:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16714:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16722:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16710:3:89"},"nodeType":"YulFunctionCall","src":"16710:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16700:6:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16511:1:89"},{"name":"value1","nodeType":"YulIdentifier","src":"16514:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16508:2:89"},"nodeType":"YulFunctionCall","src":"16508:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16522:18:89","statements":[{"nodeType":"YulAssignment","src":"16524:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16533:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"16536:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16529:3:89"},"nodeType":"YulFunctionCall","src":"16529:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"16524:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"16504:3:89","statements":[]},"src":"16500:235:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16755:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16766:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16751:3:89"},"nodeType":"YulFunctionCall","src":"16751:20:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16777:3:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"16782:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16773:3:89"},"nodeType":"YulFunctionCall","src":"16773:19:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16744:6:89"},"nodeType":"YulFunctionCall","src":"16744:49:89"},"nodeType":"YulExpressionStatement","src":"16744:49:89"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16809:3:89"},{"name":"value3","nodeType":"YulIdentifier","src":"16814:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16802:6:89"},"nodeType":"YulFunctionCall","src":"16802:19:89"},"nodeType":"YulExpressionStatement","src":"16802:19:89"},{"body":{"nodeType":"YulBlock","src":"16865:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16874:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16877:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16867:6:89"},"nodeType":"YulFunctionCall","src":"16867:12:89"},"nodeType":"YulExpressionStatement","src":"16867:12:89"}]},"condition":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16836:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16852:3:89","type":"","value":"251"},{"kind":"number","nodeType":"YulLiteral","src":"16857:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16848:3:89"},"nodeType":"YulFunctionCall","src":"16848:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16861:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16844:3:89"},"nodeType":"YulFunctionCall","src":"16844:19:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16833:2:89"},"nodeType":"YulFunctionCall","src":"16833:31:89"},"nodeType":"YulIf","src":"16830:51:89"},{"nodeType":"YulVariableDeclaration","src":"16890:28:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16908:1:89","type":"","value":"5"},{"name":"value3","nodeType":"YulIdentifier","src":"16911:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16904:3:89"},"nodeType":"YulFunctionCall","src":"16904:14:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16894:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16944:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"16949:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16940:3:89"},"nodeType":"YulFunctionCall","src":"16940:14:89"},{"name":"value2","nodeType":"YulIdentifier","src":"16956:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"16964:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"16927:12:89"},"nodeType":"YulFunctionCall","src":"16927:44:89"},"nodeType":"YulExpressionStatement","src":"16927:44:89"},{"nodeType":"YulVariableDeclaration","src":"16980:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16994:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"16999:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16990:3:89"},"nodeType":"YulFunctionCall","src":"16990:16:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"16984:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17026:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17037:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17022:3:89"},"nodeType":"YulFunctionCall","src":"17022:18:89"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17050:2:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"17054:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17046:3:89"},"nodeType":"YulFunctionCall","src":"17046:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17066:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17042:3:89"},"nodeType":"YulFunctionCall","src":"17042:29:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17015:6:89"},"nodeType":"YulFunctionCall","src":"17015:57:89"},"nodeType":"YulExpressionStatement","src":"17015:57:89"},{"nodeType":"YulAssignment","src":"17081:83:89","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17134:6:89"},{"name":"value5","nodeType":"YulIdentifier","src":"17142:6:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17154:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"17158:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17150:3:89"},"nodeType":"YulFunctionCall","src":"17150:13:89"}],"functionName":{"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"17089:44:89"},"nodeType":"YulFunctionCall","src":"17089:75:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17081:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17184:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17195:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17180:3:89"},"nodeType":"YulFunctionCall","src":"17180:18:89"},{"name":"value6","nodeType":"YulIdentifier","src":"17200:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17173:6:89"},"nodeType":"YulFunctionCall","src":"17173:34:89"},"nodeType":"YulExpressionStatement","src":"17173:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17227:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17238:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17223:3:89"},"nodeType":"YulFunctionCall","src":"17223:19:89"},{"name":"value7","nodeType":"YulIdentifier","src":"17244:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17216:6:89"},"nodeType":"YulFunctionCall","src":"17216:35:89"},"nodeType":"YulExpressionStatement","src":"17216:35:89"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16190:9:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"16201:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"16209:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16217:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16225:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16233:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16241:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16249:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16257:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16268:4:89","type":""}],"src":"15864:1393:89"},{"body":{"nodeType":"YulBlock","src":"17436:239:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17453:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17464:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17446:6:89"},"nodeType":"YulFunctionCall","src":"17446:21:89"},"nodeType":"YulExpressionStatement","src":"17446:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17487:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17498:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17483:3:89"},"nodeType":"YulFunctionCall","src":"17483:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17503:2:89","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17476:6:89"},"nodeType":"YulFunctionCall","src":"17476:30:89"},"nodeType":"YulExpressionStatement","src":"17476:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17526:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17537:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17522:3:89"},"nodeType":"YulFunctionCall","src":"17522:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206361","kind":"string","nodeType":"YulLiteral","src":"17542:34:89","type":"","value":"TimelockController: operation ca"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17515:6:89"},"nodeType":"YulFunctionCall","src":"17515:62:89"},"nodeType":"YulExpressionStatement","src":"17515:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17597:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17608:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17593:3:89"},"nodeType":"YulFunctionCall","src":"17593:18:89"},{"hexValue":"6e6e6f742062652063616e63656c6c6564","kind":"string","nodeType":"YulLiteral","src":"17613:19:89","type":"","value":"nnot be cancelled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17586:6:89"},"nodeType":"YulFunctionCall","src":"17586:47:89"},"nodeType":"YulExpressionStatement","src":"17586:47:89"},{"nodeType":"YulAssignment","src":"17642:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17654:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17665:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17650:3:89"},"nodeType":"YulFunctionCall","src":"17650:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17642:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17413:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17427:4:89","type":""}],"src":"17262:413:89"},{"body":{"nodeType":"YulBlock","src":"17854:237:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17871:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17882:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17864:6:89"},"nodeType":"YulFunctionCall","src":"17864:21:89"},"nodeType":"YulExpressionStatement","src":"17864:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17905:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17916:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17901:3:89"},"nodeType":"YulFunctionCall","src":"17901:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:89","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17894:6:89"},"nodeType":"YulFunctionCall","src":"17894:30:89"},"nodeType":"YulExpressionStatement","src":"17894:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17944:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17955:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17940:3:89"},"nodeType":"YulFunctionCall","src":"17940:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c","kind":"string","nodeType":"YulLiteral","src":"17960:34:89","type":"","value":"TimelockController: operation al"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17933:6:89"},"nodeType":"YulFunctionCall","src":"17933:62:89"},"nodeType":"YulExpressionStatement","src":"17933:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18015:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18026:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18011:3:89"},"nodeType":"YulFunctionCall","src":"18011:18:89"},{"hexValue":"7265616479207363686564756c6564","kind":"string","nodeType":"YulLiteral","src":"18031:17:89","type":"","value":"ready scheduled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18004:6:89"},"nodeType":"YulFunctionCall","src":"18004:45:89"},"nodeType":"YulExpressionStatement","src":"18004:45:89"},{"nodeType":"YulAssignment","src":"18058:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18070:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18081:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18066:3:89"},"nodeType":"YulFunctionCall","src":"18066:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18058:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17831:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17845:4:89","type":""}],"src":"17680:411:89"},{"body":{"nodeType":"YulBlock","src":"18270:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18287:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18298:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18280:6:89"},"nodeType":"YulFunctionCall","src":"18280:21:89"},"nodeType":"YulExpressionStatement","src":"18280:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18321:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18332:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18317:3:89"},"nodeType":"YulFunctionCall","src":"18317:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"18337:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18310:6:89"},"nodeType":"YulFunctionCall","src":"18310:30:89"},"nodeType":"YulExpressionStatement","src":"18310:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18360:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18371:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18356:3:89"},"nodeType":"YulFunctionCall","src":"18356:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"18376:34:89","type":"","value":"TimelockController: insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18349:6:89"},"nodeType":"YulFunctionCall","src":"18349:62:89"},"nodeType":"YulExpressionStatement","src":"18349:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18431:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18442:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18427:3:89"},"nodeType":"YulFunctionCall","src":"18427:18:89"},{"hexValue":"2064656c6179","kind":"string","nodeType":"YulLiteral","src":"18447:8:89","type":"","value":" delay"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18420:6:89"},"nodeType":"YulFunctionCall","src":"18420:36:89"},"nodeType":"YulExpressionStatement","src":"18420:36:89"},{"nodeType":"YulAssignment","src":"18465:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18477:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18488:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18473:3:89"},"nodeType":"YulFunctionCall","src":"18473:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18465:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18247:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18261:4:89","type":""}],"src":"18096:402:89"},{"body":{"nodeType":"YulBlock","src":"18551:77:89","statements":[{"nodeType":"YulAssignment","src":"18561:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18572:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"18575:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18568:3:89"},"nodeType":"YulFunctionCall","src":"18568:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18561:3:89"}]},{"body":{"nodeType":"YulBlock","src":"18600:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18602:16:89"},"nodeType":"YulFunctionCall","src":"18602:18:89"},"nodeType":"YulExpressionStatement","src":"18602:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18592:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"18595:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18589:2:89"},"nodeType":"YulFunctionCall","src":"18589:10:89"},"nodeType":"YulIf","src":"18586:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18534:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"18537:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18543:3:89","type":""}],"src":"18503:125:89"},{"body":{"nodeType":"YulBlock","src":"18699:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"18709:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"18718:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18713:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"18778:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18803:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"18808:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18799:3:89"},"nodeType":"YulFunctionCall","src":"18799:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18822:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"18827:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18818:3:89"},"nodeType":"YulFunctionCall","src":"18818:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18812:5:89"},"nodeType":"YulFunctionCall","src":"18812:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18792:6:89"},"nodeType":"YulFunctionCall","src":"18792:39:89"},"nodeType":"YulExpressionStatement","src":"18792:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18739:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"18742:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18736:2:89"},"nodeType":"YulFunctionCall","src":"18736:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18750:19:89","statements":[{"nodeType":"YulAssignment","src":"18752:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18761:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"18764:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18757:3:89"},"nodeType":"YulFunctionCall","src":"18757:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18752:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"18732:3:89","statements":[]},"src":"18728:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18861:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"18866:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18857:3:89"},"nodeType":"YulFunctionCall","src":"18857:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"18875:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18850:6:89"},"nodeType":"YulFunctionCall","src":"18850:27:89"},"nodeType":"YulExpressionStatement","src":"18850:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"18677:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"18682:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"18687:6:89","type":""}],"src":"18633:250:89"},{"body":{"nodeType":"YulBlock","src":"19277:423:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19294:3:89"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"19299:25:89","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19287:6:89"},"nodeType":"YulFunctionCall","src":"19287:38:89"},"nodeType":"YulExpressionStatement","src":"19287:38:89"},{"nodeType":"YulVariableDeclaration","src":"19334:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19354:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19348:5:89"},"nodeType":"YulFunctionCall","src":"19348:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19338:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19409:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19417:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19405:3:89"},"nodeType":"YulFunctionCall","src":"19405:17:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19428:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"19433:2:89","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19424:3:89"},"nodeType":"YulFunctionCall","src":"19424:12:89"},{"name":"length","nodeType":"YulIdentifier","src":"19438:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19370:34:89"},"nodeType":"YulFunctionCall","src":"19370:75:89"},"nodeType":"YulExpressionStatement","src":"19370:75:89"},{"nodeType":"YulVariableDeclaration","src":"19454:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19468:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"19473:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19464:3:89"},"nodeType":"YulFunctionCall","src":"19464:16:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19458:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19500:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"19504:2:89","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19496:3:89"},"nodeType":"YulFunctionCall","src":"19496:11:89"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"19509:19:89","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19489:6:89"},"nodeType":"YulFunctionCall","src":"19489:40:89"},"nodeType":"YulExpressionStatement","src":"19489:40:89"},{"nodeType":"YulVariableDeclaration","src":"19538:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19560:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19554:5:89"},"nodeType":"YulFunctionCall","src":"19554:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"19542:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19615:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19623:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19611:3:89"},"nodeType":"YulFunctionCall","src":"19611:17:89"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19634:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"19638:2:89","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:89"},"nodeType":"YulFunctionCall","src":"19630:11:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"19643:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19576:34:89"},"nodeType":"YulFunctionCall","src":"19576:76:89"},"nodeType":"YulExpressionStatement","src":"19576:76:89"},{"nodeType":"YulAssignment","src":"19661:33:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19676:2:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"19680:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19672:3:89"},"nodeType":"YulFunctionCall","src":"19672:17:89"},{"kind":"number","nodeType":"YulLiteral","src":"19691:2:89","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19668:3:89"},"nodeType":"YulFunctionCall","src":"19668:26:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19661:3:89"}]}]},"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":"19245:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19250:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19258:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19269:3:89","type":""}],"src":"18888:812:89"},{"body":{"nodeType":"YulBlock","src":"19826:275:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19843:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"19854:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19836:6:89"},"nodeType":"YulFunctionCall","src":"19836:21:89"},"nodeType":"YulExpressionStatement","src":"19836:21:89"},{"nodeType":"YulVariableDeclaration","src":"19866:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19886:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19880:5:89"},"nodeType":"YulFunctionCall","src":"19880:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19870:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19913:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"19924:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19909:3:89"},"nodeType":"YulFunctionCall","src":"19909:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"19929:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19902:6:89"},"nodeType":"YulFunctionCall","src":"19902:34:89"},"nodeType":"YulExpressionStatement","src":"19902:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19984:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19992:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19980:3:89"},"nodeType":"YulFunctionCall","src":"19980:15:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20001:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20012:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19997:3:89"},"nodeType":"YulFunctionCall","src":"19997:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"20017:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19945:34:89"},"nodeType":"YulFunctionCall","src":"19945:79:89"},"nodeType":"YulExpressionStatement","src":"19945:79:89"},{"nodeType":"YulAssignment","src":"20033:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20049:9:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20068:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"20076:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20064:3:89"},"nodeType":"YulFunctionCall","src":"20064:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20085:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20081:3:89"},"nodeType":"YulFunctionCall","src":"20081:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20060:3:89"},"nodeType":"YulFunctionCall","src":"20060:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20045:3:89"},"nodeType":"YulFunctionCall","src":"20045:45:89"},{"kind":"number","nodeType":"YulLiteral","src":"20092:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20041:3:89"},"nodeType":"YulFunctionCall","src":"20041:54:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20033:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19795:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19806:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19817:4:89","type":""}],"src":"19705:396:89"},{"body":{"nodeType":"YulBlock","src":"20280:232:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20297:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20308:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20290:6:89"},"nodeType":"YulFunctionCall","src":"20290:21:89"},"nodeType":"YulExpressionStatement","src":"20290:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20331:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20342:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20327:3:89"},"nodeType":"YulFunctionCall","src":"20327:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"20347:2:89","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20320:6:89"},"nodeType":"YulFunctionCall","src":"20320:30:89"},"nodeType":"YulExpressionStatement","src":"20320:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20370:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20381:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20366:3:89"},"nodeType":"YulFunctionCall","src":"20366:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973","kind":"string","nodeType":"YulLiteral","src":"20386:34:89","type":"","value":"TimelockController: operation is"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20359:6:89"},"nodeType":"YulFunctionCall","src":"20359:62:89"},"nodeType":"YulExpressionStatement","src":"20359:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20441:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20452:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20437:3:89"},"nodeType":"YulFunctionCall","src":"20437:18:89"},{"hexValue":"206e6f74207265616479","kind":"string","nodeType":"YulLiteral","src":"20457:12:89","type":"","value":" not ready"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20430:6:89"},"nodeType":"YulFunctionCall","src":"20430:40:89"},"nodeType":"YulExpressionStatement","src":"20430:40:89"},{"nodeType":"YulAssignment","src":"20479:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20491:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20502:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20487:3:89"},"nodeType":"YulFunctionCall","src":"20487:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20479:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20257:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20271:4:89","type":""}],"src":"20106:406:89"},{"body":{"nodeType":"YulBlock","src":"20691:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20708:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20719:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20701:6:89"},"nodeType":"YulFunctionCall","src":"20701:21:89"},"nodeType":"YulExpressionStatement","src":"20701:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20742:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20753:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20738:3:89"},"nodeType":"YulFunctionCall","src":"20738:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"20758:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20731:6:89"},"nodeType":"YulFunctionCall","src":"20731:30:89"},"nodeType":"YulExpressionStatement","src":"20731:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20781:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20792:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20777:3:89"},"nodeType":"YulFunctionCall","src":"20777:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206d697373696e672064657065","kind":"string","nodeType":"YulLiteral","src":"20797:34:89","type":"","value":"TimelockController: missing depe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20770:6:89"},"nodeType":"YulFunctionCall","src":"20770:62:89"},"nodeType":"YulExpressionStatement","src":"20770:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20852:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20863:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20848:3:89"},"nodeType":"YulFunctionCall","src":"20848:18:89"},{"hexValue":"6e64656e6379","kind":"string","nodeType":"YulLiteral","src":"20868:8:89","type":"","value":"ndency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20841:6:89"},"nodeType":"YulFunctionCall","src":"20841:36:89"},"nodeType":"YulExpressionStatement","src":"20841:36:89"},{"nodeType":"YulAssignment","src":"20886:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20898:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20909:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20894:3:89"},"nodeType":"YulFunctionCall","src":"20894:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20886:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20668:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20682:4:89","type":""}],"src":"20517:402:89"},{"body":{"nodeType":"YulBlock","src":"21071:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21094:3:89"},{"name":"value0","nodeType":"YulIdentifier","src":"21099:6:89"},{"name":"value1","nodeType":"YulIdentifier","src":"21107:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"21081:12:89"},"nodeType":"YulFunctionCall","src":"21081:33:89"},"nodeType":"YulExpressionStatement","src":"21081:33:89"},{"nodeType":"YulVariableDeclaration","src":"21123:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21137:3:89"},{"name":"value1","nodeType":"YulIdentifier","src":"21142:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21133:3:89"},"nodeType":"YulFunctionCall","src":"21133:16:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21127:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21165:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"21169:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21158:6:89"},"nodeType":"YulFunctionCall","src":"21158:13:89"},"nodeType":"YulExpressionStatement","src":"21158:13:89"},{"nodeType":"YulAssignment","src":"21180:9:89","value":{"name":"_1","nodeType":"YulIdentifier","src":"21187:2:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21180:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21039:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21044:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21052:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21063:3:89","type":""}],"src":"20924:271:89"},{"body":{"nodeType":"YulBlock","src":"21374:241:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21391:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21402:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21384:6:89"},"nodeType":"YulFunctionCall","src":"21384:21:89"},"nodeType":"YulExpressionStatement","src":"21384:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21425:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21436:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21421:3:89"},"nodeType":"YulFunctionCall","src":"21421:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"21441:2:89","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21414:6:89"},"nodeType":"YulFunctionCall","src":"21414:30:89"},"nodeType":"YulExpressionStatement","src":"21414:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21464:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21475:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21460:3:89"},"nodeType":"YulFunctionCall","src":"21460:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e672074","kind":"string","nodeType":"YulLiteral","src":"21480:34:89","type":"","value":"TimelockController: underlying t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21453:6:89"},"nodeType":"YulFunctionCall","src":"21453:62:89"},"nodeType":"YulExpressionStatement","src":"21453:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21535:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21546:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21531:3:89"},"nodeType":"YulFunctionCall","src":"21531:18:89"},{"hexValue":"72616e73616374696f6e207265766572746564","kind":"string","nodeType":"YulLiteral","src":"21551:21:89","type":"","value":"ransaction reverted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21524:6:89"},"nodeType":"YulFunctionCall","src":"21524:49:89"},"nodeType":"YulExpressionStatement","src":"21524:49:89"},{"nodeType":"YulAssignment","src":"21582:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21594:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21605:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21590:3:89"},"nodeType":"YulFunctionCall","src":"21590:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21582:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21351:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21365:4:89","type":""}],"src":"21200:415:89"},{"body":{"nodeType":"YulBlock","src":"21672:116:89","statements":[{"nodeType":"YulAssignment","src":"21682:20:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21697:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"21700:1:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21693:3:89"},"nodeType":"YulFunctionCall","src":"21693:9:89"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21682:7:89"}]},{"body":{"nodeType":"YulBlock","src":"21760:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21762:16:89"},"nodeType":"YulFunctionCall","src":"21762:18:89"},"nodeType":"YulExpressionStatement","src":"21762:18:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21731:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21724:6:89"},"nodeType":"YulFunctionCall","src":"21724:9:89"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21738:1:89"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"21745:7:89"},{"name":"x","nodeType":"YulIdentifier","src":"21754:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21741:3:89"},"nodeType":"YulFunctionCall","src":"21741:15:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21735:2:89"},"nodeType":"YulFunctionCall","src":"21735:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21721:2:89"},"nodeType":"YulFunctionCall","src":"21721:37:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21714:6:89"},"nodeType":"YulFunctionCall","src":"21714:45:89"},"nodeType":"YulIf","src":"21711:71:89"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21651:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"21654:1:89","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21660:7:89","type":""}],"src":"21620:168:89"},{"body":{"nodeType":"YulBlock","src":"21840:89:89","statements":[{"body":{"nodeType":"YulBlock","src":"21867:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21869:16:89"},"nodeType":"YulFunctionCall","src":"21869:18:89"},"nodeType":"YulExpressionStatement","src":"21869:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21860:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21853:6:89"},"nodeType":"YulFunctionCall","src":"21853:13:89"},"nodeType":"YulIf","src":"21850:39:89"},{"nodeType":"YulAssignment","src":"21898:25:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21909:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21920:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21916:3:89"},"nodeType":"YulFunctionCall","src":"21916:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21905:3:89"},"nodeType":"YulFunctionCall","src":"21905:18:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21898:3:89"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21822:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21832:3:89","type":""}],"src":"21793:136:89"},{"body":{"nodeType":"YulBlock","src":"22108:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22136:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22118:6:89"},"nodeType":"YulFunctionCall","src":"22118:21:89"},"nodeType":"YulExpressionStatement","src":"22118:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22159:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22170:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22155:3:89"},"nodeType":"YulFunctionCall","src":"22155:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"22175:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22148:6:89"},"nodeType":"YulFunctionCall","src":"22148:30:89"},"nodeType":"YulExpressionStatement","src":"22148:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22198:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22209:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22194:3:89"},"nodeType":"YulFunctionCall","src":"22194:18:89"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"22214:34:89","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22187:6:89"},"nodeType":"YulFunctionCall","src":"22187:62:89"},"nodeType":"YulExpressionStatement","src":"22187:62:89"},{"nodeType":"YulAssignment","src":"22258:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22270:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22281:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22266:3:89"},"nodeType":"YulFunctionCall","src":"22266:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22258:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22085:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22099:4:89","type":""}],"src":"21934:356:89"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_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_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_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, shl(224, 0xffffffff)))) { 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_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\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, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_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        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_array_address_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_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(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_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n        value8 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(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_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_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        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let _3 := shl(5, _1)\n        let dst := allocate_memory(add(_3, _2))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, _3), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\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_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { 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        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TimelockController: caller must \")\n        mstore(add(headStart, 96), \"be timelock\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_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_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"TimelockController: length misma\")\n        mstore(add(headStart, 96), \"tch\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\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 access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function 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 abi_encode_array_bytes_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            let value_2 := add(value_1, _1)\n            if gt(length_1, 0xffffffffffffffff) { revert(0, 0) }\n            if sgt(value_2, sub(calldatasize(), length_1)) { revert(0, 0) }\n            tail := abi_encode_bytes_calldata(value_2, length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 192)\n        let srcPtr := value0\n        let i := 0\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        let _2 := add(pos, length)\n        mstore(add(headStart, 64), add(sub(_2, headStart), 0x20))\n        tail := abi_encode_array_bytes_calldata_dyn_calldata(value4, value5, add(_2, 0x20))\n        mstore(add(headStart, 96), value6)\n        mstore(add(headStart, 128), value7)\n    }\n    function abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"TimelockController: operation ca\")\n        mstore(add(headStart, 96), \"nnot be cancelled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"TimelockController: operation al\")\n        mstore(add(headStart, 96), \"ready scheduled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: insufficient\")\n        mstore(add(headStart, 96), \" delay\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function copy_memory_to_memory_with_cleanup(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        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_with_cleanup(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_with_cleanup(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_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"TimelockController: operation is\")\n        mstore(add(headStart, 96), \" not ready\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: missing depe\")\n        mstore(add(headStart, 96), \"ndency\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"TimelockController: underlying t\")\n        mstore(add(headStart, 96), \"ransaction reverted\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046113c0565b6105f6565b005b3480156101f557600080fd5b50610209610204366004611434565b61068b565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a236600461145e565b6106b6565b3480156102b357600080fd5b506102096102c23660046114c9565b61076b565b3480156102d357600080fd5b506102f26102e2366004611597565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b506102526103263660046114c9565b60009081526020819052604090206001015490565b34801561034757600080fd5b506102096103563660046114c9565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e76103873660046115fe565b610791565b34801561039857600080fd5b506102096103a73660046114c9565b6107bb565b3480156103b857600080fd5b506101e76103c73660046115fe565b6107d4565b3480156103d857600080fd5b506102096103e73660046114c9565b610857565b3480156103f857600080fd5b506101e76104073660046114c9565b61086d565b34801561041857600080fd5b5061025261042736600461145e565b610911565b34801561043857600080fd5b506101e761044736600461166e565b610950565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b3660046115fe565b610aa2565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b5061025261050436600461171f565b610acb565b34801561051557600080fd5b506102f2610524366004611846565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e76105503660046114c9565b610b10565b34801561056157600080fd5b506102526105703660046114c9565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d3660046115fe565b610be5565b6101e76105b036600461171f565b610c0a565b3480156105c157600080fd5b506102f26105d03660046118ef565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610d94565b6000610630898989898989610911565b905061063c8184610da1565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106789695949392919061197c565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106b057506106b082610e90565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636106e2816000610aa2565b6106f0576106f08133610ec5565b6000610700888888888888610911565b905061070c8185610f1e565b61071888888888610fba565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161075094939291906119b9565b60405180910390a36107618161108d565b5050505050505050565b60008181526001602052604081205460018111801561078a5750428111155b9392505050565b6000828152602081905260409020600101546107ac81610d94565b6107b683836110c6565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146108495760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610853828261114a565b5050565b60008181526001602081905260408220546107cd565b3330146108d05760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610840565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161092e9695949392919061197c565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161097a81610d94565b8887146109995760405162461bcd60e51b8152600401610840906119eb565b8885146109b85760405162461bcd60e51b8152600401610840906119eb565b60006109ca8b8b8b8b8b8b8b8b610acb565b90506109d68184610da1565b60005b8a811015610a945780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a1657610a16611a2e565b9050602002016020810190610a2b9190611a44565b8d8d86818110610a3d57610a3d611a2e565b905060200201358c8c87818110610a5657610a56611a2e565b9050602002810190610a689190611a5f565b8c8b604051610a7c9695949392919061197c565b60405180910390a3610a8d81611abb565b90506109d9565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610aec989796959493929190611b65565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b3a81610d94565b610b4382610857565b610ba95760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610840565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c0081610d94565b6107b6838361114a565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610c36816000610aa2565b610c4457610c448133610ec5565b878614610c635760405162461bcd60e51b8152600401610840906119eb565b878414610c825760405162461bcd60e51b8152600401610840906119eb565b6000610c948a8a8a8a8a8a8a8a610acb565b9050610ca08185610f1e565b60005b89811015610d7e5760008b8b83818110610cbf57610cbf611a2e565b9050602002016020810190610cd49190611a44565b905060008a8a84818110610cea57610cea611a2e565b9050602002013590503660008a8a86818110610d0857610d08611a2e565b9050602002810190610d1a9190611a5f565b91509150610d2a84848484610fba565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d6194939291906119b9565b60405180910390a35050505080610d7790611abb565b9050610ca3565b50610d888161108d565b50505050505050505050565b610d9e8133610ec5565b50565b610daa826107bb565b15610e0f5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610840565b600254811015610e705760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610840565b610e7a8142611c06565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106b057506301ffc9a760e01b6001600160e01b03198316146106b0565b610ecf8282610aa2565b61085357610edc816111af565b610ee78360206111c1565b604051602001610ef8929190611c3d565b60408051601f198184030181529082905262461bcd60e51b825261084091600401611cb2565b610f278261076b565b610f435760405162461bcd60e51b815260040161084090611ce5565b801580610f5f5750600081815260016020819052604090912054145b6108535760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610840565b6000846001600160a01b0316848484604051610fd7929190611d2f565b60006040518083038185875af1925050503d8060008114611014576040519150601f19603f3d011682016040523d82523d6000602084013e611019565b606091505b50509050806110865760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610840565b5050505050565b6110968161076b565b6110b25760405162461bcd60e51b815260040161084090611ce5565b600090815260016020819052604090912055565b6110d08282610aa2565b610853576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111548282610aa2565b15610853576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106b06001600160a01b03831660145b606060006111d0836002611d3f565b6111db906002611c06565b6001600160401b038111156111f2576111f26114e2565b6040519080825280601f01601f19166020018201604052801561121c576020820181803683370190505b509050600360fc1b8160008151811061123757611237611a2e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061126657611266611a2e565b60200101906001600160f81b031916908160001a905350600061128a846002611d3f565b611295906001611c06565b90505b600181111561130d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112c9576112c9611a2e565b1a60f81b8282815181106112df576112df611a2e565b60200101906001600160f81b031916908160001a90535060049490941c9361130681611d56565b9050611298565b50831561078a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610840565b80356001600160a01b038116811461137357600080fd5b919050565b60008083601f84011261138a57600080fd5b5081356001600160401b038111156113a157600080fd5b6020830191508360208285010111156113b957600080fd5b9250929050565b600080600080600080600060c0888a0312156113db57600080fd5b6113e48861135c565b96506020880135955060408801356001600160401b0381111561140657600080fd5b6114128a828b01611378565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561144657600080fd5b81356001600160e01b03198116811461078a57600080fd5b60008060008060008060a0878903121561147757600080fd5b6114808761135c565b95506020870135945060408701356001600160401b038111156114a257600080fd5b6114ae89828a01611378565b979a9699509760608101359660809091013595509350505050565b6000602082840312156114db57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611520576115206114e2565b604052919050565b600082601f83011261153957600080fd5b81356001600160401b03811115611552576115526114e2565b611565601f8201601f19166020016114f8565b81815284602083860101111561157a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156115ad57600080fd5b6115b68561135c565b93506115c46020860161135c565b92506040850135915060608501356001600160401b038111156115e657600080fd5b6115f287828801611528565b91505092959194509250565b6000806040838503121561161157600080fd5b823591506116216020840161135c565b90509250929050565b60008083601f84011261163c57600080fd5b5081356001600160401b0381111561165357600080fd5b6020830191508360208260051b85010111156113b957600080fd5b600080600080600080600080600060c08a8c03121561168c57600080fd5b89356001600160401b03808211156116a357600080fd5b6116af8d838e0161162a565b909b50995060208c01359150808211156116c857600080fd5b6116d48d838e0161162a565b909950975060408c01359150808211156116ed57600080fd5b506116fa8c828d0161162a565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561173b57600080fd5b88356001600160401b038082111561175257600080fd5b61175e8c838d0161162a565b909a50985060208b013591508082111561177757600080fd5b6117838c838d0161162a565b909850965060408b013591508082111561179c57600080fd5b506117a98b828c0161162a565b999c989b509699959896976060870135966080013595509350505050565b600082601f8301126117d857600080fd5b813560206001600160401b038211156117f3576117f36114e2565b8160051b6118028282016114f8565b928352848101820192828101908785111561181c57600080fd5b83870192505b8483101561183b57823582529183019190830190611822565b979650505050505050565b600080600080600060a0868803121561185e57600080fd5b6118678661135c565b94506118756020870161135c565b935060408601356001600160401b038082111561189157600080fd5b61189d89838a016117c7565b945060608801359150808211156118b357600080fd5b6118bf89838a016117c7565b935060808801359150808211156118d557600080fd5b506118e288828901611528565b9150509295509295909350565b600080600080600060a0868803121561190757600080fd5b6119108661135c565b945061191e6020870161135c565b9350604086013592506060860135915060808601356001600160401b0381111561194757600080fd5b6118e288828901611528565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006119a460a083018688611953565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006119e1606083018486611953565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5657600080fd5b61078a8261135c565b6000808335601e19843603018112611a7657600080fd5b8301803591506001600160401b03821115611a9057600080fd5b6020019150368190038213156113b957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611acd57611acd611aa5565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611b585782840389528135601e19883603018112611b0f57600080fd5b870185810190356001600160401b03811115611b2a57600080fd5b803603821315611b3957600080fd5b611b44868284611953565b9a87019a9550505090840190600101611aee565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611ba6576001600160a01b03611b918461135c565b16825260209283019290910190600101611b78565b5083810360208501528881526001600160fb1b03891115611bc657600080fd5b8860051b9150818a60208301370182810360209081016040850152611bee9082018789611ad4565b60608401959095525050608001529695505050505050565b808201808211156106b0576106b0611aa5565b60005b83811015611c34578181015183820152602001611c1c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c75816017850160208801611c19565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ca6816028840160208801611c19565b01602801949350505050565b6020815260008251806020840152611cd1816040850160208701611c19565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b80820281158282048414176106b0576106b0611aa5565b600081611d6557611d65611aa5565b50600019019056fea2646970667358221220d6f2e3b2789c6919b75b3c521caf7e720d752fefaabd75a11cb6960e6b12f19264736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x582 JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x535 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x31D50750 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3CF6FC GT PUSH2 0x195 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13C0 JUMP JUMPDEST PUSH2 0x5F6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x1434 JUMP JUMPDEST PUSH2 0x68B 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 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1597 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x387 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x791 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x86D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x166E JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x515 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x524 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x550 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0xB10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xC0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x252 JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x620 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x630 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x63C DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH2 0x6B0 DUP3 PUSH2 0xE90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0x6E2 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x6F0 JUMPI PUSH2 0x6F0 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x700 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x70C DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x718 DUP9 DUP9 DUP9 DUP9 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x750 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x761 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x78A JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7AC DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x10C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x853 DUP3 DUP3 PUSH2 0x114A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x7CD JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x92E SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x97A DUP2 PUSH2 0xD94 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x9B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D6 DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA94 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA2B SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA3D JUMPI PUSH2 0xA3D PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA56 JUMPI PUSH2 0xA56 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA68 SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8D DUP2 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D9 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAEC SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB3A DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0xB43 DUP3 PUSH2 0x857 JUMP JUMPDEST PUSH2 0xBA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC00 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x114A JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0xC36 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0xC44 JUMPI PUSH2 0xC44 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA0 DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xCEA JUMPI PUSH2 0xCEA PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD08 JUMPI PUSH2 0xD08 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD1A SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD2A DUP5 DUP5 DUP5 DUP5 PUSH2 0xFBA JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD61 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD77 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA3 JUMP JUMPDEST POP PUSH2 0xD88 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9E DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x7BB JUMP JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH2 0xE7A DUP2 TIMESTAMP PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0xECF DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 JUMPI PUSH2 0xEDC DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0xEE7 DUP4 PUSH1 0x20 PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEF8 SWAP3 SWAP2 SWAP1 PUSH2 0x1C3D 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 0x840 SWAP2 PUSH1 0x4 ADD PUSH2 0x1CB2 JUMP JUMPDEST PUSH2 0xF27 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xF43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF5F JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x853 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1014 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 0x1019 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1096 DUP2 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x10B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x10D0 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 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 0x1106 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1154 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST ISZERO PUSH2 0x853 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x11D0 DUP4 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x11DB SWAP1 PUSH1 0x2 PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11F2 JUMPI PUSH2 0x11F2 PUSH2 0x14E2 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 0x121C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1237 JUMPI PUSH2 0x1237 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1266 JUMPI PUSH2 0x1266 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x128A DUP5 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x1295 SWAP1 PUSH1 0x1 PUSH2 0x1C06 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x130D JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x1A2E JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12DF JUMPI PUSH2 0x12DF PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1306 DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP PUSH2 0x1298 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x78A 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 0x840 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x138A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x13DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E4 DUP9 PUSH2 0x135C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1412 DUP11 DUP3 DUP12 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP8 PUSH2 0x135C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14AE DUP10 DUP3 DUP11 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x14E2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1552 JUMPI PUSH2 0x1552 PUSH2 0x14E2 JUMP JUMPDEST PUSH2 0x1565 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x14F8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x157A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B6 DUP6 PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH2 0x15C4 PUSH1 0x20 DUP7 ADD PUSH2 0x135C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F2 DUP8 DUP3 DUP9 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1621 PUSH1 0x20 DUP5 ADD PUSH2 0x135C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1653 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 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x168C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AF DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16D4 DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16FA DUP13 DUP3 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x173B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x175E DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1783 DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A9 DUP12 DUP3 DUP13 ADD PUSH2 0x162A JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x17F3 PUSH2 0x14E2 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x1802 DUP3 DUP3 ADD PUSH2 0x14F8 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x181C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x183B JUMPI DUP3 CALLDATALOAD DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x1822 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x185E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1867 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x1875 PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x189D DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18BF DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1910 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x191E PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19A4 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19E1 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1953 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78A DUP3 PUSH2 0x135C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 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 PUSH2 0x1ACD JUMPI PUSH2 0x1ACD PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1B58 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 ADD DUP6 DUP2 ADD SWAP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B44 DUP7 DUP3 DUP5 PUSH2 0x1953 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AEE JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1B91 DUP5 PUSH2 0x135C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B78 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD DUP3 DUP2 SUB PUSH1 0x20 SWAP1 DUP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1BEE SWAP1 DUP3 ADD DUP8 DUP10 PUSH2 0x1AD4 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C34 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C1C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C75 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1CA6 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 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 0x1CD1 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1D65 JUMPI PUSH2 0x1D65 PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD6 CALLCODE 0xE3 0xB2 PUSH25 0x9C6919B75B3C521CAF7E720D752FEFAABD75A11CB6960E6B12 CALL SWAP3 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1030:13261:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7618:402;;;;;;;;;;-1:-1:-1;7618:402:22;;;;;:::i;:::-;;:::i;:::-;;4770:228;;;;;;;;;;-1:-1:-1;4770:228:22;;;;;:::i;:::-;;:::i;:::-;;;1763:14:89;;1756:22;1738:41;;1726:2;1711:18;4770:228:22;;;;;;;;1272:66;;;;;;;;;;;;1312:26;1272:66;;;;;1936:25:89;;;1924:2;1909:18;1272:66:22;1790:177:89;1116:78:22;;;;;;;;;;;;1162:32;1116:78;;10216:459;;;;;;:::i;:::-;;:::i;5580:208::-;;;;;;;;;;-1:-1:-1;5580:208:22;;;;;:::i;:::-;;:::i;13466:200::-;;;;;;;;;;-1:-1:-1;13466:200:22;;;;;:::i;:::-;-1:-1:-1;;;13466:200:22;;;;;;;;;;-1:-1:-1;;;;;;4502:33:89;;;4484:52;;4472:2;4457:18;13466:200:22;4340:202:89;4378:129:17;;;;;;;;;;-1:-1:-1;4378:129:17;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;5867:136:22;;;;;;;;;;-1:-1:-1;5867:136:22;;;;;:::i;:::-;5933:9;6249:15;;;1470:1;6249:15;;;;;;;;;5961:35;;5867:136;4803:145:17;;;;;;;;;;-1:-1:-1;4803:145:17;;;;;:::i;:::-;;:::i;5154:123:22:-;;;;;;;;;;-1:-1:-1;5154:123:22;;;;;:::i;:::-;;:::i;5912:214:17:-;;;;;;;;;;-1:-1:-1;5912:214:17;;;;;:::i;:::-;;:::i;5359:141:22:-;;;;;;;;;;-1:-1:-1;5359:141:22;;;;;:::i;:::-;;:::i;13156:236::-;;;;;;;;;;-1:-1:-1;13156:236:22;;;;;:::i;:::-;;:::i;6673:284::-;;;;;;;;;;-1:-1:-1;6673:284:22;;;;;:::i;:::-;;:::i;8274:713::-;;;;;;;;;;-1:-1:-1;8274:713:22;;;;;:::i;:::-;;:::i;1200:66::-;;;;;;;;;;;;1240:26;1200:66;;2895:145:17;;;;;;;;;;-1:-1:-1;2895:145:17;;;;;:::i;:::-;;:::i;2027:49::-;;;;;;;;;;-1:-1:-1;2027:49:17;2072:4;2027:49;;1344:68:22;;;;;;;;;;;;1385:27;1344:68;;7073:325;;;;;;;;;;-1:-1:-1;7073:325:22;;;;;:::i;:::-;;:::i;14042:247::-;;;;;;;;;;-1:-1:-1;14042:247:22;;;;;:::i;:::-;-1:-1:-1;;;14042:247:22;;;;;;;;9512:230;;;;;;;;;;-1:-1:-1;9512:230:22;;;;;:::i;:::-;;:::i;6150:121::-;;;;;;;;;;-1:-1:-1;6150:121:22;;;;;:::i;:::-;6213:17;6249:15;;;:11;:15;;;;;;;6150:121;5228:147:17;;;;;;;;;;-1:-1:-1;5228:147:17;;;;;:::i;:::-;;:::i;10935:883:22:-;;;;;;:::i;:::-;;:::i;13742:219::-;;;;;;;;;;-1:-1:-1;13742:219:22;;;;;:::i;:::-;-1:-1:-1;;;13742:219:22;;;;;;;;6457:103;;;;;;;;;;-1:-1:-1;6544:9:22;;6457:103;;7618:402;1240:26;2505:16:17;2516:4;2505:10;:16::i;:::-;7841:10:22::1;7854:53;7868:6;7876:5;7883:4;;7889:11;7902:4;7854:13;:53::i;:::-;7841:66;;7917:20;7927:2;7931:5;7917:9;:20::i;:::-;7970:1;7966:2;7952:61;7973:6;7981:5;7988:4;;7994:11;8007:5;7952:61;;;;;;;;;;;:::i;:::-;;;;;;;;7831:189;7618:402:::0;;;;;;;;:::o;4770:228::-;4879:4;-1:-1:-1;;;;;;4902:49:22;;-1:-1:-1;;;4902:49:22;;:89;;;4955:36;4979:11;4955:23;:36::i;:::-;4895:96;4770:228;-1:-1:-1;;4770:228:22:o;10216:459::-;1312:26;4473:25;4481:4;4495:1;4473:7;:25::i;:::-;4468:87;;4514:30;4525:4;719:10:47;4514::22;:30::i;:::-;10436:10:::1;10449:56;10463:6;10471:5;10478:7;;10487:11;10500:4;10449:13;:56::i;:::-;10436:69;;10516:28;10528:2;10532:11;10516;:28::i;:::-;10554:32;10563:6;10571:5;10578:7;;10554:8;:32::i;:::-;10618:1;10614:2;10601:43;10621:6;10629:5;10636:7;;10601:43;;;;;;;;;:::i;:::-;;;;;;;;10654:14;10665:2;10654:10;:14::i;:::-;10426:249;10216:459:::0;;;;;;;:::o;5580:208::-;5647:10;6249:15;;;:11;:15;;;;;;1470:1;5722:9;:27;:59;;;;;5766:15;5753:9;:28;;5722:59;5715:66;5580:208;-1:-1:-1;;;5580:208:22:o;4803:145:17:-;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;5154:123:22:-;5216:15;6249;;;:11;:15;;;;;;5216;;5250:16;:20;;5154:123;-1:-1:-1;;5154:123:22:o;5912:214:17:-;-1:-1:-1;;;;;6007:23:17;;719:10:47;6007:23:17;5999:83;;;;-1:-1:-1;;;5999:83:17;;11826:2:89;5999:83:17;;;11808:21:89;11865:2;11845:18;;;11838:30;11904:34;11884:18;;;11877:62;-1:-1:-1;;;11955:18:89;;;11948:45;12010:19;;5999:83:17;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;5359:141:22:-;5428:12;6249:15;;;1470:1;6249:15;;;;;;;;5459:16;6150:121;13156:236;13230:10;13252:4;13230:27;13222:83;;;;-1:-1:-1;;;13222:83:22;;12242:2:89;13222:83:22;;;12224:21:89;12281:2;12261:18;;;12254:30;12320:34;12300:18;;;12293:62;-1:-1:-1;;;12371:18:89;;;12364:41;12422:19;;13222:83:22;12040:407:89;13222:83:22;13335:9;;13320:35;;;12626:25:89;;;12682:2;12667:18;;12660:34;;;13320:35:22;;12599:18:89;13320:35:22;;;;;;;13365:9;:20;13156:236::o;6673:284::-;6858:12;6910:6;6918:5;6925:4;;6931:11;6944:4;6899:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6889:61;;;;;;6882:68;;6673:284;;;;;;;;:::o;8274:713::-;1240:26;2505:16:17;2516:4;2505:10;:16::i;:::-;8540:31:22;;::::1;8532:79;;;;-1:-1:-1::0;;;8532:79:22::1;;;;;;;:::i;:::-;8629:33:::0;;::::1;8621:81;;;;-1:-1:-1::0;;;8621:81:22::1;;;;;;;:::i;:::-;8713:10;8726:64;8745:7;;8754:6;;8762:8;;8772:11;8785:4;8726:18;:64::i;:::-;8713:77;;8800:20;8810:2;8814:5;8800:9;:20::i;:::-;8835:9;8830:151;8850:18:::0;;::::1;8830:151;;;8912:1;8908:2;8894:76;8915:7;;8923:1;8915:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8927:6;;8934:1;8927:9;;;;;;;:::i;:::-;;;;;;;8938:8;;8947:1;8938:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8951;8964:5;8894:76;;;;;;;;;;;:::i;:::-;;;;;;;;8870:3;::::0;::::1;:::i;:::-;;;8830:151;;;;8522:465;8274:713:::0;;;;;;;;;;:::o;2895:145:17:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:17;;;;;;;;;;;;;;;2895:145::o;7073:325:22:-;7293:12;7345:7;;7354:6;;7362:8;;7372:11;7385:4;7334:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7324:67;;;;;;7317:74;;7073:325;;;;;;;;;;:::o;9512:230::-;1385:27;2505:16:17;2516:4;2505:10;:16::i;:::-;9598:22:22::1;9617:2;9598:18;:22::i;:::-;9590:84;;;::::0;-1:-1:-1;;;9590:84:22;;17464:2:89;9590:84:22::1;::::0;::::1;17446:21:89::0;17503:2;17483:18;;;17476:30;17542:34;17522:18;;;17515:62;-1:-1:-1;;;17593:18:89;;;17586:47;17650:19;;9590:84:22::1;17262:413:89::0;9590:84:22::1;9691:15;::::0;;;:11:::1;:15;::::0;;;;;9684:22;;;9722:13;9703:2;;9722:13:::1;::::0;::::1;9512:230:::0;;:::o;5228:147:17:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;10935:883:22:-:0;1312:26;4473:25;4481:4;4495:1;4473:7;:25::i;:::-;4468:87;;4514:30;4525:4;719:10:47;4514::22;:30::i;:::-;11195:31;;::::1;11187:79;;;;-1:-1:-1::0;;;11187:79:22::1;;;;;;;:::i;:::-;11284:33:::0;;::::1;11276:81;;;;-1:-1:-1::0;;;11276:81:22::1;;;;;;;:::i;:::-;11368:10;11381:64;11400:7;;11409:6;;11417:8;;11427:11;11440:4;11381:18;:64::i;:::-;11368:77;;11456:28;11468:2;11472:11;11456;:28::i;:::-;11499:9;11494:294;11514:18:::0;;::::1;11494:294;;;11553:14;11570:7;;11578:1;11570:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11553:27;;11594:13;11610:6;;11617:1;11610:9;;;;;;;:::i;:::-;;;;;;;11594:25;;11633:22;;11658:8;;11667:1;11658:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;11633:36;;;;11683:32;11692:6;11700:5;11707:7;;11683:8;:32::i;:::-;11751:1;11747:2;11734:43;11754:6;11762:5;11769:7;;11734:43;;;;;;;;;:::i;:::-;;;;;;;;11539:249;;;;11534:3;;;;:::i;:::-;;;11494:294;;;;11797:14;11808:2;11797:10;:14::i;:::-;11177:641;10935:883:::0;;;;;;;;;:::o;3334:103:17:-;3400:30;3411:4;719:10:47;4514::22;:30::i;3400::17:-;3334:103;:::o;9089:281:22:-;9162:15;9174:2;9162:11;:15::i;:::-;9161:16;9153:76;;;;-1:-1:-1;;;9153:76:22;;17882:2:89;9153:76:22;;;17864:21:89;17921:2;17901:18;;;17894:30;17960:34;17940:18;;;17933:62;-1:-1:-1;;;18011:18:89;;;18004:45;18066:19;;9153:76:22;17680:411:89;9153:76:22;6544:9;;9247:5;:22;;9239:73;;;;-1:-1:-1;;;9239:73:22;;18298:2:89;9239:73:22;;;18280:21:89;18337:2;18317:18;;;18310:30;18376:34;18356:18;;;18349:62;-1:-1:-1;;;18427:18:89;;;18420:36;18473:19;;9239:73:22;18096:402:89;9239:73:22;9340:23;9358:5;9340:15;:23;:::i;:::-;9322:15;;;;:11;:15;;;;;;:41;;;;-1:-1:-1;9089:281:22:o;2606:202:17:-;2691:4;-1:-1:-1;;;;;;2714:47:17;;-1:-1:-1;;;2714:47:17;;:87;;-1:-1:-1;;;;;;;;;;937:40:53;;;2765:36:17;829:155:53;3718:479:17;3806:22;3814:4;3820:7;3806;:22::i;:::-;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:17;;;;;;;;;;-1:-1:-1;;;3844:336:17;;;;;;;:::i;12229:277:22:-;12314:20;12331:2;12314:16;:20::i;:::-;12306:75;;;;-1:-1:-1;;;12306:75:22;;;;;;;:::i;:::-;12399:25;;;:57;;-1:-1:-1;5933:9:22;6249:15;;;1470:1;6249:15;;;;;;;;;5961:35;12428:28;12391:108;;;;-1:-1:-1;;;12391:108:22;;20719:2:89;12391:108:22;;;20701:21:89;20758:2;20738:18;;;20731:30;20797:34;20777:18;;;20770:62;-1:-1:-1;;;20848:18:89;;;20841:36;20894:19;;12391:108:22;20517:402:89;11881:265:22;12009:12;12027:6;-1:-1:-1;;;;;12027:11:22;12046:5;12053:4;;12027:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12008:50;;;12076:7;12068:71;;;;-1:-1:-1;;;12068:71:22;;21402:2:89;12068:71:22;;;21384:21:89;21441:2;21421:18;;;21414:30;21480:34;21460:18;;;21453:62;-1:-1:-1;;;21531:18:89;;;21524:49;21590:19;;12068:71:22;21200:415:89;12068:71:22;11998:148;11881:265;;;;:::o;12588:175::-;12646:20;12663:2;12646:16;:20::i;:::-;12638:75;;;;-1:-1:-1;;;12638:75:22;;;;;;;:::i;:::-;12723:15;;;;1470:1;12723:15;;;;;;;;:33;12588:175::o;7461:233:17:-;7544:22;7552:4;7558:7;7544;:22::i;:::-;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:17;;;;;;;;;:36;;-1:-1:-1;;7582:36:17;7614:4;7582:36;;;7664:12;719:10:47;;640:96;7664:12:17;-1:-1:-1;;;;;7637:40:17;7655:7;-1:-1:-1;;;;;7637:40:17;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;7948:22;7956:4;7962:7;7948;:22::i;:::-;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:17;;;;;;;;;;:37;;-1:-1:-1;;7986:37:17;;;8042:40;719:10:47;;7986:12:17;;8042:40;;8018:5;8042:40;7865:234;;:::o;2102:149:49:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:49;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;-1:-1:-1;;;;;1635:25:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:49;;1613:47;;-1:-1:-1;;;1670:6:49;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1670:15:49;;;;;;;;;-1:-1:-1;;;1695:6:49;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1695:15:49;;;;;;;;-1:-1:-1;1725:9:49;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;-1:-1:-1;;;1800:5:49;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1779:33:49;;;;;;;;-1:-1:-1;1836:1:49;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:49;;1857:55;;;;-1:-1:-1;;;1857:55:49;;22136:2:89;1857:55:49;;;22118:21:89;;;22155:18;;;22148:30;22214:34;22194:18;;;22187:62;22266:18;;1857:55:49;21934:356:89;14:173;82:20;;-1:-1:-1;;;;;131:31:89;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:347::-;243:8;253:6;307:3;300:4;292:6;288:17;284:27;274:55;;325:1;322;315:12;274:55;-1:-1:-1;348:20:89;;-1:-1:-1;;;;;380:30:89;;377:50;;;423:1;420;413:12;377:50;460:4;452:6;448:17;436:29;;512:3;505:4;496:6;488;484:19;480:30;477:39;474:59;;;529:1;526;519:12;474:59;192:347;;;;;:::o;544:758::-;659:6;667;675;683;691;699;707;760:3;748:9;739:7;735:23;731:33;728:53;;;777:1;774;767:12;728:53;800:29;819:9;800:29;:::i;:::-;790:39;;876:2;865:9;861:18;848:32;838:42;;931:2;920:9;916:18;903:32;-1:-1:-1;;;;;950:6:89;947:30;944:50;;;990:1;987;980:12;944:50;1029:58;1079:7;1070:6;1059:9;1055:22;1029:58;:::i;:::-;544:758;;;;-1:-1:-1;1106:8:89;1188:2;1173:18;;1160:32;;1239:3;1224:19;;1211:33;;-1:-1:-1;1291:3:89;1276:19;;;1263:33;;-1:-1:-1;544:758:89;-1:-1:-1;;;;544:758:89:o;1307:286::-;1365:6;1418:2;1406:9;1397:7;1393:23;1389:32;1386:52;;;1434:1;1431;1424:12;1386:52;1460:23;;-1:-1:-1;;;;;;1512:32:89;;1502:43;;1492:71;;1559:1;1556;1549:12;1972:689;2078:6;2086;2094;2102;2110;2118;2171:3;2159:9;2150:7;2146:23;2142:33;2139:53;;;2188:1;2185;2178:12;2139:53;2211:29;2230:9;2211:29;:::i;:::-;2201:39;;2287:2;2276:9;2272:18;2259:32;2249:42;;2342:2;2331:9;2327:18;2314:32;-1:-1:-1;;;;;2361:6:89;2358:30;2355:50;;;2401:1;2398;2391:12;2355:50;2440:58;2490:7;2481:6;2470:9;2466:22;2440:58;:::i;:::-;1972:689;;;;-1:-1:-1;2517:8:89;2599:2;2584:18;;2571:32;;2650:3;2635:19;;;2622:33;;-1:-1:-1;1972:689:89;-1:-1:-1;;;;1972:689:89:o;2666:180::-;2725:6;2778:2;2766:9;2757:7;2753:23;2749:32;2746:52;;;2794:1;2791;2784:12;2746:52;-1:-1:-1;2817:23:89;;2666:180;-1:-1:-1;2666:180:89:o;2851:127::-;2912:10;2907:3;2903:20;2900:1;2893:31;2943:4;2940:1;2933:15;2967:4;2964:1;2957:15;2983:275;3054:2;3048:9;3119:2;3100:13;;-1:-1:-1;;3096:27:89;3084:40;;-1:-1:-1;;;;;3139:34:89;;3175:22;;;3136:62;3133:88;;;3201:18;;:::i;:::-;3237:2;3230:22;2983:275;;-1:-1:-1;2983:275:89:o;3263:530::-;3305:5;3358:3;3351:4;3343:6;3339:17;3335:27;3325:55;;3376:1;3373;3366:12;3325:55;3412:6;3399:20;-1:-1:-1;;;;;3434:2:89;3431:26;3428:52;;;3460:18;;:::i;:::-;3504:55;3547:2;3528:13;;-1:-1:-1;;3524:27:89;3553:4;3520:38;3504:55;:::i;:::-;3584:2;3575:7;3568:19;3630:3;3623:4;3618:2;3610:6;3606:15;3602:26;3599:35;3596:55;;;3647:1;3644;3637:12;3596:55;3712:2;3705:4;3697:6;3693:17;3686:4;3677:7;3673:18;3660:55;3760:1;3735:16;;;3753:4;3731:27;3724:38;;;;3739:7;3263:530;-1:-1:-1;;;3263:530:89:o;3798:537::-;3893:6;3901;3909;3917;3970:3;3958:9;3949:7;3945:23;3941:33;3938:53;;;3987:1;3984;3977:12;3938:53;4010:29;4029:9;4010:29;:::i;:::-;4000:39;;4058:38;4092:2;4081:9;4077:18;4058:38;:::i;:::-;4048:48;;4143:2;4132:9;4128:18;4115:32;4105:42;;4198:2;4187:9;4183:18;4170:32;-1:-1:-1;;;;;4217:6:89;4214:30;4211:50;;;4257:1;4254;4247:12;4211:50;4280:49;4321:7;4312:6;4301:9;4297:22;4280:49;:::i;:::-;4270:59;;;3798:537;;;;;;;:::o;4547:254::-;4615:6;4623;4676:2;4664:9;4655:7;4651:23;4647:32;4644:52;;;4692:1;4689;4682:12;4644:52;4728:9;4715:23;4705:33;;4757:38;4791:2;4780:9;4776:18;4757:38;:::i;:::-;4747:48;;4547:254;;;;;:::o;4991:367::-;5054:8;5064:6;5118:3;5111:4;5103:6;5099:17;5095:27;5085:55;;5136:1;5133;5126:12;5085:55;-1:-1:-1;5159:20:89;;-1:-1:-1;;;;;5191:30:89;;5188:50;;;5234:1;5231;5224:12;5188:50;5271:4;5263:6;5259:17;5247:29;;5331:3;5324:4;5314:6;5311:1;5307:14;5299:6;5295:27;5291:38;5288:47;5285:67;;;5348:1;5345;5338:12;5363:1306;5559:6;5567;5575;5583;5591;5599;5607;5615;5623;5676:3;5664:9;5655:7;5651:23;5647:33;5644:53;;;5693:1;5690;5683:12;5644:53;5733:9;5720:23;-1:-1:-1;;;;;5803:2:89;5795:6;5792:14;5789:34;;;5819:1;5816;5809:12;5789:34;5858:70;5920:7;5911:6;5900:9;5896:22;5858:70;:::i;:::-;5947:8;;-1:-1:-1;5832:96:89;-1:-1:-1;6035:2:89;6020:18;;6007:32;;-1:-1:-1;6051:16:89;;;6048:36;;;6080:1;6077;6070:12;6048:36;6119:72;6183:7;6172:8;6161:9;6157:24;6119:72;:::i;:::-;6210:8;;-1:-1:-1;6093:98:89;-1:-1:-1;6298:2:89;6283:18;;6270:32;;-1:-1:-1;6314:16:89;;;6311:36;;;6343:1;6340;6333:12;6311:36;;6382:72;6446:7;6435:8;6424:9;6420:24;6382:72;:::i;:::-;5363:1306;;;;-1:-1:-1;5363:1306:89;;;;6473:8;;6555:2;6540:18;;6527:32;;6606:3;6591:19;;6578:33;;-1:-1:-1;6658:3:89;6643:19;6630:33;;-1:-1:-1;5363:1306:89;-1:-1:-1;;;;5363:1306:89:o;6674:1237::-;6861:6;6869;6877;6885;6893;6901;6909;6917;6970:3;6958:9;6949:7;6945:23;6941:33;6938:53;;;6987:1;6984;6977:12;6938:53;7027:9;7014:23;-1:-1:-1;;;;;7097:2:89;7089:6;7086:14;7083:34;;;7113:1;7110;7103:12;7083:34;7152:70;7214:7;7205:6;7194:9;7190:22;7152:70;:::i;:::-;7241:8;;-1:-1:-1;7126:96:89;-1:-1:-1;7329:2:89;7314:18;;7301:32;;-1:-1:-1;7345:16:89;;;7342:36;;;7374:1;7371;7364:12;7342:36;7413:72;7477:7;7466:8;7455:9;7451:24;7413:72;:::i;:::-;7504:8;;-1:-1:-1;7387:98:89;-1:-1:-1;7592:2:89;7577:18;;7564:32;;-1:-1:-1;7608:16:89;;;7605:36;;;7637:1;7634;7627:12;7605:36;;7676:72;7740:7;7729:8;7718:9;7714:24;7676:72;:::i;:::-;6674:1237;;;;-1:-1:-1;6674:1237:89;;;;7767:8;;7849:2;7834:18;;7821:32;;7900:3;7885:19;7872:33;;-1:-1:-1;6674:1237:89;-1:-1:-1;;;;6674:1237:89:o;7916:712::-;7970:5;8023:3;8016:4;8008:6;8004:17;8000:27;7990:55;;8041:1;8038;8031:12;7990:55;8077:6;8064:20;8103:4;-1:-1:-1;;;;;8122:2:89;8119:26;8116:52;;;8148:18;;:::i;:::-;8194:2;8191:1;8187:10;8217:28;8241:2;8237;8233:11;8217:28;:::i;:::-;8279:15;;;8349;;;8345:24;;;8310:12;;;;8381:15;;;8378:35;;;8409:1;8406;8399:12;8378:35;8445:2;8437:6;8433:15;8422:26;;8457:142;8473:6;8468:3;8465:15;8457:142;;;8539:17;;8527:30;;8490:12;;;;8577;;;;8457:142;;;8617:5;7916:712;-1:-1:-1;;;;;;;7916:712:89:o;8633:943::-;8787:6;8795;8803;8811;8819;8872:3;8860:9;8851:7;8847:23;8843:33;8840:53;;;8889:1;8886;8879:12;8840:53;8912:29;8931:9;8912:29;:::i;:::-;8902:39;;8960:38;8994:2;8983:9;8979:18;8960:38;:::i;:::-;8950:48;;9049:2;9038:9;9034:18;9021:32;-1:-1:-1;;;;;9113:2:89;9105:6;9102:14;9099:34;;;9129:1;9126;9119:12;9099:34;9152:61;9205:7;9196:6;9185:9;9181:22;9152:61;:::i;:::-;9142:71;;9266:2;9255:9;9251:18;9238:32;9222:48;;9295:2;9285:8;9282:16;9279:36;;;9311:1;9308;9301:12;9279:36;9334:63;9389:7;9378:8;9367:9;9363:24;9334:63;:::i;:::-;9324:73;;9450:3;9439:9;9435:19;9422:33;9406:49;;9480:2;9470:8;9467:16;9464:36;;;9496:1;9493;9486:12;9464:36;;9519:51;9562:7;9551:8;9540:9;9536:24;9519:51;:::i;:::-;9509:61;;;8633:943;;;;;;;;:::o;9763:606::-;9867:6;9875;9883;9891;9899;9952:3;9940:9;9931:7;9927:23;9923:33;9920:53;;;9969:1;9966;9959:12;9920:53;9992:29;10011:9;9992:29;:::i;:::-;9982:39;;10040:38;10074:2;10063:9;10059:18;10040:38;:::i;:::-;10030:48;;10125:2;10114:9;10110:18;10097:32;10087:42;;10176:2;10165:9;10161:18;10148:32;10138:42;;10231:3;10220:9;10216:19;10203:33;-1:-1:-1;;;;;10251:6:89;10248:30;10245:50;;;10291:1;10288;10281:12;10245:50;10314:49;10355:7;10346:6;10335:9;10331:22;10314:49;:::i;10374:266::-;10462:6;10457:3;10450:19;10514:6;10507:5;10500:4;10495:3;10491:14;10478:43;-1:-1:-1;10566:1:89;10541:16;;;10559:4;10537:27;;;10530:38;;;;10622:2;10601:15;;;-1:-1:-1;;10597:29:89;10588:39;;;10584:50;;10374:266::o;10645:557::-;10943:1;10939;10934:3;10930:11;10926:19;10918:6;10914:32;10903:9;10896:51;10983:6;10978:2;10967:9;10963:18;10956:34;11026:3;11021:2;11010:9;11006:18;10999:31;10877:4;11047:62;11104:3;11093:9;11089:19;11081:6;11073;11047:62;:::i;:::-;11140:2;11125:18;;11118:34;;;;-1:-1:-1;11183:3:89;11168:19;11161:35;11039:70;10645:557;-1:-1:-1;;;;10645:557:89:o;11207:412::-;11449:1;11445;11440:3;11436:11;11432:19;11424:6;11420:32;11409:9;11402:51;11489:6;11484:2;11473:9;11469:18;11462:34;11532:2;11527;11516:9;11512:18;11505:30;11383:4;11552:61;11609:2;11598:9;11594:18;11586:6;11578;11552:61;:::i;:::-;11544:69;11207:412;-1:-1:-1;;;;;;11207:412:89:o;13267:399::-;13469:2;13451:21;;;13508:2;13488:18;;;13481:30;13547:34;13542:2;13527:18;;13520:62;-1:-1:-1;;;13613:2:89;13598:18;;13591:33;13656:3;13641:19;;13267:399::o;13671:127::-;13732:10;13727:3;13723:20;13720:1;13713:31;13763:4;13760:1;13753:15;13787:4;13784:1;13777:15;13803:186;13862:6;13915:2;13903:9;13894:7;13890:23;13886:32;13883:52;;;13931:1;13928;13921:12;13883:52;13954:29;13973:9;13954:29;:::i;13994:521::-;14071:4;14077:6;14137:11;14124:25;14231:2;14227:7;14216:8;14200:14;14196:29;14192:43;14172:18;14168:68;14158:96;;14250:1;14247;14240:12;14158:96;14277:33;;14329:20;;;-1:-1:-1;;;;;;14361:30:89;;14358:50;;;14404:1;14401;14394:12;14358:50;14437:4;14425:17;;-1:-1:-1;14468:14:89;14464:27;;;14454:38;;14451:58;;;14505:1;14502;14495:12;14520:127;14581:10;14576:3;14572:20;14569:1;14562:31;14612:4;14609:1;14602:15;14636:4;14633:1;14626:15;14652:135;14691:3;14712:17;;;14709:43;;14732:18;;:::i;:::-;-1:-1:-1;14779:1:89;14768:13;;14652:135::o;14792:1067::-;14899:6;14894:3;14887:19;14869:3;14925:4;14966:2;14961:3;14957:12;14991:11;15018;15011:18;;15068:6;15065:1;15061:14;15054:5;15050:26;15038:38;;15099:5;15122:1;15132:701;15146:6;15143:1;15140:13;15132:701;;;15217:5;15211:4;15207:16;15202:3;15195:29;15276:6;15263:20;15366:2;15362:7;15354:5;15338:14;15334:26;15330:40;15310:18;15306:65;15296:93;;15385:1;15382;15375:12;15296:93;15417:30;;15525:16;;;;15476:21;-1:-1:-1;;;;;15557:32:89;;15554:52;;;15602:1;15599;15592:12;15554:52;15655:8;15639:14;15635:29;15626:7;15622:43;15619:63;;;15678:1;15675;15668:12;15619:63;15703:50;15748:4;15738:8;15729:7;15703:50;:::i;:::-;15811:12;;;;15695:58;-1:-1:-1;;;15776:15:89;;;;15168:1;15161:9;15132:701;;;-1:-1:-1;15849:4:89;;14792:1067;-1:-1:-1;;;;;;;14792:1067:89:o;15864:1393::-;16316:3;16329:22;;;16301:19;;16386:22;;;16268:4;16466:6;16439:3;16424:19;;16268:4;16500:235;16514:6;16511:1;16508:13;16500:235;;;-1:-1:-1;;;;;16579:26:89;16598:6;16579:26;:::i;:::-;16575:52;16563:65;;16651:4;16710:15;;;;16675:12;;;;16536:1;16529:9;16500:235;;;-1:-1:-1;16773:19:89;;;16766:4;16751:20;;16744:49;16802:19;;;-1:-1:-1;;;;;16833:31:89;;16830:51;;;16877:1;16874;16867:12;16830:51;16911:6;16908:1;16904:14;16890:28;;16964:6;16956;16949:4;16944:3;16940:14;16927:44;16990:16;17046:18;;;17066:4;17042:29;;;17037:2;17022:18;;17015:57;17089:75;;17150:13;;17142:6;17134;17089:75;:::i;:::-;17195:2;17180:18;;17173:34;;;;-1:-1:-1;;17238:3:89;17223:19;17216:35;17081:83;15864:1393;-1:-1:-1;;;;;;15864:1393:89:o;18503:125::-;18568:9;;;18589:10;;;18586:36;;;18602:18;;:::i;18633:250::-;18718:1;18728:113;18742:6;18739:1;18736:13;18728:113;;;18818:11;;;18812:18;18799:11;;;18792:39;18764:2;18757:10;18728:113;;;-1:-1:-1;;18875:1:89;18857:16;;18850:27;18633:250::o;18888:812::-;19299:25;19294:3;19287:38;19269:3;19354:6;19348:13;19370:75;19438:6;19433:2;19428:3;19424:12;19417:4;19409:6;19405:17;19370:75;:::i;:::-;-1:-1:-1;;;19504:2:89;19464:16;;;19496:11;;;19489:40;19554:13;;19576:76;19554:13;19638:2;19630:11;;19623:4;19611:17;;19576:76;:::i;:::-;19672:17;19691:2;19668:26;;18888:812;-1:-1:-1;;;;18888:812:89:o;19705:396::-;19854:2;19843:9;19836:21;19817:4;19886:6;19880:13;19929:6;19924:2;19913:9;19909:18;19902:34;19945:79;20017:6;20012:2;20001:9;19997:18;19992:2;19984:6;19980:15;19945:79;:::i;:::-;20085:2;20064:15;-1:-1:-1;;20060:29:89;20045:45;;;;20092:2;20041:54;;19705:396;-1:-1:-1;;19705:396:89:o;20106:406::-;20308:2;20290:21;;;20347:2;20327:18;;;20320:30;20386:34;20381:2;20366:18;;20359:62;-1:-1:-1;;;20452:2:89;20437:18;;20430:40;20502:3;20487:19;;20106:406::o;20924:271::-;21107:6;21099;21094:3;21081:33;21063:3;21133:16;;21158:13;;;21133:16;20924:271;-1:-1:-1;20924:271:89:o;21620:168::-;21693:9;;;21724;;21741:15;;;21735:22;;21721:37;21711:71;;21762:18;;:::i;21793:136::-;21832:3;21860:5;21850:39;;21869:18;;:::i;:::-;-1:-1:-1;;;21905:18:89;;21793:136::o"},"methodIdentifiers":{"CANCELLER_ROLE()":"b08e51c0","DEFAULT_ADMIN_ROLE()":"a217fddf","EXECUTOR_ROLE()":"07bd0265","PROPOSER_ROLE()":"8f61f4f5","TIMELOCK_ADMIN_ROLE()":"0d3cf6fc","cancel(bytes32)":"c4d252f5","execute(address,uint256,bytes,bytes32,bytes32)":"134008d3","executeBatch(address[],uint256[],bytes[],bytes32,bytes32)":"e38335e5","getMinDelay()":"f27a0c92","getRoleAdmin(bytes32)":"248a9ca3","getTimestamp(bytes32)":"d45c4435","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hashOperation(address,uint256,bytes,bytes32,bytes32)":"8065657f","hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)":"b1c5f427","isOperation(bytes32)":"31d50750","isOperationDone(bytes32)":"2ab0f529","isOperationPending(bytes32)":"584b153e","isOperationReady(bytes32)":"13bc9f20","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","schedule(address,uint256,bytes,bytes32,bytes32,uint256)":"01d5062a","scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)":"8f2a0bb0","supportsInterface(bytes4)":"01ffc9a7","updateDelay(uint256)":"64d62353"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minDelay\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CANCELLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"updateDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Contract module which acts as a timelocked controller. When set as the owner of an `Ownable` smart contract, it enforces a timelock on all `onlyOwner` maintenance operations. This gives time for users of the controlled contract to exit before a potentially dangerous maintenance operation is applied. By default, this contract is self administered, meaning administration tasks have to go through the timelock process. The proposer (resp executor) role is in charge of proposing (resp executing) operations. A common use case is to position this {TimelockController} as the owner of a smart contract, with a multisig or a DAO as the sole proposer. _Available since v3.3._\",\"events\":{\"CallExecuted(bytes32,uint256,address,uint256,bytes)\":{\"details\":\"Emitted when a call is performed as part of operation `id`.\"},\"CallScheduled(bytes32,uint256,address,uint256,bytes,bytes32,uint256)\":{\"details\":\"Emitted when a call is scheduled as part of operation `id`.\"},\"Cancelled(bytes32)\":{\"details\":\"Emitted when operation `id` is cancelled.\"},\"MinDelayChange(uint256,uint256)\":{\"details\":\"Emitted when the minimum delay for future operations is modified.\"}},\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'canceller' role.\"},\"constructor\":{\"details\":\"Initializes the contract with the following parameters: - `minDelay`: initial minimum delay for operations - `proposers`: accounts to be granted proposer and canceller roles - `executors`: accounts to be granted executor role - `admin`: optional account to be granted admin role; disable with zero address IMPORTANT: The optional admin can aid with initial configuration of roles after deployment without being subject to delay, but this role should be subsequently renounced in favor of administration through timelocked proposals. Previous versions of this contract would assign this admin to the deployer automatically and should be renounced as well.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getMinDelay()\":{\"details\":\"Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls `updateDelay`.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateDelay(uint256)\":{\"details\":\"Changes the minimum timelock duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the timelock itself. This can only be achieved by scheduling and later executing an operation where the timelock is the target and the data is the ABI-encoded call to this function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/TimelockController.sol\":\"TimelockController\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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/governance/TimelockController.sol\":{\"keccak256\":\"0xf3ffa69c5f7c9ebb35775be2f3b27389550a102f0e1cdfff99a54663c7b162ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f4294b5223d7823b86c0bd92516cca895f800b8db605df60d088ed89a05fede\",\"dweb:/ipfs/QmRfMZ9JYTuKYFrmkn4C3CQLnd7GxLKswBxJwpYB6HDEvD\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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}","storageLayout":{"storage":[{"astId":5163,"contract":"@openzeppelin/contracts/governance/TimelockController.sol:TimelockController","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)"},{"astId":7288,"contract":"@openzeppelin/contracts/governance/TimelockController.sol:TimelockController","label":"_timestamps","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":7290,"contract":"@openzeppelin/contracts/governance/TimelockController.sol:TimelockController","label":"_minDelay","offset":0,"slot":"2","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)5158_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(RoleData)5158_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":5155,"contract":"@openzeppelin/contracts/governance/TimelockController.sol:TimelockController","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":5157,"contract":"@openzeppelin/contracts/governance/TimelockController.sol:TimelockController","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol":{"GovernorCountingSimple":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposalVotes(uint256)":"544ffc9c","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for simple, 3 options, vote counting. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":\"GovernorCountingSimple\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0f9c01248b04279913cc08936e9d15494ec3700c21768a175f91e72ba52c7789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60518084110ae055e83e9d75c47334aabb3e9db45f6895557bb4ad7f1a658b91\",\"dweb:/ipfs/QmVKJnESDYK52gy59iMChFibs4XWuUxRNxo23zY72h2crY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"},{"astId":8185,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_proposalVotes","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_struct(ProposalVote)8180_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_mapping(t_uint256,t_struct(ProposalVote)8180_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)","numberOfBytes":"32","value":"t_struct(ProposalVote)8180_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_struct(ProposalVote)8180_storage":{"encoding":"inplace","label":"struct GovernorCountingSimple.ProposalVote","members":[{"astId":8171,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"againstVotes","offset":0,"slot":"0","type":"t_uint256"},{"astId":8173,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"forVotes","offset":0,"slot":"1","type":"t_uint256"},{"astId":8175,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"abstainVotes","offset":0,"slot":"2","type":"t_uint256"},{"astId":8179,"contract":"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol:GovernorCountingSimple","label":"hasVoted","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"}],"numberOfBytes":"128"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol":{"GovernorSettings":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","setProposalThreshold(uint256)":"ece40cc1","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for settings updatable through governance. _Available since v4.4._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Initialize the governance parameters.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"See {Governor-proposalThreshold}.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setProposalThreshold(uint256)\":{\"details\":\"Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event.\"},\"setVotingDelay(uint256)\":{\"details\":\"Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event.\"},\"setVotingPeriod(uint256)\":{\"details\":\"Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"See {IGovernor-votingDelay}.\"},\"votingPeriod()\":{\"details\":\"See {IGovernor-votingPeriod}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":\"GovernorSettings\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd\",\"dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"},{"astId":8393,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_votingDelay","offset":0,"slot":"4","type":"t_uint256"},{"astId":8395,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_votingPeriod","offset":0,"slot":"5","type":"t_uint256"},{"astId":8397,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_proposalThreshold","offset":0,"slot":"6","type":"t_uint256"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol:GovernorSettings","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol":{"GovernorTimelockControl":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":false,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract TimelockController","name":"newTimelock","type":"address"}],"name":"updateTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","updateTimelock(address)":"a890c910","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TimelockController\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"updateTimelock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} that binds the execution process to an instance of {TimelockController}. This adds a delay, enforced by the {TimelockController} to all successful proposal (in addition to the voting duration). The {Governor} needs the proposer (and ideally the executor) roles for the {Governor} to work properly. Using this model means the proposal will be operated by the {TimelockController} and not by the {Governor}. Thus, the assets and permissions must be attached to the {TimelockController}. Any asset sent to the {Governor} will be inaccessible. WARNING: Setting up the TimelockController to have additional proposers besides the governor is very risky, as it grants them powers that they must be trusted or known not to use: 1) {onlyGovernance} functions like {relay} are available to them through the timelock, and 2) approved governance proposals can be blocked by them, effectively executing a Denial of Service attack. This risk will be mitigated in a future release. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"events\":{\"TimelockChange(address,address)\":{\"details\":\"Emitted when the timelock controller used for proposal execution is modified.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Set the timelock.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalEta(uint256)\":{\"details\":\"Public accessor to check the eta of a queued proposal\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"queue(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Function to queue a proposal to the timelock.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"Overridden version of the {Governor-state} function with added support for the `Queued` status.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"timelock()\":{\"details\":\"Public accessor to check the address of the timelock\"},\"updateTimelock(address)\":{\"details\":\"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":\"GovernorTimelockControl\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0xf3ffa69c5f7c9ebb35775be2f3b27389550a102f0e1cdfff99a54663c7b162ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f4294b5223d7823b86c0bd92516cca895f800b8db605df60d088ed89a05fede\",\"dweb:/ipfs/QmRfMZ9JYTuKYFrmkn4C3CQLnd7GxLKswBxJwpYB6HDEvD\"]},\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":{\"keccak256\":\"0xde79bde0691601228cdf27fc2fdc85cb01eea836d41780e6e73f778e0a886a5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490f0e0d12ff73a9f891930c842630d4d50f0088562801d635a68319a772e19\",\"dweb:/ipfs/QmeSBTTHkxiXQ5hnJyhpCGAA42XFGfNPZxfRnkK28x4Aii\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"},{"astId":8576,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_timelock","offset":0,"slot":"4","type":"t_contract(TimelockController)8159"},{"astId":8580,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_timelockIds","offset":0,"slot":"5","type":"t_mapping(t_uint256,t_bytes32)"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(TimelockController)8159":{"encoding":"inplace","label":"contract TimelockController","numberOfBytes":"20"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol:GovernorTimelockControl","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol":{"GovernorVotes":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IVotes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for voting weight extraction from an {ERC20Votes} token, or since v4.5 an {ERC721Votes} token. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":\"GovernorVotes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0xf818ee82b0faf7938ced9fcc851600b17202c8f6b1b33e01035702cadda684bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aaea7133e6c40ce2c9c2235c72ffec8befbe50c6df0414565675f2648562484\",\"dweb:/ipfs/QmSvUuPuorTqpscvfmhV4PCJCjJDFpMmjcxTnJUB64cj98\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol:GovernorVotes","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol":{"GovernorVotesQuorumFraction":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorumNumerator","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"name":"QuorumNumeratorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IVotes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"name":"updateQuorumNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","propose(address[],uint256[],bytes[],string)":"7d5e81e2","quorum(uint256)":"f8ce560a","quorumDenominator()":"97c3d334","quorumNumerator()":"a7713a70","quorumNumerator(uint256)":"60c4247f","relay(address,uint256,bytes)":"c28bc2fa","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","token()":"fc0c546a","updateQuorumNumerator(uint256)":"06f3f9e6","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldQuorumNumerator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"QuorumNumeratorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"updateQuorumNumerator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a fraction of the total supply. _Available since v4.3._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"constructor\":{\"details\":\"Initialize quorum as a fraction of the token's total supply. The fraction is specified as `numerator / denominator`. By default the denominator is 100, so quorum is specified as a percent: a numerator of 10 corresponds to quorum being 10% of total supply. The denominator can be customized by overriding {quorumDenominator}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalThreshold()\":{\"details\":\"Part of the Governor Bravo's interface: _\\\"The number of votes required in order for a voter to become a proposer\\\"_.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"See {IGovernor-propose}.\"},\"quorum(uint256)\":{\"details\":\"Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`.\"},\"quorumDenominator()\":{\"details\":\"Returns the quorum denominator. Defaults to 100, but may be overridden.\"},\"quorumNumerator()\":{\"details\":\"Returns the current quorum numerator. See {quorumDenominator}.\"},\"quorumNumerator(uint256)\":{\"details\":\"Returns the quorum numerator at a specific block number. See {quorumDenominator}.\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"state(uint256)\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateQuorumNumerator(uint256)\":{\"details\":\"Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\":\"GovernorVotesQuorumFraction\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0xf818ee82b0faf7938ced9fcc851600b17202c8f6b1b33e01035702cadda684bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aaea7133e6c40ce2c9c2235c72ffec8befbe50c6df0414565675f2648562484\",\"dweb:/ipfs/QmSvUuPuorTqpscvfmhV4PCJCjJDFpMmjcxTnJUB64cj98\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\":{\"keccak256\":\"0x78a9387835f2dd3409988348661df2724630c7bb31bb3da54146c568460c42af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe76999864eaa47e124dfa6f3124eb5d42d5ef705508fb8ad696372f0f40da92\",\"dweb:/ipfs/Qmbjd3L2Rz1sp9rZ5yzwCH2nQFZTQThR9naCkGZY5DVN2p\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0xf586981d605e0c0f07a44e158a3da023bd526409d3709e969d323b2d91398078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df93b9e4731d4e904a7216af640c5ec0a4ef5f87051fedc2a272b3b3039f1247\",\"dweb:/ipfs/QmYvPqBpuZXxnedpn1vAMuHfustou2hByanL8zRA3qm3ob\"]},\"@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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"},{"astId":8996,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_quorumNumerator","offset":0,"slot":"4","type":"t_uint256"},{"astId":8999,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_quorumNumeratorHistory","offset":0,"slot":"5","type":"t_struct(History)12941_storage"}],"types":{"t_array(t_struct(Checkpoint)12946_storage)dyn_storage":{"base":"t_struct(Checkpoint)12946_storage","encoding":"dynamic_array","label":"struct Checkpoints.Checkpoint[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(Checkpoint)12946_storage":{"encoding":"inplace","label":"struct Checkpoints.Checkpoint","members":[{"astId":12943,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_blockNumber","offset":0,"slot":"0","type":"t_uint32"},{"astId":12945,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_value","offset":4,"slot":"0","type":"t_uint224"}],"numberOfBytes":"32"},"t_struct(History)12941_storage":{"encoding":"inplace","label":"struct Checkpoints.History","members":[{"astId":12940,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"_checkpoints","offset":0,"slot":"0","type":"t_array(t_struct(Checkpoint)12946_storage)dyn_storage"}],"numberOfBytes":"32"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol:GovernorVotesQuorumFraction","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_uint224":{"encoding":"inplace","label":"uint224","numberOfBytes":"28"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol":{"IGovernorTimelock":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"COUNTING_MODE()":"dd4e2ba5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of the {IGovernor} for timelock supporting modules. _Available since v4.3._\",\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should  include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.\"},\"castVote(uint256,uint8)\":{\"details\":\"Cast a vote Emits a {VoteCast} event.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote using the user's cryptographic signature. Emits a {VoteCast} event.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"Cast a vote with a reason Emits a {VoteCast} event.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"Cast a vote with a reason and additional encoded parameters using the user's cryptographic signature. Emits a {VoteCast} or {VoteCastWithParams} event depending on the length of params.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Execute a successful proposal. This requires the quorum to be reached, the vote to be successful, and the deadline to be reached. Emits a {ProposalExecuted} event. Note: some module can modify the requirements for execution, for example by adding an additional timelock.\"},\"getVotes(address,uint256)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber`. Note: this can be implemented in a number of ways, for example by reading the delegated balance from one (or multiple), {ERC20Votes} tokens.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"Voting power of an `account` at a specific `blockNumber` given additional encoded parameters.\"},\"hasVoted(uint256,address)\":{\"details\":\"Returns whether `account` has cast a vote on `proposalId`.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Hashing function used to (re)build the proposal id from the proposal details..\"},\"name()\":{\"details\":\"Name of the governor instance (used in building the ERC712 domain separator).\"},\"proposalDeadline(uint256)\":{\"details\":\"Block number at which votes close. Votes close at the end of this block, so it is possible to cast a vote during this block.\"},\"proposalSnapshot(uint256)\":{\"details\":\"Block number used to retrieve user's votes and quorum. As per Compound's Comp and OpenZeppelin's ERC20Votes, the snapshot is performed at the end of this block. Hence, voting for this proposal starts at the beginning of the following block.\"},\"propose(address[],uint256[],bytes[],string)\":{\"details\":\"Create a new proposal. Vote start {IGovernor-votingDelay} blocks after the proposal is created and ends {IGovernor-votingPeriod} blocks after the voting starts. Emits a {ProposalCreated} event.\"},\"quorum(uint256)\":{\"details\":\"Minimum number of cast voted required for a proposal to be successful. Note: The `blockNumber` parameter corresponds to the snapshot used for counting vote. This allows to scale the quorum depending on values such as the totalSupply of a token at this block (see {ERC20Votes}).\"},\"state(uint256)\":{\"details\":\"Current state of a proposal, following Compound's convention\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"version()\":{\"details\":\"Version of the governor instance (used in building the ERC712 domain separator). Default: \\\"1\\\"\"},\"votingDelay()\":{\"details\":\"Delay, in number of block, between the proposal is created and the vote starts. This can be increassed to leave time for users to buy voting power, or delegate it, before the voting of a proposal starts.\"},\"votingPeriod()\":{\"details\":\"Delay, in number of blocks, between the vote start and vote ends. NOTE: The {votingDelay} can delay the start of the vote. This must be considered when setting the voting duration compared to the voting delay.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNTING_MODE()\":{\"notice\":\"module:voting\"},\"getVotes(address,uint256)\":{\"notice\":\"module:reputation\"},\"getVotesWithParams(address,uint256,bytes)\":{\"notice\":\"module:reputation\"},\"hasVoted(uint256,address)\":{\"notice\":\"module:voting\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"notice\":\"module:core\"},\"name()\":{\"notice\":\"module:core\"},\"proposalDeadline(uint256)\":{\"notice\":\"module:core\"},\"proposalSnapshot(uint256)\":{\"notice\":\"module:core\"},\"quorum(uint256)\":{\"notice\":\"module:user-config\"},\"state(uint256)\":{\"notice\":\"module:core\"},\"version()\":{\"notice\":\"module:core\"},\"votingDelay()\":{\"notice\":\"module:user-config\"},\"votingPeriod()\":{\"notice\":\"module:user-config\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":\"IGovernorTimelock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"IERC1155Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"_Available since v3.1._\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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":{"@_9390":{"entryPoint":null,"id":9390,"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":287,"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":453,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":536,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":393,"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:4144:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"210:776:89","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:89"},"nodeType":"YulFunctionCall","src":"261:12:89"},"nodeType":"YulExpressionStatement","src":"261:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:89"},"nodeType":"YulFunctionCall","src":"234:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:89"},"nodeType":"YulFunctionCall","src":"230:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:89"},"nodeType":"YulFunctionCall","src":"223:35:89"},"nodeType":"YulIf","src":"220:55:89"},{"nodeType":"YulVariableDeclaration","src":"284:23:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:89"},"nodeType":"YulFunctionCall","src":"294:13:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:89"},"nodeType":"YulFunctionCall","src":"330:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:89"},"nodeType":"YulFunctionCall","src":"326:18:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:89"},"nodeType":"YulFunctionCall","src":"369:18:89"},"nodeType":"YulExpressionStatement","src":"369:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:89"},"nodeType":"YulFunctionCall","src":"356:10:89"},"nodeType":"YulIf","src":"353:36:89"},{"nodeType":"YulVariableDeclaration","src":"398:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:89"},"nodeType":"YulFunctionCall","src":"408:7:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:89"},"nodeType":"YulFunctionCall","src":"438:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:89"},"nodeType":"YulFunctionCall","src":"498:13:89"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:89"},"nodeType":"YulFunctionCall","src":"494:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:89"},"nodeType":"YulFunctionCall","src":"490:31:89"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:89"},"nodeType":"YulFunctionCall","src":"486:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:89"},"nodeType":"YulFunctionCall","src":"474:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:89"},"nodeType":"YulFunctionCall","src":"588:18:89"},"nodeType":"YulExpressionStatement","src":"588:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:89"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:89"},"nodeType":"YulFunctionCall","src":"542:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:89"},"nodeType":"YulFunctionCall","src":"562:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:89"},"nodeType":"YulFunctionCall","src":"539:46:89"},"nodeType":"YulIf","src":"536:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:89"},"nodeType":"YulFunctionCall","src":"617:22:89"},"nodeType":"YulExpressionStatement","src":"617:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:89"},"nodeType":"YulFunctionCall","src":"648:18:89"},"nodeType":"YulExpressionStatement","src":"648:18:89"},{"nodeType":"YulVariableDeclaration","src":"675:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:89","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:89"},"nodeType":"YulFunctionCall","src":"737:12:89"},"nodeType":"YulExpressionStatement","src":"737:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:89"},"nodeType":"YulFunctionCall","src":"708:15:89"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:89"},"nodeType":"YulFunctionCall","src":"704:24:89"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:89"},"nodeType":"YulFunctionCall","src":"701:33:89"},"nodeType":"YulIf","src":"698:53:89"},{"nodeType":"YulVariableDeclaration","src":"760:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:89"},"nodeType":"YulFunctionCall","src":"850:14:89"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:89"},"nodeType":"YulFunctionCall","src":"846:23:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:89"},"nodeType":"YulFunctionCall","src":"881:14:89"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:89"},"nodeType":"YulFunctionCall","src":"877:23:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:89"},"nodeType":"YulFunctionCall","src":"871:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:89"},"nodeType":"YulFunctionCall","src":"839:63:89"},"nodeType":"YulExpressionStatement","src":"839:63:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:89"},"nodeType":"YulFunctionCall","src":"787:9:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:89","statements":[{"nodeType":"YulAssignment","src":"799:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:89"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:89"},"nodeType":"YulFunctionCall","src":"804:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:89","statements":[]},"src":"779:133:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:89"},"nodeType":"YulFunctionCall","src":"932:15:89"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:89"},"nodeType":"YulFunctionCall","src":"928:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:89"},"nodeType":"YulFunctionCall","src":"921:35:89"},"nodeType":"YulExpressionStatement","src":"921:35:89"},{"nodeType":"YulAssignment","src":"965:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:89"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:89","type":""}],"src":"146:840:89"},{"body":{"nodeType":"YulBlock","src":"1109:444:89","statements":[{"body":{"nodeType":"YulBlock","src":"1155:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1164:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1167:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1157:6:89"},"nodeType":"YulFunctionCall","src":"1157:12:89"},"nodeType":"YulExpressionStatement","src":"1157:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1130:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1126:3:89"},"nodeType":"YulFunctionCall","src":"1126:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1151:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1122:3:89"},"nodeType":"YulFunctionCall","src":"1122:32:89"},"nodeType":"YulIf","src":"1119:52:89"},{"nodeType":"YulVariableDeclaration","src":"1180:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1194:5:89"},"nodeType":"YulFunctionCall","src":"1194:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1184:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1219:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1237:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1241:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1233:3:89"},"nodeType":"YulFunctionCall","src":"1233:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1245:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1229:3:89"},"nodeType":"YulFunctionCall","src":"1229:18:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1223:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1274:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1283:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1276:6:89"},"nodeType":"YulFunctionCall","src":"1276:12:89"},"nodeType":"YulExpressionStatement","src":"1276:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1262:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1270:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1259:2:89"},"nodeType":"YulFunctionCall","src":"1259:14:89"},"nodeType":"YulIf","src":"1256:34:89"},{"nodeType":"YulAssignment","src":"1299:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1342:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1353:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1338:3:89"},"nodeType":"YulFunctionCall","src":"1338:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1362:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1309:28:89"},"nodeType":"YulFunctionCall","src":"1309:61:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1379:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1405:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1401:3:89"},"nodeType":"YulFunctionCall","src":"1401:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1395:5:89"},"nodeType":"YulFunctionCall","src":"1395:25:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1383:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1449:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1461:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:89"},"nodeType":"YulFunctionCall","src":"1451:12:89"},"nodeType":"YulExpressionStatement","src":"1451:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1435:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1445:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1432:2:89"},"nodeType":"YulFunctionCall","src":"1432:16:89"},"nodeType":"YulIf","src":"1429:36:89"},{"nodeType":"YulAssignment","src":"1474:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1517:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1528:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:89"},"nodeType":"YulFunctionCall","src":"1513:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1484:28:89"},"nodeType":"YulFunctionCall","src":"1484:63:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1474:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1067:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1078:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1090:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1098:6:89","type":""}],"src":"991:562:89"},{"body":{"nodeType":"YulBlock","src":"1613:325:89","statements":[{"nodeType":"YulAssignment","src":"1623:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1637:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1640:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1633:3:89"},"nodeType":"YulFunctionCall","src":"1633:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1623:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1654:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1684:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:89"},"nodeType":"YulFunctionCall","src":"1680:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1658:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1731:31:89","statements":[{"nodeType":"YulAssignment","src":"1733:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1747:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1755:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1743:3:89"},"nodeType":"YulFunctionCall","src":"1743:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1733:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1711:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1704:6:89"},"nodeType":"YulFunctionCall","src":"1704:26:89"},"nodeType":"YulIf","src":"1701:61:89"},{"body":{"nodeType":"YulBlock","src":"1821:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1842:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1849:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1854:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1845:3:89"},"nodeType":"YulFunctionCall","src":"1845:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1835:6:89"},"nodeType":"YulFunctionCall","src":"1835:31:89"},"nodeType":"YulExpressionStatement","src":"1835:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1889:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1879:6:89"},"nodeType":"YulFunctionCall","src":"1879:15:89"},"nodeType":"YulExpressionStatement","src":"1879:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:89"},"nodeType":"YulFunctionCall","src":"1907:15:89"},"nodeType":"YulExpressionStatement","src":"1907:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1777:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1800:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1808:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1797:2:89"},"nodeType":"YulFunctionCall","src":"1797:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1774:2:89"},"nodeType":"YulFunctionCall","src":"1774:38:89"},"nodeType":"YulIf","src":"1771:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1593:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1602:6:89","type":""}],"src":"1558:380:89"},{"body":{"nodeType":"YulBlock","src":"1999:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2019:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2009:6:89"},"nodeType":"YulFunctionCall","src":"2009:14:89"},"nodeType":"YulExpressionStatement","src":"2009:14:89"},{"nodeType":"YulAssignment","src":"2032:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2050:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2053:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2040:9:89"},"nodeType":"YulFunctionCall","src":"2040:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2032:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1982:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1990:4:89","type":""}],"src":"1943:121:89"},{"body":{"nodeType":"YulBlock","src":"2150:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"2183:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2197:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2207:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2201:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"2232:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2221:6:89"},"nodeType":"YulFunctionCall","src":"2221:17:89"},"nodeType":"YulExpressionStatement","src":"2221:17:89"},{"nodeType":"YulVariableDeclaration","src":"2251:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"2277:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2263:9:89"},"nodeType":"YulFunctionCall","src":"2263:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2255:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2295:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2318:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2328:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2335:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2347:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:89"},"nodeType":"YulFunctionCall","src":"2331:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2324:3:89"},"nodeType":"YulFunctionCall","src":"2324:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2314:3:89"},"nodeType":"YulFunctionCall","src":"2314:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2299:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:23:89","statements":[{"nodeType":"YulAssignment","src":"2391:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"2406:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2391:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2371:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2368:2:89"},"nodeType":"YulFunctionCall","src":"2368:20:89"},"nodeType":"YulIf","src":"2365:47:89"},{"nodeType":"YulVariableDeclaration","src":"2425:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2439:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2449:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2456:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2461:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2452:3:89"},"nodeType":"YulFunctionCall","src":"2452:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2445:3:89"},"nodeType":"YulFunctionCall","src":"2445:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2435:3:89"},"nodeType":"YulFunctionCall","src":"2435:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2429:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2479:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2492:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2483:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2577:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2586:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2593:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2579:6:89"},"nodeType":"YulFunctionCall","src":"2579:17:89"},"nodeType":"YulExpressionStatement","src":"2579:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2527:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"2534:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2524:2:89"},"nodeType":"YulFunctionCall","src":"2524:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2538:26:89","statements":[{"nodeType":"YulAssignment","src":"2540:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2553:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2560:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2549:3:89"},"nodeType":"YulFunctionCall","src":"2549:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2540:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2520:3:89","statements":[]},"src":"2516:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2166:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2171:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2163:2:89"},"nodeType":"YulFunctionCall","src":"2163:11:89"},"nodeType":"YulIf","src":"2160:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2122:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2129:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2134:10:89","type":""}],"src":"2069:545:89"},{"body":{"nodeType":"YulBlock","src":"2704:81:89","statements":[{"nodeType":"YulAssignment","src":"2714:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2729:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2747:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2750:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2743:3:89"},"nodeType":"YulFunctionCall","src":"2743:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2760:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2756:3:89"},"nodeType":"YulFunctionCall","src":"2756:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2739:3:89"},"nodeType":"YulFunctionCall","src":"2739:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2735:3:89"},"nodeType":"YulFunctionCall","src":"2735:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2725:3:89"},"nodeType":"YulFunctionCall","src":"2725:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2774:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:89"},"nodeType":"YulFunctionCall","src":"2767:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2722:2:89"},"nodeType":"YulFunctionCall","src":"2722:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2714:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2681:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2687:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2695:4:89","type":""}],"src":"2619:166:89"},{"body":{"nodeType":"YulBlock","src":"2886:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2896:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2916:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2910:5:89"},"nodeType":"YulFunctionCall","src":"2910:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2900:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2963:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2965:16:89"},"nodeType":"YulFunctionCall","src":"2965:18:89"},"nodeType":"YulExpressionStatement","src":"2965:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2935:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2951:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2955:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2947:3:89"},"nodeType":"YulFunctionCall","src":"2947:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2959:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2943:3:89"},"nodeType":"YulFunctionCall","src":"2943:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2932:2:89"},"nodeType":"YulFunctionCall","src":"2932:30:89"},"nodeType":"YulIf","src":"2929:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3038:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3076:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3070:5:89"},"nodeType":"YulFunctionCall","src":"3070:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3044:25:89"},"nodeType":"YulFunctionCall","src":"3044:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3084:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2994:43:89"},"nodeType":"YulFunctionCall","src":"2994:97:89"},"nodeType":"YulExpressionStatement","src":"2994:97:89"},{"nodeType":"YulVariableDeclaration","src":"3100:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3117:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3104:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3127:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3146:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3131:11:89","type":""}]},{"nodeType":"YulAssignment","src":"3159:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3172:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3159:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3229:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3243:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3262:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3274:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3270:3:89"},"nodeType":"YulFunctionCall","src":"3270:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3258:3:89"},"nodeType":"YulFunctionCall","src":"3258:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3247:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3291:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3335:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3305:29:89"},"nodeType":"YulFunctionCall","src":"3305:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3295:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3353:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3362:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3357:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3440:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3465:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3483:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3488:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3479:3:89"},"nodeType":"YulFunctionCall","src":"3479:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3473:5:89"},"nodeType":"YulFunctionCall","src":"3473:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3458:6:89"},"nodeType":"YulFunctionCall","src":"3458:42:89"},"nodeType":"YulExpressionStatement","src":"3458:42:89"},{"nodeType":"YulAssignment","src":"3517:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3531:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3539:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:89"},"nodeType":"YulFunctionCall","src":"3527:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3517:6:89"}]},{"nodeType":"YulAssignment","src":"3558:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3575:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3586:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3571:3:89"},"nodeType":"YulFunctionCall","src":"3571:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3558:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3387:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3390:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3384:2:89"},"nodeType":"YulFunctionCall","src":"3384:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3399:28:89","statements":[{"nodeType":"YulAssignment","src":"3401:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3410:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3413:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:89"},"nodeType":"YulFunctionCall","src":"3406:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3401:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"3380:3:89","statements":[]},"src":"3376:236:89"},{"body":{"nodeType":"YulBlock","src":"3660:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3678:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3705:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3710:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3701:3:89"},"nodeType":"YulFunctionCall","src":"3701:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3695:5:89"},"nodeType":"YulFunctionCall","src":"3695:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3682:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3745:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3757:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3784:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3787:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3780:3:89"},"nodeType":"YulFunctionCall","src":"3780:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3796:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3776:3:89"},"nodeType":"YulFunctionCall","src":"3776:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3806:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3802:3:89"},"nodeType":"YulFunctionCall","src":"3802:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3772:3:89"},"nodeType":"YulFunctionCall","src":"3772:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3768:3:89"},"nodeType":"YulFunctionCall","src":"3768:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3753:3:89"},"nodeType":"YulFunctionCall","src":"3753:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3738:6:89"},"nodeType":"YulFunctionCall","src":"3738:74:89"},"nodeType":"YulExpressionStatement","src":"3738:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3631:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3640:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3628:2:89"},"nodeType":"YulFunctionCall","src":"3628:19:89"},"nodeType":"YulIf","src":"3625:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3846:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3860:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3863:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3856:3:89"},"nodeType":"YulFunctionCall","src":"3856:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3852:3:89"},"nodeType":"YulFunctionCall","src":"3852:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3839:6:89"},"nodeType":"YulFunctionCall","src":"3839:36:89"},"nodeType":"YulExpressionStatement","src":"3839:36:89"}]},"nodeType":"YulCase","src":"3222:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3227:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3902:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3916:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3929:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3920:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3965:67:89","statements":[{"nodeType":"YulAssignment","src":"3983:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4002:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4007:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:89"},"nodeType":"YulFunctionCall","src":"3998:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3992:5:89"},"nodeType":"YulFunctionCall","src":"3992:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3983:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3946:6:89"},"nodeType":"YulIf","src":"3943:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4052:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4111:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"4118:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4058:52:89"},"nodeType":"YulFunctionCall","src":"4058:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4045:6:89"},"nodeType":"YulFunctionCall","src":"4045:81:89"},"nodeType":"YulExpressionStatement","src":"4045:81:89"}]},"nodeType":"YulCase","src":"3894:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3202:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3210:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3199:2:89"},"nodeType":"YulFunctionCall","src":"3199:14:89"},"nodeType":"YulSwitch","src":"3192:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2871:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"2877:3:89","type":""}],"src":"2790:1352:89"}]},"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        mstore(add(add(memPtr, _1), _4), 0)\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":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000b4638038062000b4683398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61085280620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212205dd3dbf63f0acedbc1f6a7862077c7dcdf11c6e692c3a0c354c443a6f9e989ba64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB46 CODESIZE SUB DUP1 PUSH3 0xB46 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x11F JUMP JUMPDEST PUSH1 0x3 PUSH3 0x42 DUP4 DUP3 PUSH3 0x218 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x51 DUP3 DUP3 PUSH3 0x218 JUMP JUMPDEST POP POP POP PUSH3 0x2E4 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 PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x159 DUP7 DUP4 DUP8 ADD PUSH3 0x70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x17F 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 0x19E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1BF 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 0x213 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 0x1EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x20F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1FA 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 0x234 JUMPI PUSH3 0x234 PUSH3 0x5A JUMP JUMPDEST PUSH3 0x24C DUP2 PUSH3 0x245 DUP5 SLOAD PUSH3 0x189 JUMP JUMPDEST DUP5 PUSH3 0x1C5 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x284 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x26B 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 0x20F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x294 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2D4 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 0x852 DUP1 PUSH3 0x2F4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x730 JUMP JUMPDEST PUSH2 0x24C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x292 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x78E JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x35A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x25A DUP6 DUP3 DUP6 PUSH2 0x47E JUMP JUMPDEST PUSH2 0x265 DUP6 DUP6 DUP6 PUSH2 0x4F8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x283 DUP4 DUP4 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x7FB JUMP JUMPDEST PUSH2 0x35A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AF DUP3 DUP7 PUSH2 0x32F JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x265 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP5 DUP5 PUSH2 0x32F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F2 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E5 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 0x30B JUMP JUMPDEST PUSH2 0x4F2 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x35A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B 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 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B 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 0x4F2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AD JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x701 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x722 DUP4 PUSH2 0x6EA 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 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74E DUP5 PUSH2 0x6EA JUMP JUMPDEST SWAP3 POP PUSH2 0x75C PUSH1 0x20 DUP6 ADD PUSH2 0x6EA 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 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x787 DUP3 PUSH2 0x6EA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AA DUP4 PUSH2 0x6EA JUMP JUMPDEST SWAP2 POP PUSH2 0x7B8 PUSH1 0x20 DUP5 ADD PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7F5 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x246 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5D 0xD3 0xDB 0xF6 EXTCODEHASH EXP 0xCE 0xDB 0xC1 0xF6 0xA7 DUP7 KECCAK256 PUSH24 0xC7DCDF11C6E692C3A0C354C443A6F9E989BA64736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1401:11610:31:-:0;;;1976:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2042:5;:13;2050:5;2042;:13;:::i;:::-;-1:-1:-1;2065:7:31;:17;2075:7;2065;:17;:::i;:::-;;1976:113;;1401:11610;;14:127:89;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;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:89;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:89;;;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;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:89:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:89;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:89;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:89;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:89;;;3992:26;3943:89;-1:-1:-1;;2747:1:89;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:89;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:89;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:89;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:89:o;:::-;1401:11610:31;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_9931":{"entryPoint":null,"id":9931,"parameterSlots":3,"returnSlots":0},"@_approve_9866":{"entryPoint":858,"id":9866,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9920":{"entryPoint":null,"id":9920,"parameterSlots":3,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_9909":{"entryPoint":1150,"id":9909,"parameterSlots":3,"returnSlots":0},"@_transfer_9692":{"entryPoint":1272,"id":9692,"parameterSlots":3,"returnSlots":0},"@allowance_9487":{"entryPoint":815,"id":9487,"parameterSlots":2,"returnSlots":1},"@approve_9512":{"entryPoint":562,"id":9512,"parameterSlots":2,"returnSlots":1},"@balanceOf_9444":{"entryPoint":null,"id":9444,"parameterSlots":1,"returnSlots":1},"@decimals_9420":{"entryPoint":null,"id":9420,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9615":{"entryPoint":673,"id":9615,"parameterSlots":2,"returnSlots":1},"@increaseAllowance_9574":{"entryPoint":624,"id":9574,"parameterSlots":2,"returnSlots":1},"@name_9400":{"entryPoint":416,"id":9400,"parameterSlots":0,"returnSlots":1},"@symbol_9410":{"entryPoint":658,"id":9410,"parameterSlots":0,"returnSlots":1},"@totalSupply_9430":{"entryPoint":null,"id":9430,"parameterSlots":0,"returnSlots":1},"@transferFrom_9545":{"entryPoint":588,"id":9545,"parameterSlots":3,"returnSlots":1},"@transfer_9469":{"entryPoint":801,"id":9469,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1770,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1900,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":1934,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1840,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1798,"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":1692,"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":2043,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1985,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5754:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:89"},"nodeType":"YulFunctionCall","src":"166:21:89"},"nodeType":"YulExpressionStatement","src":"166:21:89"},{"nodeType":"YulVariableDeclaration","src":"196:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:89"},"nodeType":"YulFunctionCall","src":"210:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:89"},"nodeType":"YulFunctionCall","src":"239:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:89"},"nodeType":"YulFunctionCall","src":"232:34:89"},"nodeType":"YulExpressionStatement","src":"232:34:89"},{"nodeType":"YulVariableDeclaration","src":"275:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:89"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:89"},"nodeType":"YulFunctionCall","src":"369:17:89"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:89"},"nodeType":"YulFunctionCall","src":"365:26:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:89"},"nodeType":"YulFunctionCall","src":"403:14:89"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:89"},"nodeType":"YulFunctionCall","src":"399:23:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:89"},"nodeType":"YulFunctionCall","src":"393:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:89"},"nodeType":"YulFunctionCall","src":"358:66:89"},"nodeType":"YulExpressionStatement","src":"358:66:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:89"},"nodeType":"YulFunctionCall","src":"302:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:89","statements":[{"nodeType":"YulAssignment","src":"318:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:89"},"nodeType":"YulFunctionCall","src":"323:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:89","statements":[]},"src":"294:140:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:89"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:89"},"nodeType":"YulFunctionCall","src":"454:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:89"},"nodeType":"YulFunctionCall","src":"450:31:89"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:89"},"nodeType":"YulFunctionCall","src":"443:42:89"},"nodeType":"YulExpressionStatement","src":"443:42:89"},{"nodeType":"YulAssignment","src":"494:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:89"},"nodeType":"YulFunctionCall","src":"525:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:89"},"nodeType":"YulFunctionCall","src":"542:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:89"},"nodeType":"YulFunctionCall","src":"521:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:89"},"nodeType":"YulFunctionCall","src":"506:45:89"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:89"},"nodeType":"YulFunctionCall","src":"502:54:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:89"}]}]},"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:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:89","type":""}],"src":"14:548:89"},{"body":{"nodeType":"YulBlock","src":"616:124:89","statements":[{"nodeType":"YulAssignment","src":"626:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:89"},"nodeType":"YulFunctionCall","src":"635:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:89"}]},{"body":{"nodeType":"YulBlock","src":"718:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:89"},"nodeType":"YulFunctionCall","src":"720:12:89"},"nodeType":"YulExpressionStatement","src":"720:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:89"},"nodeType":"YulFunctionCall","src":"699:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:89"},"nodeType":"YulFunctionCall","src":"695:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:89"},"nodeType":"YulFunctionCall","src":"684:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:89"},"nodeType":"YulFunctionCall","src":"674:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:89"},"nodeType":"YulFunctionCall","src":"667:50:89"},"nodeType":"YulIf","src":"664:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:89","type":""}],"src":"567:173:89"},{"body":{"nodeType":"YulBlock","src":"832:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:89"},"nodeType":"YulFunctionCall","src":"880:12:89"},"nodeType":"YulExpressionStatement","src":"880:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:89"},"nodeType":"YulFunctionCall","src":"849:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:89"},"nodeType":"YulFunctionCall","src":"845:32:89"},"nodeType":"YulIf","src":"842:52:89"},{"nodeType":"YulAssignment","src":"903:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:89"},"nodeType":"YulFunctionCall","src":"913:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:89"}]},{"nodeType":"YulAssignment","src":"951:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:89"},"nodeType":"YulFunctionCall","src":"974:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:89"},"nodeType":"YulFunctionCall","src":"961:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:89","type":""}],"src":"745:254:89"},{"body":{"nodeType":"YulBlock","src":"1099:92:89","statements":[{"nodeType":"YulAssignment","src":"1109:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:89"},"nodeType":"YulFunctionCall","src":"1117:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:89"},"nodeType":"YulFunctionCall","src":"1169:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:89"},"nodeType":"YulFunctionCall","src":"1162:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:89"},"nodeType":"YulFunctionCall","src":"1144:41:89"},"nodeType":"YulExpressionStatement","src":"1144:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:89","type":""}],"src":"1004:187:89"},{"body":{"nodeType":"YulBlock","src":"1297:76:89","statements":[{"nodeType":"YulAssignment","src":"1307:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:89"},"nodeType":"YulFunctionCall","src":"1315:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:89"},"nodeType":"YulFunctionCall","src":"1342:25:89"},"nodeType":"YulExpressionStatement","src":"1342:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:89","type":""}],"src":"1196:177:89"},{"body":{"nodeType":"YulBlock","src":"1482:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:89"},"nodeType":"YulFunctionCall","src":"1530:12:89"},"nodeType":"YulExpressionStatement","src":"1530:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:89"},"nodeType":"YulFunctionCall","src":"1499:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:89"},"nodeType":"YulFunctionCall","src":"1495:32:89"},"nodeType":"YulIf","src":"1492:52:89"},{"nodeType":"YulAssignment","src":"1553:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:89"},"nodeType":"YulFunctionCall","src":"1563:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:89"}]},{"nodeType":"YulAssignment","src":"1601:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:89"},"nodeType":"YulFunctionCall","src":"1630:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:89"},"nodeType":"YulFunctionCall","src":"1611:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:89"}]},{"nodeType":"YulAssignment","src":"1658:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:89"},"nodeType":"YulFunctionCall","src":"1681:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:89"},"nodeType":"YulFunctionCall","src":"1668:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:89","type":""}],"src":"1378:328:89"},{"body":{"nodeType":"YulBlock","src":"1808:87:89","statements":[{"nodeType":"YulAssignment","src":"1818:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:89"},"nodeType":"YulFunctionCall","src":"1826:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:89"},"nodeType":"YulFunctionCall","src":"1871:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:89"},"nodeType":"YulFunctionCall","src":"1853:36:89"},"nodeType":"YulExpressionStatement","src":"1853:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:89","type":""}],"src":"1711:184:89"},{"body":{"nodeType":"YulBlock","src":"1970:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:89"},"nodeType":"YulFunctionCall","src":"2018:12:89"},"nodeType":"YulExpressionStatement","src":"2018:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:89"},"nodeType":"YulFunctionCall","src":"1987:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:89"},"nodeType":"YulFunctionCall","src":"1983:32:89"},"nodeType":"YulIf","src":"1980:52:89"},{"nodeType":"YulAssignment","src":"2041:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2070:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2051:18:89"},"nodeType":"YulFunctionCall","src":"2051:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:89","type":""}],"src":"1900:186:89"},{"body":{"nodeType":"YulBlock","src":"2178:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"2224:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2233:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2236:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2226:6:89"},"nodeType":"YulFunctionCall","src":"2226:12:89"},"nodeType":"YulExpressionStatement","src":"2226:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2199:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2208:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2195:3:89"},"nodeType":"YulFunctionCall","src":"2195:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2220:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2191:3:89"},"nodeType":"YulFunctionCall","src":"2191:32:89"},"nodeType":"YulIf","src":"2188:52:89"},{"nodeType":"YulAssignment","src":"2249:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2278:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2259:18:89"},"nodeType":"YulFunctionCall","src":"2259:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2249:6:89"}]},{"nodeType":"YulAssignment","src":"2297:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2330:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2341:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2326:3:89"},"nodeType":"YulFunctionCall","src":"2326:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2307:18:89"},"nodeType":"YulFunctionCall","src":"2307:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2297:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2136:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2147:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2159:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2167:6:89","type":""}],"src":"2091:260:89"},{"body":{"nodeType":"YulBlock","src":"2411:325:89","statements":[{"nodeType":"YulAssignment","src":"2421:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2435:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2438:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2431:3:89"},"nodeType":"YulFunctionCall","src":"2431:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2421:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2452:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2482:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"2488:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2478:3:89"},"nodeType":"YulFunctionCall","src":"2478:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2456:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2529:31:89","statements":[{"nodeType":"YulAssignment","src":"2531:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2545:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2553:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2541:3:89"},"nodeType":"YulFunctionCall","src":"2541:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2531:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2509:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2502:6:89"},"nodeType":"YulFunctionCall","src":"2502:26:89"},"nodeType":"YulIf","src":"2499:61:89"},{"body":{"nodeType":"YulBlock","src":"2619:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2640:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2647:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2652:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2643:3:89"},"nodeType":"YulFunctionCall","src":"2643:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2633:6:89"},"nodeType":"YulFunctionCall","src":"2633:31:89"},"nodeType":"YulExpressionStatement","src":"2633:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2684:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2687:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2677:6:89"},"nodeType":"YulFunctionCall","src":"2677:15:89"},"nodeType":"YulExpressionStatement","src":"2677:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2712:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2715:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2705:6:89"},"nodeType":"YulFunctionCall","src":"2705:15:89"},"nodeType":"YulExpressionStatement","src":"2705:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2575:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2598:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2606:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2595:2:89"},"nodeType":"YulFunctionCall","src":"2595:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2572:2:89"},"nodeType":"YulFunctionCall","src":"2572:38:89"},"nodeType":"YulIf","src":"2569:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2391:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2400:6:89","type":""}],"src":"2356:380:89"},{"body":{"nodeType":"YulBlock","src":"2789:174:89","statements":[{"nodeType":"YulAssignment","src":"2799:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2810:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"2813:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2806:3:89"},"nodeType":"YulFunctionCall","src":"2806:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"2799:3:89"}]},{"body":{"nodeType":"YulBlock","src":"2846:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2867:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2874:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2879:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2870:3:89"},"nodeType":"YulFunctionCall","src":"2870:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:89"},"nodeType":"YulFunctionCall","src":"2860:31:89"},"nodeType":"YulExpressionStatement","src":"2860:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2911:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2914:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2904:6:89"},"nodeType":"YulFunctionCall","src":"2904:15:89"},"nodeType":"YulExpressionStatement","src":"2904:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2939:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2942:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2932:6:89"},"nodeType":"YulFunctionCall","src":"2932:15:89"},"nodeType":"YulExpressionStatement","src":"2932:15:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2830:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"2833:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2827:2:89"},"nodeType":"YulFunctionCall","src":"2827:10:89"},"nodeType":"YulIf","src":"2824:133:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"2772:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"2775:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"2781:3:89","type":""}],"src":"2741:222:89"},{"body":{"nodeType":"YulBlock","src":"3142:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3159:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3170:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3152:6:89"},"nodeType":"YulFunctionCall","src":"3152:21:89"},"nodeType":"YulExpressionStatement","src":"3152:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3193:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3189:3:89"},"nodeType":"YulFunctionCall","src":"3189:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3209:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3182:6:89"},"nodeType":"YulFunctionCall","src":"3182:30:89"},"nodeType":"YulExpressionStatement","src":"3182:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3232:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3243:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3228:3:89"},"nodeType":"YulFunctionCall","src":"3228:18:89"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"3248:34:89","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3221:6:89"},"nodeType":"YulFunctionCall","src":"3221:62:89"},"nodeType":"YulExpressionStatement","src":"3221:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3303:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3314:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:89"},"nodeType":"YulFunctionCall","src":"3299:18:89"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"3319:7:89","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3292:6:89"},"nodeType":"YulFunctionCall","src":"3292:35:89"},"nodeType":"YulExpressionStatement","src":"3292:35:89"},{"nodeType":"YulAssignment","src":"3336:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3348:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3359:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3344:3:89"},"nodeType":"YulFunctionCall","src":"3344:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3336:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3119:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3133:4:89","type":""}],"src":"2968:401:89"},{"body":{"nodeType":"YulBlock","src":"3548:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3565:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3576:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3558:6:89"},"nodeType":"YulFunctionCall","src":"3558:21:89"},"nodeType":"YulExpressionStatement","src":"3558:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3599:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3610:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3595:3:89"},"nodeType":"YulFunctionCall","src":"3595:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3615:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3588:6:89"},"nodeType":"YulFunctionCall","src":"3588:30:89"},"nodeType":"YulExpressionStatement","src":"3588:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3638:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3649:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3634:3:89"},"nodeType":"YulFunctionCall","src":"3634:18:89"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"3654:34:89","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3627:6:89"},"nodeType":"YulFunctionCall","src":"3627:62:89"},"nodeType":"YulExpressionStatement","src":"3627:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3709:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3720:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3705:3:89"},"nodeType":"YulFunctionCall","src":"3705:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"3725:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3698:6:89"},"nodeType":"YulFunctionCall","src":"3698:34:89"},"nodeType":"YulExpressionStatement","src":"3698:34:89"},{"nodeType":"YulAssignment","src":"3741:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3753:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3764:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3749:3:89"},"nodeType":"YulFunctionCall","src":"3749:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3741:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3525:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3539:4:89","type":""}],"src":"3374:400:89"},{"body":{"nodeType":"YulBlock","src":"3953:224:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3970:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3981:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3963:6:89"},"nodeType":"YulFunctionCall","src":"3963:21:89"},"nodeType":"YulExpressionStatement","src":"3963:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4004:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4015:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4000:3:89"},"nodeType":"YulFunctionCall","src":"4000:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4020:2:89","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3993:6:89"},"nodeType":"YulFunctionCall","src":"3993:30:89"},"nodeType":"YulExpressionStatement","src":"3993:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4043:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4054:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4039:3:89"},"nodeType":"YulFunctionCall","src":"4039:18:89"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"4059:34:89","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4032:6:89"},"nodeType":"YulFunctionCall","src":"4032:62:89"},"nodeType":"YulExpressionStatement","src":"4032:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4114:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4125:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4110:3:89"},"nodeType":"YulFunctionCall","src":"4110:18:89"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"4130:4:89","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4103:6:89"},"nodeType":"YulFunctionCall","src":"4103:32:89"},"nodeType":"YulExpressionStatement","src":"4103:32:89"},{"nodeType":"YulAssignment","src":"4144:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4156:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4167:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4152:3:89"},"nodeType":"YulFunctionCall","src":"4152:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4144:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3930:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3944:4:89","type":""}],"src":"3779:398:89"},{"body":{"nodeType":"YulBlock","src":"4356:179:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4373:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4384:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4366:6:89"},"nodeType":"YulFunctionCall","src":"4366:21:89"},"nodeType":"YulExpressionStatement","src":"4366:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4407:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4418:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4403:3:89"},"nodeType":"YulFunctionCall","src":"4403:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:89","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4396:6:89"},"nodeType":"YulFunctionCall","src":"4396:30:89"},"nodeType":"YulExpressionStatement","src":"4396:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4446:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4457:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4442:3:89"},"nodeType":"YulFunctionCall","src":"4442:18:89"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"4462:31:89","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4435:6:89"},"nodeType":"YulFunctionCall","src":"4435:59:89"},"nodeType":"YulExpressionStatement","src":"4435:59:89"},{"nodeType":"YulAssignment","src":"4503:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4515:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4526:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4511:3:89"},"nodeType":"YulFunctionCall","src":"4511:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4503:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4333:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4347:4:89","type":""}],"src":"4182:353:89"},{"body":{"nodeType":"YulBlock","src":"4714:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4731:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4742:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4724:6:89"},"nodeType":"YulFunctionCall","src":"4724:21:89"},"nodeType":"YulExpressionStatement","src":"4724:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4765:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4776:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4761:3:89"},"nodeType":"YulFunctionCall","src":"4761:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4781:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4754:6:89"},"nodeType":"YulFunctionCall","src":"4754:30:89"},"nodeType":"YulExpressionStatement","src":"4754:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4804:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4815:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4800:3:89"},"nodeType":"YulFunctionCall","src":"4800:18:89"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"4820:34:89","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4793:6:89"},"nodeType":"YulFunctionCall","src":"4793:62:89"},"nodeType":"YulExpressionStatement","src":"4793:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4875:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4886:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4871:3:89"},"nodeType":"YulFunctionCall","src":"4871:18:89"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"4891:7:89","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4864:6:89"},"nodeType":"YulFunctionCall","src":"4864:35:89"},"nodeType":"YulExpressionStatement","src":"4864:35:89"},{"nodeType":"YulAssignment","src":"4908:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4920:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4931:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4916:3:89"},"nodeType":"YulFunctionCall","src":"4916:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4908:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4691:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4705:4:89","type":""}],"src":"4540:401:89"},{"body":{"nodeType":"YulBlock","src":"5120:225:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5137:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5148:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5130:6:89"},"nodeType":"YulFunctionCall","src":"5130:21:89"},"nodeType":"YulExpressionStatement","src":"5130:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5171:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5182:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5167:3:89"},"nodeType":"YulFunctionCall","src":"5167:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5187:2:89","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5160:6:89"},"nodeType":"YulFunctionCall","src":"5160:30:89"},"nodeType":"YulExpressionStatement","src":"5160:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5210:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5221:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5206:3:89"},"nodeType":"YulFunctionCall","src":"5206:18:89"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"5226:34:89","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5199:6:89"},"nodeType":"YulFunctionCall","src":"5199:62:89"},"nodeType":"YulExpressionStatement","src":"5199:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5281:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5292:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5277:3:89"},"nodeType":"YulFunctionCall","src":"5277:18:89"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"5297:5:89","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5270:6:89"},"nodeType":"YulFunctionCall","src":"5270:33:89"},"nodeType":"YulExpressionStatement","src":"5270:33:89"},{"nodeType":"YulAssignment","src":"5312:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5324:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5335:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5320:3:89"},"nodeType":"YulFunctionCall","src":"5320:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5312:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5097:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5111:4:89","type":""}],"src":"4946:399:89"},{"body":{"nodeType":"YulBlock","src":"5524:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5541:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5552:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5534:6:89"},"nodeType":"YulFunctionCall","src":"5534:21:89"},"nodeType":"YulExpressionStatement","src":"5534:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5575:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5586:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5571:3:89"},"nodeType":"YulFunctionCall","src":"5571:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5591:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5564:6:89"},"nodeType":"YulFunctionCall","src":"5564:30:89"},"nodeType":"YulExpressionStatement","src":"5564:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5614:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5625:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5610:3:89"},"nodeType":"YulFunctionCall","src":"5610:18:89"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"5630:34:89","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5603:6:89"},"nodeType":"YulFunctionCall","src":"5603:62:89"},"nodeType":"YulExpressionStatement","src":"5603:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5685:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5696:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5681:3:89"},"nodeType":"YulFunctionCall","src":"5681:18:89"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"5701:8:89","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5674:6:89"},"nodeType":"YulFunctionCall","src":"5674:36:89"},"nodeType":"YulExpressionStatement","src":"5674:36:89"},{"nodeType":"YulAssignment","src":"5719:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5731:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5742:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5727:3:89"},"nodeType":"YulFunctionCall","src":"5727:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5719:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5501:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5515:4:89","type":""}],"src":"5350:402:89"}]},"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        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\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":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212205dd3dbf63f0acedbc1f6a7862077c7dcdf11c6e692c3a0c354c443a6f9e989ba64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x730 JUMP JUMPDEST PUSH2 0x24C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x292 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x188 CALLDATASIZE PUSH1 0x4 PUSH2 0x706 JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x78E JUMP JUMPDEST PUSH2 0x32F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DB SWAP1 PUSH2 0x7C1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x228 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1FD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x228 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x20B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x35A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x25A DUP6 DUP3 DUP6 PUSH2 0x47E JUMP JUMPDEST PUSH2 0x265 DUP6 DUP6 DUP6 PUSH2 0x4F8 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x283 DUP4 DUP4 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x7FB JUMP JUMPDEST PUSH2 0x35A JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1AF SWAP1 PUSH2 0x7C1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2AF DUP3 DUP7 PUSH2 0x32F JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x314 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x265 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x35A JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x240 DUP2 DUP6 DUP6 PUSH2 0x4F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x41D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48A DUP5 DUP5 PUSH2 0x32F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F2 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4E5 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 0x30B JUMP JUMPDEST PUSH2 0x4F2 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x35A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B 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 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x30B 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 0x4F2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x6C9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x6AD JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x701 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x722 DUP4 PUSH2 0x6EA 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 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74E DUP5 PUSH2 0x6EA JUMP JUMPDEST SWAP3 POP PUSH2 0x75C PUSH1 0x20 DUP6 ADD PUSH2 0x6EA 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 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x787 DUP3 PUSH2 0x6EA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7AA DUP4 PUSH2 0x6EA JUMP JUMPDEST SWAP2 POP PUSH2 0x7B8 PUSH1 0x20 DUP5 ADD PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x7D5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x7F5 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x246 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5D 0xD3 0xDB 0xF6 EXTCODEHASH EXP 0xCE 0xDB 0xC1 0xF6 0xA7 DUP7 KECCAK256 PUSH24 0xC7DCDF11C6E692C3A0C354C443A6F9E989BA64736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1401:11610:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:89;;1162:22;1144:41;;1132:2;1117:18;4431:197:31;1004:187:89;3242:106:31;3329:12;;3242:106;;;1342:25:89;;;1330:2;1315:18;3242:106:31;1196:177:89;5190:286:31;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1853:36:89;;1841:2;1826:18;3091:91:31;1711:184:89;5871:234:31;;;;;;:::i;:::-;;:::i;3406:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:31;3480:7;3506:18;;;;;;;;;;;;3406:125;2365:102;;;:::i;6592:427::-;;;;;;:::i;:::-;;:::i;3727:189::-;;;;;;:::i;:::-;;:::i;3974:149::-;;;;;;:::i;:::-;;:::i;2154:98::-;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:47;4568:32:31;719:10:47;4584:7:31;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;;:::o;5190:286::-;5317:4;719:10:47;5373:38:31;5389:4;719:10:47;5404:6:31;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:31;;5190:286;-1:-1:-1;;;;5190:286:31:o;5871:234::-;5959:4;719:10:47;6013:64:31;719:10:47;6029:7:31;6066:10;6038:25;719:10:47;6029:7:31;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;2365:102::-;2421:13;2453:7;2446:14;;;;;:::i;6592:427::-;6685:4;719:10:47;6685:4:31;6766:25;719:10:47;6783:7:31;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:31;;3170:2:89;6801:85:31;;;3152:21:89;3209:2;3189:18;;;3182:30;3248:34;3228:18;;;3221:62;-1:-1:-1;;;3299:18:89;;;3292:35;3344:19;;6801:85:31;;;;;;;;;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:47;3860:28:31;719:10:47;3877:2:31;3881:6;3860:9;:28::i;3974:149::-;-1:-1:-1;;;;;4089:18:31;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;10504:370::-;-1:-1:-1;;;;;10635:19:31;;10627:68;;;;-1:-1:-1;;;10627:68:31;;3576:2:89;10627:68:31;;;3558:21:89;3615:2;3595:18;;;3588:30;3654:34;3634:18;;;3627:62;-1:-1:-1;;;3705:18:89;;;3698:34;3749:19;;10627:68:31;3374:400:89;10627:68:31;-1:-1:-1;;;;;10713:21:31;;10705:68;;;;-1:-1:-1;;;10705:68:31;;3981:2:89;10705:68:31;;;3963:21:89;4020:2;4000:18;;;3993:30;4059:34;4039:18;;;4032:62;-1:-1:-1;;;4110:18:89;;;4103:32;4152:19;;10705:68:31;3779:398:89;10705:68:31;-1:-1:-1;;;;;10784:18:31;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1342:25:89;;;10835:32:31;;1315:18:89;10835:32:31;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:31;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:31;;4384:2:89;11404:68:31;;;4366:21:89;4423:2;4403:18;;;4396:30;4462:31;4442:18;;;4435:59;4511:18;;11404:68:31;4182:353:89;11404:68:31;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:31;;7591:68;;;;-1:-1:-1;;;7591:68:31;;4742:2:89;7591:68:31;;;4724:21:89;4781:2;4761:18;;;4754:30;4820:34;4800:18;;;4793:62;-1:-1:-1;;;4871:18:89;;;4864:35;4916:19;;7591:68:31;4540:401:89;7591:68:31;-1:-1:-1;;;;;7677:16:31;;7669:64;;;;-1:-1:-1;;;7669:64:31;;5148:2:89;7669:64:31;;;5130:21:89;5187:2;5167:18;;;5160:30;5226:34;5206:18;;;5199:62;-1:-1:-1;;;5277:18:89;;;5270:33;5320:19;;7669:64:31;4946:399:89;7669:64:31;-1:-1:-1;;;;;7815:15:31;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:31;;5552:2:89;7840:72:31;;;5534:21:89;5591:2;5571:18;;;5564:30;5630:34;5610:18;;;5603:62;-1:-1:-1;;;5681:18:89;;;5674:36;5727:19;;7840:72:31;5350:402:89;7840:72:31;-1:-1:-1;;;;;7946:15:31;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1342:25:89;;;8161:13:31;;8210:26;;1315:18:89;8210:26:31;;;;;;;8247:37;12180:121;14:548:89;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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:89;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:89:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:89:o;2091:260::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;2259:29;2278:9;2259:29;:::i;:::-;2249:39;;2307:38;2341:2;2330:9;2326:18;2307:38;:::i;:::-;2297:48;;2091:260;;;;;:::o;2356:380::-;2435:1;2431:12;;;;2478;;;2499:61;;2553:4;2545:6;2541:17;2531:27;;2499:61;2606:2;2598:6;2595:14;2575:18;2572:38;2569:161;;2652:10;2647:3;2643:20;2640:1;2633:31;2687:4;2684:1;2677:15;2715:4;2712:1;2705:15;2569:161;;2356:380;;;:::o;2741:222::-;2806:9;;;2827:10;;;2824:133;;;2879:10;2874:3;2870:20;2867:1;2860:31;2914:4;2911:1;2904:15;2942:4;2939:1;2932:15"},"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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":9361,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":9367,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":9369,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":9371,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":9373,"contract":"@openzeppelin/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":9361,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":9367,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":9369,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":9371,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":9373,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol:ERC20Burnable","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":9361,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":9367,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":9369,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":9371,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":9373,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":10800,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_nonces","offset":0,"slot":"5","type":"t_mapping(t_address,t_struct(Counter)14330_storage)"},{"astId":10808,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_PERMIT_TYPEHASH_DEPRECATED_SLOT","offset":0,"slot":"6","type":"t_bytes32"},{"astId":10080,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_delegates","offset":0,"slot":"7","type":"t_mapping(t_address,t_address)"},{"astId":10086,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_checkpoints","offset":0,"slot":"8","type":"t_mapping(t_address,t_array(t_struct(Checkpoint)10071_storage)dyn_storage)"},{"astId":10090,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_totalSupplyCheckpoints","offset":0,"slot":"9","type":"t_array(t_struct(Checkpoint)10071_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(Checkpoint)10071_storage)dyn_storage":{"base":"t_struct(Checkpoint)10071_storage","encoding":"dynamic_array","label":"struct ERC20Votes.Checkpoint[]","numberOfBytes":"32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_array(t_struct(Checkpoint)10071_storage)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct ERC20Votes.Checkpoint[])","numberOfBytes":"32","value":"t_array(t_struct(Checkpoint)10071_storage)dyn_storage"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Counter)14330_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct Counters.Counter)","numberOfBytes":"32","value":"t_struct(Counter)14330_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Checkpoint)10071_storage":{"encoding":"inplace","label":"struct ERC20Votes.Checkpoint","members":[{"astId":10068,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"fromBlock","offset":0,"slot":"0","type":"t_uint32"},{"astId":10070,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"votes","offset":4,"slot":"0","type":"t_uint224"}],"numberOfBytes":"32"},"t_struct(Counter)14330_storage":{"encoding":"inplace","label":"struct Counters.Counter","members":[{"astId":14329,"contract":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol:ERC20Votes","label":"_value","offset":0,"slot":"0","type":"t_uint256"}],"numberOfBytes":"32"},"t_uint224":{"encoding":"inplace","label":"uint224","numberOfBytes":"28"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[{"astId":9361,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":9367,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":9369,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":9371,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":9373,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":10800,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_nonces","offset":0,"slot":"5","type":"t_mapping(t_address,t_struct(Counter)14330_storage)"},{"astId":10808,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_PERMIT_TYPEHASH_DEPRECATED_SLOT","offset":0,"slot":"6","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Counter)14330_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct Counters.Counter)","numberOfBytes":"32","value":"t_struct(Counter)14330_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Counter)14330_storage":{"encoding":"inplace","label":"struct Counters.Counter","members":[{"astId":14329,"contract":"@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol:ERC20Permit","label":"_value","offset":0,"slot":"0","type":"t_uint256"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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":{"@_11048":{"entryPoint":null,"id":11048,"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":287,"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":453,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":536,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":393,"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:4144:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"210:776:89","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:89"},"nodeType":"YulFunctionCall","src":"261:12:89"},"nodeType":"YulExpressionStatement","src":"261:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:89"},"nodeType":"YulFunctionCall","src":"234:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:89"},"nodeType":"YulFunctionCall","src":"230:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:89"},"nodeType":"YulFunctionCall","src":"223:35:89"},"nodeType":"YulIf","src":"220:55:89"},{"nodeType":"YulVariableDeclaration","src":"284:23:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:89"},"nodeType":"YulFunctionCall","src":"294:13:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:89"},"nodeType":"YulFunctionCall","src":"330:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:89"},"nodeType":"YulFunctionCall","src":"326:18:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:89"},"nodeType":"YulFunctionCall","src":"369:18:89"},"nodeType":"YulExpressionStatement","src":"369:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:89"},"nodeType":"YulFunctionCall","src":"356:10:89"},"nodeType":"YulIf","src":"353:36:89"},{"nodeType":"YulVariableDeclaration","src":"398:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:89"},"nodeType":"YulFunctionCall","src":"408:7:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:89"},"nodeType":"YulFunctionCall","src":"438:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:89"},"nodeType":"YulFunctionCall","src":"498:13:89"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:89"},"nodeType":"YulFunctionCall","src":"494:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:89"},"nodeType":"YulFunctionCall","src":"490:31:89"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:89"},"nodeType":"YulFunctionCall","src":"486:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:89"},"nodeType":"YulFunctionCall","src":"474:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:89"},"nodeType":"YulFunctionCall","src":"588:18:89"},"nodeType":"YulExpressionStatement","src":"588:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:89"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:89"},"nodeType":"YulFunctionCall","src":"542:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:89"},"nodeType":"YulFunctionCall","src":"562:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:89"},"nodeType":"YulFunctionCall","src":"539:46:89"},"nodeType":"YulIf","src":"536:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:89"},"nodeType":"YulFunctionCall","src":"617:22:89"},"nodeType":"YulExpressionStatement","src":"617:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:89"},"nodeType":"YulFunctionCall","src":"648:18:89"},"nodeType":"YulExpressionStatement","src":"648:18:89"},{"nodeType":"YulVariableDeclaration","src":"675:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:89","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:89"},"nodeType":"YulFunctionCall","src":"737:12:89"},"nodeType":"YulExpressionStatement","src":"737:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:89"},"nodeType":"YulFunctionCall","src":"708:15:89"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:89"},"nodeType":"YulFunctionCall","src":"704:24:89"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:89"},"nodeType":"YulFunctionCall","src":"701:33:89"},"nodeType":"YulIf","src":"698:53:89"},{"nodeType":"YulVariableDeclaration","src":"760:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:89"},"nodeType":"YulFunctionCall","src":"850:14:89"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:89"},"nodeType":"YulFunctionCall","src":"846:23:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:89"},"nodeType":"YulFunctionCall","src":"881:14:89"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:89"},"nodeType":"YulFunctionCall","src":"877:23:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:89"},"nodeType":"YulFunctionCall","src":"871:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:89"},"nodeType":"YulFunctionCall","src":"839:63:89"},"nodeType":"YulExpressionStatement","src":"839:63:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:89"},"nodeType":"YulFunctionCall","src":"787:9:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:89","statements":[{"nodeType":"YulAssignment","src":"799:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:89"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:89"},"nodeType":"YulFunctionCall","src":"804:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:89","statements":[]},"src":"779:133:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:89"},"nodeType":"YulFunctionCall","src":"932:15:89"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:89"},"nodeType":"YulFunctionCall","src":"928:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:89"},"nodeType":"YulFunctionCall","src":"921:35:89"},"nodeType":"YulExpressionStatement","src":"921:35:89"},{"nodeType":"YulAssignment","src":"965:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:89"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:89","type":""}],"src":"146:840:89"},{"body":{"nodeType":"YulBlock","src":"1109:444:89","statements":[{"body":{"nodeType":"YulBlock","src":"1155:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1164:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1167:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1157:6:89"},"nodeType":"YulFunctionCall","src":"1157:12:89"},"nodeType":"YulExpressionStatement","src":"1157:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1130:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1126:3:89"},"nodeType":"YulFunctionCall","src":"1126:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1151:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1122:3:89"},"nodeType":"YulFunctionCall","src":"1122:32:89"},"nodeType":"YulIf","src":"1119:52:89"},{"nodeType":"YulVariableDeclaration","src":"1180:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1200:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1194:5:89"},"nodeType":"YulFunctionCall","src":"1194:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1184:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1219:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1237:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1241:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1233:3:89"},"nodeType":"YulFunctionCall","src":"1233:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1245:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1229:3:89"},"nodeType":"YulFunctionCall","src":"1229:18:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1223:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1274:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1283:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1286:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1276:6:89"},"nodeType":"YulFunctionCall","src":"1276:12:89"},"nodeType":"YulExpressionStatement","src":"1276:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1262:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1270:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1259:2:89"},"nodeType":"YulFunctionCall","src":"1259:14:89"},"nodeType":"YulIf","src":"1256:34:89"},{"nodeType":"YulAssignment","src":"1299:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1342:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1353:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1338:3:89"},"nodeType":"YulFunctionCall","src":"1338:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1362:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1309:28:89"},"nodeType":"YulFunctionCall","src":"1309:61:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1379:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1405:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1401:3:89"},"nodeType":"YulFunctionCall","src":"1401:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1395:5:89"},"nodeType":"YulFunctionCall","src":"1395:25:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1383:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1449:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1461:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:89"},"nodeType":"YulFunctionCall","src":"1451:12:89"},"nodeType":"YulExpressionStatement","src":"1451:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1435:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1445:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1432:2:89"},"nodeType":"YulFunctionCall","src":"1432:16:89"},"nodeType":"YulIf","src":"1429:36:89"},{"nodeType":"YulAssignment","src":"1474:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1517:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1528:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1513:3:89"},"nodeType":"YulFunctionCall","src":"1513:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1539:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1484:28:89"},"nodeType":"YulFunctionCall","src":"1484:63:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1474:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1067:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1078:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1090:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1098:6:89","type":""}],"src":"991:562:89"},{"body":{"nodeType":"YulBlock","src":"1613:325:89","statements":[{"nodeType":"YulAssignment","src":"1623:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1637:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1640:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1633:3:89"},"nodeType":"YulFunctionCall","src":"1633:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1623:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1654:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1684:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:89"},"nodeType":"YulFunctionCall","src":"1680:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1658:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1731:31:89","statements":[{"nodeType":"YulAssignment","src":"1733:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1747:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1755:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1743:3:89"},"nodeType":"YulFunctionCall","src":"1743:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1733:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1711:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1704:6:89"},"nodeType":"YulFunctionCall","src":"1704:26:89"},"nodeType":"YulIf","src":"1701:61:89"},{"body":{"nodeType":"YulBlock","src":"1821:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1842:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1849:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1854:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1845:3:89"},"nodeType":"YulFunctionCall","src":"1845:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1835:6:89"},"nodeType":"YulFunctionCall","src":"1835:31:89"},"nodeType":"YulExpressionStatement","src":"1835:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1889:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1879:6:89"},"nodeType":"YulFunctionCall","src":"1879:15:89"},"nodeType":"YulExpressionStatement","src":"1879:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1914:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1917:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1907:6:89"},"nodeType":"YulFunctionCall","src":"1907:15:89"},"nodeType":"YulExpressionStatement","src":"1907:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1777:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1800:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1808:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1797:2:89"},"nodeType":"YulFunctionCall","src":"1797:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1774:2:89"},"nodeType":"YulFunctionCall","src":"1774:38:89"},"nodeType":"YulIf","src":"1771:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1593:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1602:6:89","type":""}],"src":"1558:380:89"},{"body":{"nodeType":"YulBlock","src":"1999:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2019:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2009:6:89"},"nodeType":"YulFunctionCall","src":"2009:14:89"},"nodeType":"YulExpressionStatement","src":"2009:14:89"},{"nodeType":"YulAssignment","src":"2032:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2050:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2053:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2040:9:89"},"nodeType":"YulFunctionCall","src":"2040:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2032:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1982:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1990:4:89","type":""}],"src":"1943:121:89"},{"body":{"nodeType":"YulBlock","src":"2150:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"2183:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2197:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2207:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2201:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"2232:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2221:6:89"},"nodeType":"YulFunctionCall","src":"2221:17:89"},"nodeType":"YulExpressionStatement","src":"2221:17:89"},{"nodeType":"YulVariableDeclaration","src":"2251:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2273:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"2277:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2263:9:89"},"nodeType":"YulFunctionCall","src":"2263:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2255:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2295:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2318:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2328:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2335:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2347:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2331:3:89"},"nodeType":"YulFunctionCall","src":"2331:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2324:3:89"},"nodeType":"YulFunctionCall","src":"2324:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2314:3:89"},"nodeType":"YulFunctionCall","src":"2314:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2299:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:23:89","statements":[{"nodeType":"YulAssignment","src":"2391:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"2406:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2391:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2371:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2368:2:89"},"nodeType":"YulFunctionCall","src":"2368:20:89"},"nodeType":"YulIf","src":"2365:47:89"},{"nodeType":"YulVariableDeclaration","src":"2425:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2439:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2449:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2456:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2461:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2452:3:89"},"nodeType":"YulFunctionCall","src":"2452:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2445:3:89"},"nodeType":"YulFunctionCall","src":"2445:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2435:3:89"},"nodeType":"YulFunctionCall","src":"2435:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2429:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2479:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2492:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2483:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2577:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2586:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2593:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2579:6:89"},"nodeType":"YulFunctionCall","src":"2579:17:89"},"nodeType":"YulExpressionStatement","src":"2579:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2527:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"2534:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2524:2:89"},"nodeType":"YulFunctionCall","src":"2524:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2538:26:89","statements":[{"nodeType":"YulAssignment","src":"2540:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2553:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2560:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2549:3:89"},"nodeType":"YulFunctionCall","src":"2549:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2540:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2520:3:89","statements":[]},"src":"2516:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2166:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2171:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2163:2:89"},"nodeType":"YulFunctionCall","src":"2163:11:89"},"nodeType":"YulIf","src":"2160:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2122:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2129:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2134:10:89","type":""}],"src":"2069:545:89"},{"body":{"nodeType":"YulBlock","src":"2704:81:89","statements":[{"nodeType":"YulAssignment","src":"2714:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2729:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2747:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2750:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2743:3:89"},"nodeType":"YulFunctionCall","src":"2743:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2760:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2756:3:89"},"nodeType":"YulFunctionCall","src":"2756:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2739:3:89"},"nodeType":"YulFunctionCall","src":"2739:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2735:3:89"},"nodeType":"YulFunctionCall","src":"2735:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2725:3:89"},"nodeType":"YulFunctionCall","src":"2725:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2774:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:89"},"nodeType":"YulFunctionCall","src":"2767:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2722:2:89"},"nodeType":"YulFunctionCall","src":"2722:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2714:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2681:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2687:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2695:4:89","type":""}],"src":"2619:166:89"},{"body":{"nodeType":"YulBlock","src":"2886:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2896:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2916:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2910:5:89"},"nodeType":"YulFunctionCall","src":"2910:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2900:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2963:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2965:16:89"},"nodeType":"YulFunctionCall","src":"2965:18:89"},"nodeType":"YulExpressionStatement","src":"2965:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2935:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2951:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2955:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2947:3:89"},"nodeType":"YulFunctionCall","src":"2947:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2959:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2943:3:89"},"nodeType":"YulFunctionCall","src":"2943:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2932:2:89"},"nodeType":"YulFunctionCall","src":"2932:30:89"},"nodeType":"YulIf","src":"2929:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3038:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3076:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3070:5:89"},"nodeType":"YulFunctionCall","src":"3070:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3044:25:89"},"nodeType":"YulFunctionCall","src":"3044:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3084:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2994:43:89"},"nodeType":"YulFunctionCall","src":"2994:97:89"},"nodeType":"YulExpressionStatement","src":"2994:97:89"},{"nodeType":"YulVariableDeclaration","src":"3100:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3117:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3104:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3127:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3146:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3131:11:89","type":""}]},{"nodeType":"YulAssignment","src":"3159:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3172:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3159:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3229:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3243:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3262:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3274:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3270:3:89"},"nodeType":"YulFunctionCall","src":"3270:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3258:3:89"},"nodeType":"YulFunctionCall","src":"3258:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3247:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3291:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3335:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3305:29:89"},"nodeType":"YulFunctionCall","src":"3305:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3295:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3353:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3362:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3357:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3440:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3465:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3483:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3488:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3479:3:89"},"nodeType":"YulFunctionCall","src":"3479:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3473:5:89"},"nodeType":"YulFunctionCall","src":"3473:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3458:6:89"},"nodeType":"YulFunctionCall","src":"3458:42:89"},"nodeType":"YulExpressionStatement","src":"3458:42:89"},{"nodeType":"YulAssignment","src":"3517:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3531:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3539:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:89"},"nodeType":"YulFunctionCall","src":"3527:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3517:6:89"}]},{"nodeType":"YulAssignment","src":"3558:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3575:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3586:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3571:3:89"},"nodeType":"YulFunctionCall","src":"3571:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3558:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3387:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3390:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3384:2:89"},"nodeType":"YulFunctionCall","src":"3384:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3399:28:89","statements":[{"nodeType":"YulAssignment","src":"3401:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3410:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3413:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:89"},"nodeType":"YulFunctionCall","src":"3406:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3401:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"3380:3:89","statements":[]},"src":"3376:236:89"},{"body":{"nodeType":"YulBlock","src":"3660:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3678:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3705:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3710:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3701:3:89"},"nodeType":"YulFunctionCall","src":"3701:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3695:5:89"},"nodeType":"YulFunctionCall","src":"3695:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3682:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3745:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3757:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3784:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3787:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3780:3:89"},"nodeType":"YulFunctionCall","src":"3780:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3796:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3776:3:89"},"nodeType":"YulFunctionCall","src":"3776:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3806:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3802:3:89"},"nodeType":"YulFunctionCall","src":"3802:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3772:3:89"},"nodeType":"YulFunctionCall","src":"3772:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3768:3:89"},"nodeType":"YulFunctionCall","src":"3768:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3753:3:89"},"nodeType":"YulFunctionCall","src":"3753:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3738:6:89"},"nodeType":"YulFunctionCall","src":"3738:74:89"},"nodeType":"YulExpressionStatement","src":"3738:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3631:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3640:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3628:2:89"},"nodeType":"YulFunctionCall","src":"3628:19:89"},"nodeType":"YulIf","src":"3625:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3846:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3860:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3863:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3856:3:89"},"nodeType":"YulFunctionCall","src":"3856:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3872:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3852:3:89"},"nodeType":"YulFunctionCall","src":"3852:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3839:6:89"},"nodeType":"YulFunctionCall","src":"3839:36:89"},"nodeType":"YulExpressionStatement","src":"3839:36:89"}]},"nodeType":"YulCase","src":"3222:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3227:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3902:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3916:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3929:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3920:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3965:67:89","statements":[{"nodeType":"YulAssignment","src":"3983:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4002:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4007:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3998:3:89"},"nodeType":"YulFunctionCall","src":"3998:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3992:5:89"},"nodeType":"YulFunctionCall","src":"3992:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3983:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3946:6:89"},"nodeType":"YulIf","src":"3943:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4052:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4111:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"4118:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4058:52:89"},"nodeType":"YulFunctionCall","src":"4058:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4045:6:89"},"nodeType":"YulFunctionCall","src":"4045:81:89"},"nodeType":"YulExpressionStatement","src":"4045:81:89"}]},"nodeType":"YulCase","src":"3894:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3202:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3210:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3199:2:89"},"nodeType":"YulFunctionCall","src":"3199:14:89"},"nodeType":"YulSwitch","src":"3192:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2871:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"2877:3:89","type":""}],"src":"2790:1352:89"}]},"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        mstore(add(add(memPtr, _1), _4), 0)\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":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040516200149d3803806200149d83398101604081905262000034916200011f565b600062000042838262000218565b50600162000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6111a980620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610cf9565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610d66565b61012461011f366004610d79565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610dae565b61030a565b005b61014f61015f366004610dd8565b610424565b61014f610172366004610dd8565b610455565b610124610185366004610d79565b610470565b61019d610198366004610e14565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610e2f565b610565565b61014f6101d4366004610e81565b610574565b6101046101e7366004610d79565b6105ac565b6100e76101fa366004610f5d565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610f90565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610f90565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152600460205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610fca565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152600260205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610f90565b6105703383836108ee565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610fca565b6105a6848484846109bc565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f8846109ef565b604051602001610609929190611017565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107b65760405162461bcd60e51b815260040161037e90611046565b6001600160a01b0382166108185760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108258383836001610a82565b826001600160a01b031661083882610470565b6001600160a01b03161461085e5760405162461bcd60e51b815260040161037e90611046565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361094f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109c784848461077d565b6109d384848484610b0a565b6105a65760405162461bcd60e51b815260040161037e9061108b565b606060006109fc83610c0b565b600101905060008167ffffffffffffffff811115610a1c57610a1c610e6b565b6040519080825280601f01601f191660200182016040528015610a46576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5057509392505050565b60018111156105a6576001600160a01b03841615610ac8576001600160a01b03841660009081526003602052604081208054839290610ac29084906110f3565b90915550505b6001600160a01b038316156105a6576001600160a01b03831660009081526003602052604081208054839290610aff908490611106565b909155505050505050565b60006001600160a01b0384163b15610c0057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b4e903390899088908890600401611119565b6020604051808303816000875af1925050508015610b89575060408051601f3d908101601f19168201909252610b8691810190611156565b60015b610be6573d808015610bb7576040519150601f19603f3d011682016040523d82523d6000602084013e610bbc565b606091505b508051600003610bde5760405162461bcd60e51b815260040161037e9061108b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c4a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c76576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c9457662386f26fc10000830492506010015b6305f5e1008310610cac576305f5e100830492506008015b6127108310610cc057612710830492506004015b60648310610cd2576064830492506002015b600a831061024b5760010192915050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610d0b57600080fd5b813561061981610ce3565b60005b83811015610d31578181015183820152602001610d19565b50506000910152565b60008151808452610d52816020860160208601610d16565b601f01601f19169290920160200192915050565b6020815260006106196020830184610d3a565b600060208284031215610d8b57600080fd5b5035919050565b80356001600160a01b0381168114610da957600080fd5b919050565b60008060408385031215610dc157600080fd5b610dca83610d92565b946020939093013593505050565b600080600060608486031215610ded57600080fd5b610df684610d92565b9250610e0460208501610d92565b9150604084013590509250925092565b600060208284031215610e2657600080fd5b61061982610d92565b60008060408385031215610e4257600080fd5b610e4b83610d92565b915060208301358015158114610e6057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e9757600080fd5b610ea085610d92565b9350610eae60208601610d92565b925060408501359150606085013567ffffffffffffffff80821115610ed257600080fd5b818701915087601f830112610ee657600080fd5b813581811115610ef857610ef8610e6b565b604051601f8201601f19908116603f01168101908382118183101715610f2057610f20610e6b565b816040528281528a6020848701011115610f3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f7057600080fd5b610f7983610d92565b9150610f8760208401610d92565b90509250929050565b600181811c90821680610fa457607f821691505b602082108103610fc457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351611029818460208801610d16565b83519083019061103d818360208801610d16565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b6110dd565b8082018082111561024b5761024b6110dd565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061114c90830184610d3a565b9695505050505050565b60006020828403121561116857600080fd5b815161061981610ce356fea264697066735822122074d767db8da757096bfdcabb4947ecae2ceceec549326376ce67aa72c1e90d9c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x149D CODESIZE SUB DUP1 PUSH3 0x149D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x11F JUMP JUMPDEST PUSH1 0x0 PUSH3 0x42 DUP4 DUP3 PUSH3 0x218 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x51 DUP3 DUP3 PUSH3 0x218 JUMP JUMPDEST POP POP POP PUSH3 0x2E4 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 PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x14B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x159 DUP7 DUP4 DUP8 ADD PUSH3 0x70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x17F 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 0x19E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1BF 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 0x213 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 0x1EE JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x20F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1FA 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 0x234 JUMPI PUSH3 0x234 PUSH3 0x5A JUMP JUMPDEST PUSH3 0x24C DUP2 PUSH3 0x245 DUP5 SLOAD PUSH3 0x189 JUMP JUMPDEST DUP5 PUSH3 0x1C5 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x284 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x26B 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 0x20F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x294 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2D4 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 0x11A9 DUP1 PUSH3 0x2F4 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 0xCF 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 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF9 JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xDAE JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x424 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x455 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x556 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x565 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xF5D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x230 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x24B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 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 0x28C SWAP1 PUSH2 0xF90 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D9 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 0x2BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP3 PUSH2 0x64E 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 0x315 DUP3 PUSH2 0x470 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 0x387 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3A3 JUMPI POP PUSH2 0x3A3 DUP2 CALLER PUSH2 0x620 JUMP JUMPDEST PUSH2 0x415 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 0x37E JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 PUSH2 0x6B0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x42E CALLER DUP3 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x574 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 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E 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 0x260 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH2 0x570 CALLER DUP4 DUP4 PUSH2 0x8EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x57E CALLER DUP4 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x5A6 DUP5 DUP5 DUP5 DUP5 PUSH2 0x9BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B7 DUP3 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CE 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 0x5EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x619 JUMP JUMPDEST DUP1 PUSH2 0x5F8 DUP5 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x609 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E5 DUP3 PUSH2 0x470 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 0x72A DUP4 PUSH2 0x470 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 0x751 JUMPI POP PUSH2 0x751 DUP2 DUP6 PUSH2 0x620 JUMP JUMPDEST DUP1 PUSH2 0x775 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76A DUP5 PUSH2 0x2E3 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 0x790 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST PUSH2 0x825 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xA82 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x838 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x85E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB 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 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x94F 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 0x37E 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 0x9C7 DUP5 DUP5 DUP5 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x9D3 DUP5 DUP5 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9FC DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH2 0xE6B 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 0xA46 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 PUSH2 0xA50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAC2 SWAP1 DUP5 SWAP1 PUSH2 0x10F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAFF SWAP1 DUP5 SWAP1 PUSH2 0x1106 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB4E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1119 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB89 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB86 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBE6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xBB7 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 0xBBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x775 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC4A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC76 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC94 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xCAC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xCC0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCD2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD31 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD19 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD52 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD16 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 0x619 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD8B 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 0xDA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDCA DUP4 PUSH2 0xD92 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 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDF6 DUP5 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH2 0xE04 PUSH1 0x20 DUP6 ADD PUSH2 0xD92 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 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x619 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE4B DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA0 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP4 POP PUSH2 0xEAE PUSH1 0x20 DUP7 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0xE6B 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 0xF20 JUMPI PUSH2 0xF20 PUSH2 0xE6B JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF39 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 0xF70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF79 DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH2 0xF87 PUSH1 0x20 DUP5 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFA4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC4 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1029 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x103D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x114C SWAP1 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH21 0xD767DB8DA757096BFDCABB4947ECAE2CECEEC54932 PUSH4 0x76CE67AA PUSH19 0xC1E90D9C64736F6C6343000811003300000000 ","sourceMap":"628:16327:38:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:5;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:38;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;628:16327;;14:127:89;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;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:89;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:89;;;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;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:89:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:89;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:89;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:89;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:89;;;3992:26;3943:89;-1:-1:-1;;2747:1:89;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:89;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:89;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:89;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:89:o;:::-;628:16327:38;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_11929":{"entryPoint":null,"id":11929,"parameterSlots":4,"returnSlots":0},"@_approve_11762":{"entryPoint":1712,"id":11762,"parameterSlots":2,"returnSlots":0},"@_baseURI_11199":{"entryPoint":null,"id":11199,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_11916":{"entryPoint":2690,"id":11916,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_11870":{"entryPoint":2826,"id":11870,"parameterSlots":4,"returnSlots":1},"@_exists_11431":{"entryPoint":null,"id":11431,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_11465":{"entryPoint":1822,"id":11465,"parameterSlots":2,"returnSlots":1},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_ownerOf_11413":{"entryPoint":null,"id":11413,"parameterSlots":1,"returnSlots":1},"@_requireMinted_11808":{"entryPoint":1614,"id":11808,"parameterSlots":1,"returnSlots":0},"@_safeTransfer_11400":{"entryPoint":2492,"id":11400,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_11794":{"entryPoint":2286,"id":11794,"parameterSlots":3,"returnSlots":0},"@_transfer_11738":{"entryPoint":1917,"id":11738,"parameterSlots":3,"returnSlots":0},"@approve_11242":{"entryPoint":778,"id":11242,"parameterSlots":2,"returnSlots":0},"@balanceOf_11103":{"entryPoint":1232,"id":11103,"parameterSlots":1,"returnSlots":1},"@getApproved_11260":{"entryPoint":739,"id":11260,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_11295":{"entryPoint":1568,"id":11295,"parameterSlots":2,"returnSlots":1},"@isContract_12619":{"entryPoint":null,"id":12619,"parameterSlots":1,"returnSlots":1},"@log10_16040":{"entryPoint":3083,"id":16040,"parameterSlots":1,"returnSlots":1},"@name_11141":{"entryPoint":593,"id":11141,"parameterSlots":0,"returnSlots":1},"@ownerOf_11131":{"entryPoint":1136,"id":11131,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_11341":{"entryPoint":1109,"id":11341,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_11371":{"entryPoint":1396,"id":11371,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_11277":{"entryPoint":1381,"id":11277,"parameterSlots":2,"returnSlots":0},"@supportsInterface_11079":{"entryPoint":511,"id":11079,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15325":{"entryPoint":null,"id":15325,"parameterSlots":1,"returnSlots":1},"@symbol_11151":{"entryPoint":1366,"id":11151,"parameterSlots":0,"returnSlots":1},"@toString_14456":{"entryPoint":2543,"id":14456,"parameterSlots":1,"returnSlots":1},"@tokenURI_11190":{"entryPoint":1452,"id":11190,"parameterSlots":1,"returnSlots":1},"@transferFrom_11322":{"entryPoint":1060,"id":11322,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":3474,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3933,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3544,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":3713,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3631,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3502,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":4438,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3449,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":3386,"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":4119,"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":4377,"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":3430,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4042,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4235,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4166,"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},"checked_add_t_uint256":{"entryPoint":4358,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":4339,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3350,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":3984,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4317,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3691,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":3299,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10527:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:89"},"nodeType":"YulFunctionCall","src":"125:12:89"},"nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:89"},"nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:89"},"nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:89"},"nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:89"},"nodeType":"YulFunctionCall","src":"71:51:89"},"nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:89"},"nodeType":"YulFunctionCall","src":"267:12:89"},"nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:89"},"nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:89"},"nodeType":"YulFunctionCall","src":"232:32:89"},"nodeType":"YulIf","src":"229:52:89"},{"nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:89"},"nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:89"},"nodeType":"YulFunctionCall","src":"335:30:89"},"nodeType":"YulExpressionStatement","src":"335:30:89"},{"nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nodeType":"YulBlock","src":"495:92:89","statements":[{"nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:89"},"nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:89"},"nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:89"},"nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:89"},"nodeType":"YulFunctionCall","src":"540:41:89"},"nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nodeType":"YulBlock","src":"658:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:89"},"nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:89"},"nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"771:5:89"},"nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"751:6:89"},"nodeType":"YulFunctionCall","src":"751:39:89"},"nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"695:2:89"},"nodeType":"YulFunctionCall","src":"695:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"709:19:89","statements":[{"nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:89"},"nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:89"},"nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:89"},"nodeType":"YulFunctionCall","src":"809:27:89"},"nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nodeType":"YulBlock","src":"897:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"921:5:89"},"nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"942:6:89"},"nodeType":"YulFunctionCall","src":"942:19:89"},"nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1005:3:89"},"nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:89"},"nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"970:34:89"},"nodeType":"YulFunctionCall","src":"970:76:89"},"nodeType":"YulExpressionStatement","src":"970:76:89"},{"nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1079:3:89"},"nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1096:3:89"},"nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1075:3:89"},"nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:89"},"nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1062:3:89"},"nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1254:6:89"},"nodeType":"YulFunctionCall","src":"1254:21:89"},"nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:89"},"nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1292:17:89"},"nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nodeType":"YulBlock","src":"1418:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1466:6:89"},"nodeType":"YulFunctionCall","src":"1466:12:89"},"nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1435:3:89"},"nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1431:3:89"},"nodeType":"YulFunctionCall","src":"1431:32:89"},"nodeType":"YulIf","src":"1428:52:89"},{"nodeType":"YulAssignment","src":"1489:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1499:12:89"},"nodeType":"YulFunctionCall","src":"1499:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1489:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:180:89"},{"body":{"nodeType":"YulBlock","src":"1634:102:89","statements":[{"nodeType":"YulAssignment","src":"1644:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:89"},"nodeType":"YulFunctionCall","src":"1652:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1644:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1717:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1713:3:89"},"nodeType":"YulFunctionCall","src":"1713:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1726:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1709:3:89"},"nodeType":"YulFunctionCall","src":"1709:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1697:3:89"},"nodeType":"YulFunctionCall","src":"1697:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:89"},"nodeType":"YulFunctionCall","src":"1679:51:89"},"nodeType":"YulExpressionStatement","src":"1679:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1614:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1625:4:89","type":""}],"src":"1533:203:89"},{"body":{"nodeType":"YulBlock","src":"1790:124:89","statements":[{"nodeType":"YulAssignment","src":"1800:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1822:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1809:12:89"},"nodeType":"YulFunctionCall","src":"1809:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1800:5:89"}]},{"body":{"nodeType":"YulBlock","src":"1892:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1901:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1894:6:89"},"nodeType":"YulFunctionCall","src":"1894:12:89"},"nodeType":"YulExpressionStatement","src":"1894:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1882:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1873:3:89"},"nodeType":"YulFunctionCall","src":"1873:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1869:3:89"},"nodeType":"YulFunctionCall","src":"1869:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1858:3:89"},"nodeType":"YulFunctionCall","src":"1858:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1848:2:89"},"nodeType":"YulFunctionCall","src":"1848:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1841:6:89"},"nodeType":"YulFunctionCall","src":"1841:50:89"},"nodeType":"YulIf","src":"1838:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1780:5:89","type":""}],"src":"1741:173:89"},{"body":{"nodeType":"YulBlock","src":"2006:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"2052:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:89"},"nodeType":"YulFunctionCall","src":"2054:12:89"},"nodeType":"YulExpressionStatement","src":"2054:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2023:3:89"},"nodeType":"YulFunctionCall","src":"2023:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2048:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2019:3:89"},"nodeType":"YulFunctionCall","src":"2019:32:89"},"nodeType":"YulIf","src":"2016:52:89"},{"nodeType":"YulAssignment","src":"2077:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2087:18:89"},"nodeType":"YulFunctionCall","src":"2087:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2077:6:89"}]},{"nodeType":"YulAssignment","src":"2125:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:89"},"nodeType":"YulFunctionCall","src":"2148:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2135:12:89"},"nodeType":"YulFunctionCall","src":"2135:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2125:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1964:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1975:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1987:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1995:6:89","type":""}],"src":"1919:254:89"},{"body":{"nodeType":"YulBlock","src":"2282:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"2328:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2337:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2330:6:89"},"nodeType":"YulFunctionCall","src":"2330:12:89"},"nodeType":"YulExpressionStatement","src":"2330:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2303:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2312:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2299:3:89"},"nodeType":"YulFunctionCall","src":"2299:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2324:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2295:3:89"},"nodeType":"YulFunctionCall","src":"2295:32:89"},"nodeType":"YulIf","src":"2292:52:89"},{"nodeType":"YulAssignment","src":"2353:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2382:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2363:18:89"},"nodeType":"YulFunctionCall","src":"2363:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:89"}]},{"nodeType":"YulAssignment","src":"2401:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2434:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2445:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2430:3:89"},"nodeType":"YulFunctionCall","src":"2430:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2411:18:89"},"nodeType":"YulFunctionCall","src":"2411:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2401:6:89"}]},{"nodeType":"YulAssignment","src":"2458:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2485:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2496:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:89"},"nodeType":"YulFunctionCall","src":"2481:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2468:12:89"},"nodeType":"YulFunctionCall","src":"2468:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2458:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2232:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2243:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2255:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2263:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2271:6:89","type":""}],"src":"2178:328:89"},{"body":{"nodeType":"YulBlock","src":"2581:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"2627:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2636:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2639:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2629:6:89"},"nodeType":"YulFunctionCall","src":"2629:12:89"},"nodeType":"YulExpressionStatement","src":"2629:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2602:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2611:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2598:3:89"},"nodeType":"YulFunctionCall","src":"2598:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2623:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2594:3:89"},"nodeType":"YulFunctionCall","src":"2594:32:89"},"nodeType":"YulIf","src":"2591:52:89"},{"nodeType":"YulAssignment","src":"2652:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2662:18:89"},"nodeType":"YulFunctionCall","src":"2662:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2652:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2547:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2558:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2570:6:89","type":""}],"src":"2511:186:89"},{"body":{"nodeType":"YulBlock","src":"2803:76:89","statements":[{"nodeType":"YulAssignment","src":"2813:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2825:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2836:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2821:3:89"},"nodeType":"YulFunctionCall","src":"2821:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2813:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2866:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2848:6:89"},"nodeType":"YulFunctionCall","src":"2848:25:89"},"nodeType":"YulExpressionStatement","src":"2848:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2772:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2783:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2794:4:89","type":""}],"src":"2702:177:89"},{"body":{"nodeType":"YulBlock","src":"2968:263:89","statements":[{"body":{"nodeType":"YulBlock","src":"3014:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3023:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3026:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3016:6:89"},"nodeType":"YulFunctionCall","src":"3016:12:89"},"nodeType":"YulExpressionStatement","src":"3016:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2989:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2998:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2985:3:89"},"nodeType":"YulFunctionCall","src":"2985:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2981:3:89"},"nodeType":"YulFunctionCall","src":"2981:32:89"},"nodeType":"YulIf","src":"2978:52:89"},{"nodeType":"YulAssignment","src":"3039:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3068:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3049:18:89"},"nodeType":"YulFunctionCall","src":"3049:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3087:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:89"},"nodeType":"YulFunctionCall","src":"3113:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3100:12:89"},"nodeType":"YulFunctionCall","src":"3100:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3091:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3194:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3187:6:89"},"nodeType":"YulFunctionCall","src":"3187:12:89"},"nodeType":"YulExpressionStatement","src":"3187:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3154:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3168:6:89"},"nodeType":"YulFunctionCall","src":"3168:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3161:6:89"},"nodeType":"YulFunctionCall","src":"3161:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3151:2:89"},"nodeType":"YulFunctionCall","src":"3151:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3144:6:89"},"nodeType":"YulFunctionCall","src":"3144:40:89"},"nodeType":"YulIf","src":"3141:60:89"},{"nodeType":"YulAssignment","src":"3210:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"3220:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3210:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2926:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2937:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2949:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2957:6:89","type":""}],"src":"2884:347:89"},{"body":{"nodeType":"YulBlock","src":"3268:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3285:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3292:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3297:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3288:3:89"},"nodeType":"YulFunctionCall","src":"3288:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3278:6:89"},"nodeType":"YulFunctionCall","src":"3278:31:89"},"nodeType":"YulExpressionStatement","src":"3278:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3325:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3318:6:89"},"nodeType":"YulFunctionCall","src":"3318:15:89"},"nodeType":"YulExpressionStatement","src":"3318:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:89"},"nodeType":"YulFunctionCall","src":"3342:15:89"},"nodeType":"YulExpressionStatement","src":"3342:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3236:127:89"},{"body":{"nodeType":"YulBlock","src":"3498:1008:89","statements":[{"body":{"nodeType":"YulBlock","src":"3545:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3554:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3557:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3547:6:89"},"nodeType":"YulFunctionCall","src":"3547:12:89"},"nodeType":"YulExpressionStatement","src":"3547:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3519:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3515:3:89"},"nodeType":"YulFunctionCall","src":"3515:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3540:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3511:3:89"},"nodeType":"YulFunctionCall","src":"3511:33:89"},"nodeType":"YulIf","src":"3508:53:89"},{"nodeType":"YulAssignment","src":"3570:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3599:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3580:18:89"},"nodeType":"YulFunctionCall","src":"3580:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3570:6:89"}]},{"nodeType":"YulAssignment","src":"3618:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3651:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3662:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3647:3:89"},"nodeType":"YulFunctionCall","src":"3647:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3628:18:89"},"nodeType":"YulFunctionCall","src":"3628:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3618:6:89"}]},{"nodeType":"YulAssignment","src":"3675:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:89"},"nodeType":"YulFunctionCall","src":"3698:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3685:12:89"},"nodeType":"YulFunctionCall","src":"3685:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3675:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3726:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3757:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3768:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3753:3:89"},"nodeType":"YulFunctionCall","src":"3753:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3740:12:89"},"nodeType":"YulFunctionCall","src":"3740:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3730:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3781:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3791:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3785:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3836:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3845:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3848:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3838:6:89"},"nodeType":"YulFunctionCall","src":"3838:12:89"},"nodeType":"YulExpressionStatement","src":"3838:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3824:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3832:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3821:2:89"},"nodeType":"YulFunctionCall","src":"3821:14:89"},"nodeType":"YulIf","src":"3818:34:89"},{"nodeType":"YulVariableDeclaration","src":"3861:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3875:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"3886:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3871:3:89"},"nodeType":"YulFunctionCall","src":"3871:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3865:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3941:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3950:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3953:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3943:6:89"},"nodeType":"YulFunctionCall","src":"3943:12:89"},"nodeType":"YulExpressionStatement","src":"3943:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3920:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3924:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3916:3:89"},"nodeType":"YulFunctionCall","src":"3916:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3931:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3912:3:89"},"nodeType":"YulFunctionCall","src":"3912:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3905:6:89"},"nodeType":"YulFunctionCall","src":"3905:35:89"},"nodeType":"YulIf","src":"3902:55:89"},{"nodeType":"YulVariableDeclaration","src":"3966:26:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3989:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3976:12:89"},"nodeType":"YulFunctionCall","src":"3976:16:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"3970:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4015:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4017:16:89"},"nodeType":"YulFunctionCall","src":"4017:18:89"},"nodeType":"YulExpressionStatement","src":"4017:18:89"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4007:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4011:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4004:2:89"},"nodeType":"YulFunctionCall","src":"4004:10:89"},"nodeType":"YulIf","src":"4001:36:89"},{"nodeType":"YulVariableDeclaration","src":"4046:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4060:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4056:3:89"},"nodeType":"YulFunctionCall","src":"4056:7:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4050:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4072:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4092:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4086:5:89"},"nodeType":"YulFunctionCall","src":"4086:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"4076:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4104:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4126:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4150:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4154:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4146:3:89"},"nodeType":"YulFunctionCall","src":"4146:13:89"},{"name":"_4","nodeType":"YulIdentifier","src":"4161:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4142:3:89"},"nodeType":"YulFunctionCall","src":"4142:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"4166:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:89"},"nodeType":"YulFunctionCall","src":"4138:31:89"},{"name":"_4","nodeType":"YulIdentifier","src":"4171:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4134:3:89"},"nodeType":"YulFunctionCall","src":"4134:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4122:3:89"},"nodeType":"YulFunctionCall","src":"4122:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"4108:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4234:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"4236:16:89"},"nodeType":"YulFunctionCall","src":"4236:18:89"},"nodeType":"YulExpressionStatement","src":"4236:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4193:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4205:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4190:2:89"},"nodeType":"YulFunctionCall","src":"4190:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4213:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"4225:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4210:2:89"},"nodeType":"YulFunctionCall","src":"4210:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4187:2:89"},"nodeType":"YulFunctionCall","src":"4187:46:89"},"nodeType":"YulIf","src":"4184:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"4276:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:89"},"nodeType":"YulFunctionCall","src":"4265:22:89"},"nodeType":"YulExpressionStatement","src":"4265:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4303:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4311:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4296:6:89"},"nodeType":"YulFunctionCall","src":"4296:18:89"},"nodeType":"YulExpressionStatement","src":"4296:18:89"},{"body":{"nodeType":"YulBlock","src":"4360:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4369:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4372:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4362:6:89"},"nodeType":"YulFunctionCall","src":"4362:12:89"},"nodeType":"YulExpressionStatement","src":"4362:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4337:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4341:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:89"},"nodeType":"YulFunctionCall","src":"4333:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"4346:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4329:3:89"},"nodeType":"YulFunctionCall","src":"4329:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4351:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4326:2:89"},"nodeType":"YulFunctionCall","src":"4326:33:89"},"nodeType":"YulIf","src":"4323:53:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4402:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4410:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:89"},"nodeType":"YulFunctionCall","src":"4398:15:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4419:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4423:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:89"},"nodeType":"YulFunctionCall","src":"4415:11:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4428:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4385:12:89"},"nodeType":"YulFunctionCall","src":"4385:46:89"},"nodeType":"YulExpressionStatement","src":"4385:46:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"4455:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"4463:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4451:3:89"},"nodeType":"YulFunctionCall","src":"4451:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"4468:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4447:3:89"},"nodeType":"YulFunctionCall","src":"4447:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"4473:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4440:6:89"},"nodeType":"YulFunctionCall","src":"4440:35:89"},"nodeType":"YulExpressionStatement","src":"4440:35:89"},{"nodeType":"YulAssignment","src":"4484:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"4494:6:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4484:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3440:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3451:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3463:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3471:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3479:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3487:6:89","type":""}],"src":"3368:1138:89"},{"body":{"nodeType":"YulBlock","src":"4598:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"4644:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4653:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4656:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4646:6:89"},"nodeType":"YulFunctionCall","src":"4646:12:89"},"nodeType":"YulExpressionStatement","src":"4646:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4619:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4628:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4615:3:89"},"nodeType":"YulFunctionCall","src":"4615:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4640:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4611:3:89"},"nodeType":"YulFunctionCall","src":"4611:32:89"},"nodeType":"YulIf","src":"4608:52:89"},{"nodeType":"YulAssignment","src":"4669:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4679:18:89"},"nodeType":"YulFunctionCall","src":"4679:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4669:6:89"}]},{"nodeType":"YulAssignment","src":"4717:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4750:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4761:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4746:3:89"},"nodeType":"YulFunctionCall","src":"4746:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4727:18:89"},"nodeType":"YulFunctionCall","src":"4727:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4717:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4556:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4567:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4579:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4587:6:89","type":""}],"src":"4511:260:89"},{"body":{"nodeType":"YulBlock","src":"4831:325:89","statements":[{"nodeType":"YulAssignment","src":"4841:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4855:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"4858:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4851:3:89"},"nodeType":"YulFunctionCall","src":"4851:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4841:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4872:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4902:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"4908:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4898:3:89"},"nodeType":"YulFunctionCall","src":"4898:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4876:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4949:31:89","statements":[{"nodeType":"YulAssignment","src":"4951:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4965:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4973:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4961:3:89"},"nodeType":"YulFunctionCall","src":"4961:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4951:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4929:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4922:6:89"},"nodeType":"YulFunctionCall","src":"4922:26:89"},"nodeType":"YulIf","src":"4919:61:89"},{"body":{"nodeType":"YulBlock","src":"5039:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5060:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5067:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5072:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5063:3:89"},"nodeType":"YulFunctionCall","src":"5063:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:89"},"nodeType":"YulFunctionCall","src":"5053:31:89"},"nodeType":"YulExpressionStatement","src":"5053:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5104:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5107:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5097:6:89"},"nodeType":"YulFunctionCall","src":"5097:15:89"},"nodeType":"YulExpressionStatement","src":"5097:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5135:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5125:6:89"},"nodeType":"YulFunctionCall","src":"5125:15:89"},"nodeType":"YulExpressionStatement","src":"5125:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4995:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5018:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5026:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5015:2:89"},"nodeType":"YulFunctionCall","src":"5015:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4992:2:89"},"nodeType":"YulFunctionCall","src":"4992:38:89"},"nodeType":"YulIf","src":"4989:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"4811:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"4820:6:89","type":""}],"src":"4776:380:89"},{"body":{"nodeType":"YulBlock","src":"5335:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5352:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5363:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5345:6:89"},"nodeType":"YulFunctionCall","src":"5345:21:89"},"nodeType":"YulExpressionStatement","src":"5345:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5386:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5397:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5382:3:89"},"nodeType":"YulFunctionCall","src":"5382:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5402:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5375:6:89"},"nodeType":"YulFunctionCall","src":"5375:30:89"},"nodeType":"YulExpressionStatement","src":"5375:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5425:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5421:3:89"},"nodeType":"YulFunctionCall","src":"5421:18:89"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"5441:34:89","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5414:6:89"},"nodeType":"YulFunctionCall","src":"5414:62:89"},"nodeType":"YulExpressionStatement","src":"5414:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5496:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5507:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5492:3:89"},"nodeType":"YulFunctionCall","src":"5492:18:89"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"5512:3:89","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5485:6:89"},"nodeType":"YulFunctionCall","src":"5485:31:89"},"nodeType":"YulExpressionStatement","src":"5485:31:89"},{"nodeType":"YulAssignment","src":"5525:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5537:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5548:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5533:3:89"},"nodeType":"YulFunctionCall","src":"5533:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5525:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5312:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5326:4:89","type":""}],"src":"5161:397:89"},{"body":{"nodeType":"YulBlock","src":"5737:251:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5754:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5765:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5747:6:89"},"nodeType":"YulFunctionCall","src":"5747:21:89"},"nodeType":"YulExpressionStatement","src":"5747:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5788:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5799:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5784:3:89"},"nodeType":"YulFunctionCall","src":"5784:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5804:2:89","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5777:6:89"},"nodeType":"YulFunctionCall","src":"5777:30:89"},"nodeType":"YulExpressionStatement","src":"5777:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5827:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5838:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5823:3:89"},"nodeType":"YulFunctionCall","src":"5823:18:89"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"5843:34:89","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5816:6:89"},"nodeType":"YulFunctionCall","src":"5816:62:89"},"nodeType":"YulExpressionStatement","src":"5816:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:89"},"nodeType":"YulFunctionCall","src":"5894:18:89"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"5914:31:89","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5887:6:89"},"nodeType":"YulFunctionCall","src":"5887:59:89"},"nodeType":"YulExpressionStatement","src":"5887:59:89"},{"nodeType":"YulAssignment","src":"5955:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5967:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5978:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5963:3:89"},"nodeType":"YulFunctionCall","src":"5963:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5955:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5714:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5728:4:89","type":""}],"src":"5563:425:89"},{"body":{"nodeType":"YulBlock","src":"6167:235:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6184:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6195:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6177:6:89"},"nodeType":"YulFunctionCall","src":"6177:21:89"},"nodeType":"YulExpressionStatement","src":"6177:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6218:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6229:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6214:3:89"},"nodeType":"YulFunctionCall","src":"6214:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6234:2:89","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6207:6:89"},"nodeType":"YulFunctionCall","src":"6207:30:89"},"nodeType":"YulExpressionStatement","src":"6207:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6257:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6268:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6253:3:89"},"nodeType":"YulFunctionCall","src":"6253:18:89"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"6273:34:89","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6246:6:89"},"nodeType":"YulFunctionCall","src":"6246:62:89"},"nodeType":"YulExpressionStatement","src":"6246:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6328:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6339:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6324:3:89"},"nodeType":"YulFunctionCall","src":"6324:18:89"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"6344:15:89","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6317:6:89"},"nodeType":"YulFunctionCall","src":"6317:43:89"},"nodeType":"YulExpressionStatement","src":"6317:43:89"},{"nodeType":"YulAssignment","src":"6369:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6381:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6392:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6377:3:89"},"nodeType":"YulFunctionCall","src":"6377:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6369:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6144:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6158:4:89","type":""}],"src":"5993:409:89"},{"body":{"nodeType":"YulBlock","src":"6581:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6598:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6591:6:89"},"nodeType":"YulFunctionCall","src":"6591:21:89"},"nodeType":"YulExpressionStatement","src":"6591:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6632:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6643:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:89"},"nodeType":"YulFunctionCall","src":"6628:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6648:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:89"},"nodeType":"YulFunctionCall","src":"6621:30:89"},"nodeType":"YulExpressionStatement","src":"6621:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6682:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6667:3:89"},"nodeType":"YulFunctionCall","src":"6667:18:89"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"6687:26:89","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6660:6:89"},"nodeType":"YulFunctionCall","src":"6660:54:89"},"nodeType":"YulExpressionStatement","src":"6660:54:89"},{"nodeType":"YulAssignment","src":"6723:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6735:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6746:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6731:3:89"},"nodeType":"YulFunctionCall","src":"6731:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6723:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6558:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6572:4:89","type":""}],"src":"6407:348:89"},{"body":{"nodeType":"YulBlock","src":"6934:231:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6951:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6962:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6944:6:89"},"nodeType":"YulFunctionCall","src":"6944:21:89"},"nodeType":"YulExpressionStatement","src":"6944:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6985:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6996:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6981:3:89"},"nodeType":"YulFunctionCall","src":"6981:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7001:2:89","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6974:6:89"},"nodeType":"YulFunctionCall","src":"6974:30:89"},"nodeType":"YulExpressionStatement","src":"6974:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7024:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7035:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7020:3:89"},"nodeType":"YulFunctionCall","src":"7020:18:89"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"7040:34:89","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7013:6:89"},"nodeType":"YulFunctionCall","src":"7013:62:89"},"nodeType":"YulExpressionStatement","src":"7013:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7095:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7106:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7091:3:89"},"nodeType":"YulFunctionCall","src":"7091:18:89"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7111:11:89","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7084:6:89"},"nodeType":"YulFunctionCall","src":"7084:39:89"},"nodeType":"YulExpressionStatement","src":"7084:39:89"},{"nodeType":"YulAssignment","src":"7132:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7144:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7155:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7140:3:89"},"nodeType":"YulFunctionCall","src":"7140:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7132:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6911:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6925:4:89","type":""}],"src":"6760:405:89"},{"body":{"nodeType":"YulBlock","src":"7357:309:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7367:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7387:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7381:5:89"},"nodeType":"YulFunctionCall","src":"7381:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7371:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7442:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7450:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7438:3:89"},"nodeType":"YulFunctionCall","src":"7438:17:89"},{"name":"pos","nodeType":"YulIdentifier","src":"7457:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"7462:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"7403:34:89"},"nodeType":"YulFunctionCall","src":"7403:66:89"},"nodeType":"YulExpressionStatement","src":"7403:66:89"},{"nodeType":"YulVariableDeclaration","src":"7478:29:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7495:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"7500:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7491:3:89"},"nodeType":"YulFunctionCall","src":"7491:16:89"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"7482:5:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7516:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7538:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7532:5:89"},"nodeType":"YulFunctionCall","src":"7532:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"7520:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7593:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7601:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7589:3:89"},"nodeType":"YulFunctionCall","src":"7589:17:89"},{"name":"end_1","nodeType":"YulIdentifier","src":"7608:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"7615:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"7554:34:89"},"nodeType":"YulFunctionCall","src":"7554:70:89"},"nodeType":"YulExpressionStatement","src":"7554:70:89"},{"nodeType":"YulAssignment","src":"7633:27:89","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"7644:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"7651:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:89"},"nodeType":"YulFunctionCall","src":"7640:20:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7633:3:89"}]}]},"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":"7325:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7330:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7338:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7349:3:89","type":""}],"src":"7170:496:89"},{"body":{"nodeType":"YulBlock","src":"7845:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7862:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7873:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7855:6:89"},"nodeType":"YulFunctionCall","src":"7855:21:89"},"nodeType":"YulExpressionStatement","src":"7855:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7896:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7907:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7892:3:89"},"nodeType":"YulFunctionCall","src":"7892:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7912:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7885:6:89"},"nodeType":"YulFunctionCall","src":"7885:30:89"},"nodeType":"YulExpressionStatement","src":"7885:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7935:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7946:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7931:3:89"},"nodeType":"YulFunctionCall","src":"7931:18:89"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"7951:34:89","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7924:6:89"},"nodeType":"YulFunctionCall","src":"7924:62:89"},"nodeType":"YulExpressionStatement","src":"7924:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8006:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8017:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8002:3:89"},"nodeType":"YulFunctionCall","src":"8002:18:89"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"8022:7:89","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7995:6:89"},"nodeType":"YulFunctionCall","src":"7995:35:89"},"nodeType":"YulExpressionStatement","src":"7995:35:89"},{"nodeType":"YulAssignment","src":"8039:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8051:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8062:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8047:3:89"},"nodeType":"YulFunctionCall","src":"8047:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8039:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7822:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7836:4:89","type":""}],"src":"7671:401:89"},{"body":{"nodeType":"YulBlock","src":"8251:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8268:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8279:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8261:6:89"},"nodeType":"YulFunctionCall","src":"8261:21:89"},"nodeType":"YulExpressionStatement","src":"8261:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8302:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8313:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8298:3:89"},"nodeType":"YulFunctionCall","src":"8298:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8318:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8291:6:89"},"nodeType":"YulFunctionCall","src":"8291:30:89"},"nodeType":"YulExpressionStatement","src":"8291:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8341:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8352:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8337:3:89"},"nodeType":"YulFunctionCall","src":"8337:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"8357:34:89","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8330:6:89"},"nodeType":"YulFunctionCall","src":"8330:62:89"},"nodeType":"YulExpressionStatement","src":"8330:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8412:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8423:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8408:3:89"},"nodeType":"YulFunctionCall","src":"8408:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"8428:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8401:6:89"},"nodeType":"YulFunctionCall","src":"8401:34:89"},"nodeType":"YulExpressionStatement","src":"8401:34:89"},{"nodeType":"YulAssignment","src":"8444:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8456:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8467:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8452:3:89"},"nodeType":"YulFunctionCall","src":"8452:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8444:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8228:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8242:4:89","type":""}],"src":"8077:400:89"},{"body":{"nodeType":"YulBlock","src":"8656:175:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8673:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8684:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8666:6:89"},"nodeType":"YulFunctionCall","src":"8666:21:89"},"nodeType":"YulExpressionStatement","src":"8666:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8707:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8718:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8703:3:89"},"nodeType":"YulFunctionCall","src":"8703:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8723:2:89","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8696:6:89"},"nodeType":"YulFunctionCall","src":"8696:30:89"},"nodeType":"YulExpressionStatement","src":"8696:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8746:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8757:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8742:3:89"},"nodeType":"YulFunctionCall","src":"8742:18:89"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"8762:27:89","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8735:6:89"},"nodeType":"YulFunctionCall","src":"8735:55:89"},"nodeType":"YulExpressionStatement","src":"8735:55:89"},{"nodeType":"YulAssignment","src":"8799:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8811:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8822:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8807:3:89"},"nodeType":"YulFunctionCall","src":"8807:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8799:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8633:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8647:4:89","type":""}],"src":"8482:349:89"},{"body":{"nodeType":"YulBlock","src":"9010:240:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9027:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9038:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9020:6:89"},"nodeType":"YulFunctionCall","src":"9020:21:89"},"nodeType":"YulExpressionStatement","src":"9020:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9061:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9072:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9057:3:89"},"nodeType":"YulFunctionCall","src":"9057:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9077:2:89","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9050:6:89"},"nodeType":"YulFunctionCall","src":"9050:30:89"},"nodeType":"YulExpressionStatement","src":"9050:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9100:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9111:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9096:3:89"},"nodeType":"YulFunctionCall","src":"9096:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"9116:34:89","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9089:6:89"},"nodeType":"YulFunctionCall","src":"9089:62:89"},"nodeType":"YulExpressionStatement","src":"9089:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9171:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9182:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9167:3:89"},"nodeType":"YulFunctionCall","src":"9167:18:89"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"9187:20:89","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9160:6:89"},"nodeType":"YulFunctionCall","src":"9160:48:89"},"nodeType":"YulExpressionStatement","src":"9160:48:89"},{"nodeType":"YulAssignment","src":"9217:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9229:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9240:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9225:3:89"},"nodeType":"YulFunctionCall","src":"9225:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9217:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8987:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9001:4:89","type":""}],"src":"8836:414:89"},{"body":{"nodeType":"YulBlock","src":"9287:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9304:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9311:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9316:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9307:3:89"},"nodeType":"YulFunctionCall","src":"9307:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9297:6:89"},"nodeType":"YulFunctionCall","src":"9297:31:89"},"nodeType":"YulExpressionStatement","src":"9297:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9344:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9347:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9337:6:89"},"nodeType":"YulFunctionCall","src":"9337:15:89"},"nodeType":"YulExpressionStatement","src":"9337:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9368:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9371:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9361:6:89"},"nodeType":"YulFunctionCall","src":"9361:15:89"},"nodeType":"YulExpressionStatement","src":"9361:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"9255:127:89"},{"body":{"nodeType":"YulBlock","src":"9419:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9436:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9443:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9448:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9439:3:89"},"nodeType":"YulFunctionCall","src":"9439:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9429:6:89"},"nodeType":"YulFunctionCall","src":"9429:31:89"},"nodeType":"YulExpressionStatement","src":"9429:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9476:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9479:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9469:6:89"},"nodeType":"YulFunctionCall","src":"9469:15:89"},"nodeType":"YulExpressionStatement","src":"9469:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9500:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9503:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9493:6:89"},"nodeType":"YulFunctionCall","src":"9493:15:89"},"nodeType":"YulExpressionStatement","src":"9493:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9387:127:89"},{"body":{"nodeType":"YulBlock","src":"9568:79:89","statements":[{"nodeType":"YulAssignment","src":"9578:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9590:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"9593:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9586:3:89"},"nodeType":"YulFunctionCall","src":"9586:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9578:4:89"}]},{"body":{"nodeType":"YulBlock","src":"9619:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9621:16:89"},"nodeType":"YulFunctionCall","src":"9621:18:89"},"nodeType":"YulExpressionStatement","src":"9621:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"9610:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"9616:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9607:2:89"},"nodeType":"YulFunctionCall","src":"9607:11:89"},"nodeType":"YulIf","src":"9604:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9550:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"9553:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9559:4:89","type":""}],"src":"9519:128:89"},{"body":{"nodeType":"YulBlock","src":"9700:77:89","statements":[{"nodeType":"YulAssignment","src":"9710:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9721:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"9724:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9717:3:89"},"nodeType":"YulFunctionCall","src":"9717:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9710:3:89"}]},{"body":{"nodeType":"YulBlock","src":"9749:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9751:16:89"},"nodeType":"YulFunctionCall","src":"9751:18:89"},"nodeType":"YulExpressionStatement","src":"9751:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9741:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"9744:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9738:2:89"},"nodeType":"YulFunctionCall","src":"9738:10:89"},"nodeType":"YulIf","src":"9735:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9683:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"9686:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9692:3:89","type":""}],"src":"9652:125:89"},{"body":{"nodeType":"YulBlock","src":"9985:286:89","statements":[{"nodeType":"YulVariableDeclaration","src":"9995:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10013:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10018:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10009:3:89"},"nodeType":"YulFunctionCall","src":"10009:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"10022:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10005:3:89"},"nodeType":"YulFunctionCall","src":"10005:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9999:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10040:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10055:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"10063:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10051:3:89"},"nodeType":"YulFunctionCall","src":"10051:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10033:6:89"},"nodeType":"YulFunctionCall","src":"10033:34:89"},"nodeType":"YulExpressionStatement","src":"10033:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10087:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10098:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10083:3:89"},"nodeType":"YulFunctionCall","src":"10083:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10107:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"10115:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10103:3:89"},"nodeType":"YulFunctionCall","src":"10103:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10076:6:89"},"nodeType":"YulFunctionCall","src":"10076:43:89"},"nodeType":"YulExpressionStatement","src":"10076:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10139:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10150:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10135:3:89"},"nodeType":"YulFunctionCall","src":"10135:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"10155:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10128:6:89"},"nodeType":"YulFunctionCall","src":"10128:34:89"},"nodeType":"YulExpressionStatement","src":"10128:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10182:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10193:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10178:3:89"},"nodeType":"YulFunctionCall","src":"10178:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10198:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10171:6:89"},"nodeType":"YulFunctionCall","src":"10171:31:89"},"nodeType":"YulExpressionStatement","src":"10171:31:89"},{"nodeType":"YulAssignment","src":"10211:54:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"10237:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10249:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10260:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10245:3:89"},"nodeType":"YulFunctionCall","src":"10245:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"10219:17:89"},"nodeType":"YulFunctionCall","src":"10219:46:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10211:4:89"}]}]},"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":"9930:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9941:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9949:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9957:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9965:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9976:4:89","type":""}],"src":"9782:489:89"},{"body":{"nodeType":"YulBlock","src":"10356:169:89","statements":[{"body":{"nodeType":"YulBlock","src":"10402:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10411:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10414:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10404:6:89"},"nodeType":"YulFunctionCall","src":"10404:12:89"},"nodeType":"YulExpressionStatement","src":"10404:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10377:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"10386:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10373:3:89"},"nodeType":"YulFunctionCall","src":"10373:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"10398:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10369:3:89"},"nodeType":"YulFunctionCall","src":"10369:32:89"},"nodeType":"YulIf","src":"10366:52:89"},{"nodeType":"YulVariableDeclaration","src":"10427:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10446:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10440:5:89"},"nodeType":"YulFunctionCall","src":"10440:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10431:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10489:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"10465:23:89"},"nodeType":"YulFunctionCall","src":"10465:30:89"},"nodeType":"YulExpressionStatement","src":"10465:30:89"},{"nodeType":"YulAssignment","src":"10504:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"10514:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10504:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10322:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10333:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10345:6:89","type":""}],"src":"10276:249:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { 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_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_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, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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, shl(224, 0x4e487b71))\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 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(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, shl(224, 0x4e487b71))\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_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(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, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\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_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_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":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec57600080fd5b80636352211e1461017757806370a082311461018a57806395d89b41146101ab57600080fd5b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610cf9565b6101ff565b60405190151581526020015b60405180910390f35b610104610251565b6040516100f39190610d66565b61012461011f366004610d79565b6102e3565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610dae565b61030a565b005b61014f61015f366004610dd8565b610424565b61014f610172366004610dd8565b610455565b610124610185366004610d79565b610470565b61019d610198366004610e14565b6104d0565b6040519081526020016100f3565b610104610556565b61014f6101c1366004610e2f565b610565565b61014f6101d4366004610e81565b610574565b6101046101e7366004610d79565b6105ac565b6100e76101fa366004610f5d565b610620565b60006001600160e01b031982166380ac58cd60e01b148061023057506001600160e01b03198216635b5e139f60e01b145b8061024b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606000805461026090610f90565b80601f016020809104026020016040519081016040528092919081815260200182805461028c90610f90565b80156102d95780601f106102ae576101008083540402835291602001916102d9565b820191906000526020600020905b8154815290600101906020018083116102bc57829003601f168201915b5050505050905090565b60006102ee8261064e565b506000908152600460205260409020546001600160a01b031690565b600061031582610470565b9050806001600160a01b0316836001600160a01b0316036103875760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103a357506103a38133610620565b6104155760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161037e565b61041f83836106b0565b505050565b61042e338261071e565b61044a5760405162461bcd60e51b815260040161037e90610fca565b61041f83838361077d565b61041f83838360405180602001604052806000815250610574565b6000818152600260205260408120546001600160a01b03168061024b5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b60006001600160a01b03821661053a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161037e565b506001600160a01b031660009081526003602052604090205490565b60606001805461026090610f90565b6105703383836108ee565b5050565b61057e338361071e565b61059a5760405162461bcd60e51b815260040161037e90610fca565b6105a6848484846109bc565b50505050565b60606105b78261064e565b60006105ce60408051602081019091526000815290565b905060008151116105ee5760405180602001604052806000815250610619565b806105f8846109ef565b604051602001610609929190611017565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600260205260409020546001600160a01b03166106ad5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161037e565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e582610470565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061072a83610470565b9050806001600160a01b0316846001600160a01b0316148061075157506107518185610620565b806107755750836001600160a01b031661076a846102e3565b6001600160a01b0316145b949350505050565b826001600160a01b031661079082610470565b6001600160a01b0316146107b65760405162461bcd60e51b815260040161037e90611046565b6001600160a01b0382166108185760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161037e565b6108258383836001610a82565b826001600160a01b031661083882610470565b6001600160a01b03161461085e5760405162461bcd60e51b815260040161037e90611046565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361094f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161037e565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6109c784848461077d565b6109d384848484610b0a565b6105a65760405162461bcd60e51b815260040161037e9061108b565b606060006109fc83610c0b565b600101905060008167ffffffffffffffff811115610a1c57610a1c610e6b565b6040519080825280601f01601f191660200182016040528015610a46576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a5057509392505050565b60018111156105a6576001600160a01b03841615610ac8576001600160a01b03841660009081526003602052604081208054839290610ac29084906110f3565b90915550505b6001600160a01b038316156105a6576001600160a01b03831660009081526003602052604081208054839290610aff908490611106565b909155505050505050565b60006001600160a01b0384163b15610c0057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b4e903390899088908890600401611119565b6020604051808303816000875af1925050508015610b89575060408051601f3d908101601f19168201909252610b8691810190611156565b60015b610be6573d808015610bb7576040519150601f19603f3d011682016040523d82523d6000602084013e610bbc565b606091505b508051600003610bde5760405162461bcd60e51b815260040161037e9061108b565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610775565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610c4a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c76576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c9457662386f26fc10000830492506010015b6305f5e1008310610cac576305f5e100830492506008015b6127108310610cc057612710830492506004015b60648310610cd2576064830492506002015b600a831061024b5760010192915050565b6001600160e01b0319811681146106ad57600080fd5b600060208284031215610d0b57600080fd5b813561061981610ce3565b60005b83811015610d31578181015183820152602001610d19565b50506000910152565b60008151808452610d52816020860160208601610d16565b601f01601f19169290920160200192915050565b6020815260006106196020830184610d3a565b600060208284031215610d8b57600080fd5b5035919050565b80356001600160a01b0381168114610da957600080fd5b919050565b60008060408385031215610dc157600080fd5b610dca83610d92565b946020939093013593505050565b600080600060608486031215610ded57600080fd5b610df684610d92565b9250610e0460208501610d92565b9150604084013590509250925092565b600060208284031215610e2657600080fd5b61061982610d92565b60008060408385031215610e4257600080fd5b610e4b83610d92565b915060208301358015158114610e6057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610e9757600080fd5b610ea085610d92565b9350610eae60208601610d92565b925060408501359150606085013567ffffffffffffffff80821115610ed257600080fd5b818701915087601f830112610ee657600080fd5b813581811115610ef857610ef8610e6b565b604051601f8201601f19908116603f01168101908382118183101715610f2057610f20610e6b565b816040528281528a6020848701011115610f3957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215610f7057600080fd5b610f7983610d92565b9150610f8760208401610d92565b90509250929050565b600181811c90821680610fa457607f821691505b602082108103610fc457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60008351611029818460208801610d16565b83519083019061103d818360208801610d16565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561024b5761024b6110dd565b8082018082111561024b5761024b6110dd565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061114c90830184610d3a565b9695505050505050565b60006020828403121561116857600080fd5b815161061981610ce356fea264697066735822122074d767db8da757096bfdcabb4947ecae2ceceec549326376ce67aa72c1e90d9c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF 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 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF9 JUMP JUMPDEST PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x2E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xDAE JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x424 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x455 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x4D0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x556 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x565 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xE81 JUMP JUMPDEST PUSH2 0x574 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD79 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xF5D JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x230 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x24B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x260 SWAP1 PUSH2 0xF90 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 0x28C SWAP1 PUSH2 0xF90 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D9 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 0x2BC JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP3 PUSH2 0x64E 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 0x315 DUP3 PUSH2 0x470 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 0x387 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3A3 JUMPI POP PUSH2 0x3A3 DUP2 CALLER PUSH2 0x620 JUMP JUMPDEST PUSH2 0x415 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 0x37E JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 PUSH2 0x6B0 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x42E CALLER DUP3 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x44A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x41F DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x574 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 0x24B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E 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 0x260 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH2 0x570 CALLER DUP4 DUP4 PUSH2 0x8EE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x57E CALLER DUP4 PUSH2 0x71E JUMP JUMPDEST PUSH2 0x59A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0xFCA JUMP JUMPDEST PUSH2 0x5A6 DUP5 DUP5 DUP5 DUP5 PUSH2 0x9BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5B7 DUP3 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5CE 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 0x5EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x619 JUMP JUMPDEST DUP1 PUSH2 0x5F8 DUP5 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x609 SWAP3 SWAP2 SWAP1 PUSH2 0x1017 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x37E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E5 DUP3 PUSH2 0x470 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 0x72A DUP4 PUSH2 0x470 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 0x751 JUMPI POP PUSH2 0x751 DUP2 DUP6 PUSH2 0x620 JUMP JUMPDEST DUP1 PUSH2 0x775 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x76A DUP5 PUSH2 0x2E3 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 0x790 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x818 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x37E JUMP JUMPDEST PUSH2 0x825 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xA82 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x838 DUP3 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x85E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x1046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB 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 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x94F 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 0x37E 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 0x9C7 DUP5 DUP5 DUP5 PUSH2 0x77D JUMP JUMPDEST PUSH2 0x9D3 DUP5 DUP5 DUP5 DUP5 PUSH2 0xB0A JUMP JUMPDEST PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x9FC DUP4 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH2 0xA1C PUSH2 0xE6B 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 0xA46 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 PUSH2 0xA50 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0xAC8 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAC2 SWAP1 DUP5 SWAP1 PUSH2 0x10F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0xAFF SWAP1 DUP5 SWAP1 PUSH2 0x1106 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB4E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1119 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xB89 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xB86 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1156 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xBE6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xBB7 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 0xBBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x37E SWAP1 PUSH2 0x108B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x775 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xC4A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xC76 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xC94 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xCAC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xCC0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xCD2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x24B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD31 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xD19 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xD52 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xD16 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 0x619 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD8B 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 0xDA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDCA DUP4 PUSH2 0xD92 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 0xDED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDF6 DUP5 PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH2 0xE04 PUSH1 0x20 DUP6 ADD PUSH2 0xD92 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 0xE26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x619 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE4B DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xE97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEA0 DUP6 PUSH2 0xD92 JUMP JUMPDEST SWAP4 POP PUSH2 0xEAE PUSH1 0x20 DUP7 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xEE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0xE6B 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 0xF20 JUMPI PUSH2 0xF20 PUSH2 0xE6B JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xF39 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 0xF70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF79 DUP4 PUSH2 0xD92 JUMP JUMPDEST SWAP2 POP PUSH2 0xF87 PUSH1 0x20 DUP5 ADD PUSH2 0xD92 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0xFA4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC4 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1029 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x103D DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0xD16 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x24B JUMPI PUSH2 0x24B PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x114C SWAP1 DUP4 ADD DUP5 PUSH2 0xD3A JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1168 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x619 DUP2 PUSH2 0xCE3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH21 0xD767DB8DA757096BFDCABB4947ECAE2CECEEC54932 PUSH4 0x76CE67AA PUSH19 0xC1E90D9C64736F6C6343000811003300000000 ","sourceMap":"628:16327:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;1570:300:38;;;;;;;;2471:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:89;;;1679:51;;1667:2;1652:18;3935:167:38;1533:203:89;3468:406:38;;;;;;:::i;:::-;;:::i;:::-;;4612:326;;;;;;:::i;:::-;;:::i;5004:179::-;;;;;;:::i;:::-;;:::i;2190:219::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:89;;;2836:2;2821:18;1929:204:38;2702:177:89;2633:102:38;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5249:314::-;;;;;;:::i;:::-;;:::i;2801:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;;:::i;1570:300::-;1672:4;-1:-1:-1;;;;;;1707:40:38;;-1:-1:-1;;;1707:40:38;;:104;;-1:-1:-1;;;;;;;1763:48:38;;-1:-1:-1;;;1763:48:38;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:53;;;1827:36:38;1688:175;1570:300;-1:-1:-1;;1570:300:38: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:38;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:38;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:38;:2;-1:-1:-1;;;;;3605:11:38;;3597:57;;;;-1:-1:-1;;;3597:57:38;;5363:2:89;3597:57:38;;;5345:21:89;5402:2;5382:18;;;5375:30;5441:34;5421:18;;;5414:62;-1:-1:-1;;;5492:18:89;;;5485:31;5533:19;;3597:57:38;;;;;;;;;719:10:47;-1:-1:-1;;;;;3686:21:38;;;;:62;;-1:-1:-1;3711:37:38;3728:5;719:10:47;4388:162:38;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:38;;5765:2:89;3665:170:38;;;5747:21:89;5804:2;5784:18;;;5777:30;5843:34;5823:18;;;5816:62;5914:31;5894:18;;;5887:59;5963:19;;3665:170:38;5563:425:89;3665:170:38;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;719:10:47;4834:7:38;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:38;;;;;;;:::i;:::-;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:38;;2324:56;;;;-1:-1:-1;;;2324:56:38;;6609:2:89;2324:56:38;;;6591:21:89;6648:2;6628:18;;;6621:30;-1:-1:-1;;;6667:18:89;;;6660:54;6731:18;;2324:56:38;6407:348:89;1929:204:38;2001:7;-1:-1:-1;;;;;2028:19:38;;2020:73;;;;-1:-1:-1;;;2020:73:38;;6962:2:89;2020:73:38;;;6944:21:89;7001:2;6981:18;;;6974:30;7040:34;7020:18;;;7013:62;-1:-1:-1;;;7091:18:89;;;7084:39;7140:19;;2020:73:38;6760:405:89;2020:73:38;-1:-1:-1;;;;;;2110:16:38;;;;;:9;:16;;;;;;;1929:204::o;2633:102::-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;719:10:47;4296:8:38;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;719:10:47;5450:7:38;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:38;;;;;;;:::i;:::-;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:38;;;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:38:o;4388:162::-;-1:-1:-1;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162::o;13466:133::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;13539:53;;;;-1:-1:-1;;;13539:53:38;;6609:2:89;13539:53:38;;;6591:21:89;6648:2;6628:18;;;6621:30;-1:-1:-1;;;6667:18:89;;;6660:54;6731:18;;13539:53:38;6407:348:89;13539:53:38;13466:133;:::o;12768:171::-;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:38;-1:-1:-1;;;;;12842:29:38;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:38;;;;;;;;;;;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:38;:7;-1:-1:-1;;;;;7706:16:38;;:52;;;;7726:32;7743:5;7750:7;7726:16;:32::i;:::-;7706:87;;;;7786:7;-1:-1:-1;;;;;7762:31:38;:20;7774:7;7762:11;:20::i;:::-;-1:-1:-1;;;;;7762:31:38;;7706:87;7698:96;7540:261;-1:-1:-1;;;;7540:261:38:o;11423:1233::-;11577:4;-1:-1:-1;;;;;11550:31:38;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:38;;11542:81;;;;-1:-1:-1;;;11542:81:38;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:38;;11633:65;;;;-1:-1:-1;;;11633:65:38;;8279:2:89;11633:65:38;;;8261:21:89;8318:2;8298:18;;;8291:30;8357:34;8337:18;;;8330:62;-1:-1:-1;;;8408:18:89;;;8401:34;8452:19;;11633:65:38;8077:400:89;11633:65:38;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:38;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:38;;11843:81;;;;-1:-1:-1;;;11843:81:38;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:38;;;;;;-1:-1:-1;;;;;12461:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:38;;;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:38;:5;-1:-1:-1;;;;;13216:17:38;;13208:55;;;;-1:-1:-1;;;13208:55:38;;8684:2:89;13208:55:38;;;8666:21:89;8723:2;8703:18;;;8696:30;8762:27;8742:18;;;8735:55;8807:18;;13208:55:38;8482:349:89;13208:55:38;-1:-1:-1;;;;;13273:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:38;;;;;;;;;;13334:41;;540::89;;;13334::38;;513:18:89;13334:41:38;;;;;;;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:38;;;;;;;:::i;415:696:49:-;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:49;-1:-1:-1;572:41:49;-1:-1:-1;733:28:49;;;749:2;733:28;788:280;-1:-1:-1;;819:5:49;-1:-1:-1;;;953:2:49;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:49;788:280;1032:21;-1:-1:-1;1088:6:49;415:696;-1:-1:-1;;;415:696:49:o;15698:396:38:-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:38;;;15899:85;;-1:-1:-1;;;;;15941:15:38;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:38;-1:-1:-1;;;;;16001:16:38;;;15997:81;;-1:-1:-1;;;;;16037:13:38;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:38;;;;:::o;14151:831::-;14300:4;-1:-1:-1;;;;;14320:13:38;;1465:19:45;:23;14316:660:38;;14355:71;;-1:-1:-1;;;14355:71:38;;-1:-1:-1;;;;;14355:36:38;;;;;:71;;719:10:47;;14406:4:38;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:38;;;;;;;;-1:-1:-1;;14355:71:38;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:38;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:38;-1:-1:-1;;;14476:51:38;;-1:-1:-1;14469:58:38;;14316:660;-1:-1:-1;14961:4:38;14151:831;;;;;;:::o;9889:890:55:-;9942:7;;-1:-1:-1;;;10017:15:55;;10013:99;;-1:-1:-1;;;10052:15:55;;;-1:-1:-1;10095:2:55;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:55;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:55;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:55;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:55;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:55;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:55:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:89;;1348:180;-1:-1:-1;1348:180:89:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:89;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:89:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:1138;3463:6;3471;3479;3487;3540:3;3528:9;3519:7;3515:23;3511:33;3508:53;;;3557:1;3554;3547:12;3508:53;3580:29;3599:9;3580:29;:::i;:::-;3570:39;;3628:38;3662:2;3651:9;3647:18;3628:38;:::i;:::-;3618:48;;3713:2;3702:9;3698:18;3685:32;3675:42;;3768:2;3757:9;3753:18;3740:32;3791:18;3832:2;3824:6;3821:14;3818:34;;;3848:1;3845;3838:12;3818:34;3886:6;3875:9;3871:22;3861:32;;3931:7;3924:4;3920:2;3916:13;3912:27;3902:55;;3953:1;3950;3943:12;3902:55;3989:2;3976:16;4011:2;4007;4004:10;4001:36;;;4017:18;;:::i;:::-;4092:2;4086:9;4060:2;4146:13;;-1:-1:-1;;4142:22:89;;;4166:2;4138:31;4134:40;4122:53;;;4190:18;;;4210:22;;;4187:46;4184:72;;;4236:18;;:::i;:::-;4276:10;4272:2;4265:22;4311:2;4303:6;4296:18;4351:7;4346:2;4341;4337;4333:11;4329:20;4326:33;4323:53;;;4372:1;4369;4362:12;4323:53;4428:2;4423;4419;4415:11;4410:2;4402:6;4398:15;4385:46;4473:1;4468:2;4463;4455:6;4451:15;4447:24;4440:35;4494:6;4484:16;;;;;;;3368:1138;;;;;;;:::o;4511:260::-;4579:6;4587;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;4679:29;4698:9;4679:29;:::i;:::-;4669:39;;4727:38;4761:2;4750:9;4746:18;4727:38;:::i;:::-;4717:48;;4511:260;;;;;:::o;4776:380::-;4855:1;4851:12;;;;4898;;;4919:61;;4973:4;4965:6;4961:17;4951:27;;4919:61;5026:2;5018:6;5015:14;4995:18;4992:38;4989:161;;5072:10;5067:3;5063:20;5060:1;5053:31;5107:4;5104:1;5097:15;5135:4;5132:1;5125:15;4989:161;;4776:380;;;:::o;5993:409::-;6195:2;6177:21;;;6234:2;6214:18;;;6207:30;6273:34;6268:2;6253:18;;6246:62;-1:-1:-1;;;6339:2:89;6324:18;;6317:43;6392:3;6377:19;;5993:409::o;7170:496::-;7349:3;7387:6;7381:13;7403:66;7462:6;7457:3;7450:4;7442:6;7438:17;7403:66;:::i;:::-;7532:13;;7491:16;;;;7554:70;7532:13;7491:16;7601:4;7589:17;;7554:70;:::i;:::-;7640:20;;7170:496;-1:-1:-1;;;;7170:496:89:o;7671:401::-;7873:2;7855:21;;;7912:2;7892:18;;;7885:30;7951:34;7946:2;7931:18;;7924:62;-1:-1:-1;;;8017:2:89;8002:18;;7995:35;8062:3;8047:19;;7671:401::o;8836:414::-;9038:2;9020:21;;;9077:2;9057:18;;;9050:30;9116:34;9111:2;9096:18;;9089:62;-1:-1:-1;;;9182:2:89;9167:18;;9160:48;9240:3;9225:19;;8836:414::o;9387:127::-;9448:10;9443:3;9439:20;9436:1;9429:31;9479:4;9476:1;9469:15;9503:4;9500:1;9493:15;9519:128;9586:9;;;9607:11;;;9604:37;;;9621:18;;:::i;9652:125::-;9717:9;;;9738:10;;;9735:36;;;9751:18;;:::i;9782:489::-;-1:-1:-1;;;;;10051:15:89;;;10033:34;;10103:15;;10098:2;10083:18;;10076:43;10150:2;10135:18;;10128:34;;;10198:3;10193:2;10178:18;;10171:31;;;9976:4;;10219:46;;10245:19;;10237:6;10219:46;:::i;:::-;10211:54;9782:489;-1:-1:-1;;;;;;9782:489:89:o;10276:249::-;10345:6;10398:2;10386:9;10377:7;10373:23;10369:32;10366:52;;;10414:1;10411;10404:12;10366:52;10446:9;10440:16;10465:30;10489:5;10465: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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"@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}","storageLayout":{"storage":[{"astId":11011,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":11013,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":11017,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":11021,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":11025,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":11031,"contract":"@openzeppelin/contracts/token/ERC721/ERC721.sol:ERC721","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"@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}","storageLayout":{"storage":[{"astId":11011,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":11013,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":11017,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":11021,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":11025,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":11031,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":12079,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_ownedTokens","offset":0,"slot":"6","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},{"astId":12083,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_ownedTokensIndex","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_uint256)"},{"astId":12086,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_allTokens","offset":0,"slot":"8","type":"t_array(t_uint256)dyn_storage"},{"astId":12090,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol:ERC721Enumerable","label":"_allTokensIndex","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol":{"ERC721URIStorage":{"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":"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.17+commit.8df45f5f\"},\"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\":\"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\":\"ERC721 token with storage based token URI management.\",\"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}.\"},\"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/extensions/ERC721URIStorage.sol\":\"ERC721URIStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"@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/ERC721URIStorage.sol\":{\"keccak256\":\"0x5c3501c1b70fcfc64417e9da5cc6a3597191baa354781e508e1e14cc0e50a038\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899c87a849a94c848818d0afede6961d2c87665af1dd23a5c983e78981a65691\",\"dweb:/ipfs/QmUeFDffQRDmX87FX3MRxN3bmpUxDTWpWLwPJzeAJ3yF6H\"]},\"@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}","storageLayout":{"storage":[{"astId":11011,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":11013,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":11017,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":11021,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":11025,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":11031,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":12431,"contract":"@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:ERC721URIStorage","label":"_tokenURIs","offset":0,"slot":"6","type":"t_mapping(t_uint256,t_string_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220289951791995b8e449c901c4b4c2bf03ac7d11a0e0a78d1677050f81215cd7de64736f6c63430008110033","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 0x28 SWAP10 MLOAD PUSH26 0x1995B8E449C901C4B4C2BF03AC7D11A0E0A78D1677050F81215C 0xD7 0xDE PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"194:8964:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8964:45;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220289951791995b8e449c901c4b4c2bf03ac7d11a0e0a78d1677050f81215cd7de64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 SWAP10 MLOAD PUSH26 0x1995B8E449C901C4B4C2BF03AC7D11A0E0A78D1677050F81215C 0xD7 0xDE PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"194:8964:45:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Checkpoints.sol":{"Checkpoints":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122050aad79bd0489e3619ac7def70d10113a2a4b9857072cae81e3a28f124aaa0dd64736f6c63430008110033","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 POP 0xAA 0xD7 SWAP12 0xD0 BASEFEE SWAP15 CALLDATASIZE NOT 0xAC PUSH30 0xEF70D10113A2A4B9857072CAE81E3A28F124AAA0DD64736F6C6343000811 STOP CALLER ","sourceMap":"708:18139:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;708:18139:46;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122050aad79bd0489e3619ac7def70d10113a2a4b9857072cae81e3a28f124aaa0dd64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP 0xAA 0xD7 SWAP12 0xD0 BASEFEE SWAP15 CALLDATASIZE NOT 0xAC PUSH30 0xEF70D10113A2A4B9857072CAE81E3A28F124AAA0DD64736F6C6343000811 STOP CALLER ","sourceMap":"708:18139:46:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"This library defines the `History` struct, for checkpointing values as they change at different points in time, and later looking up past values by block number. See {Votes} as an example. To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new checkpoint for the current transaction block using the {push} function. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Checkpoints.sol\":\"Checkpoints\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0xf586981d605e0c0f07a44e158a3da023bd526409d3709e969d323b2d91398078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df93b9e4731d4e904a7216af640c5ec0a4ef5f87051fedc2a272b3b3039f1247\",\"dweb:/ipfs/QmYvPqBpuZXxnedpn1vAMuHfustou2hByanL8zRA3qm3ob\"]},\"@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}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d43d0ef1a472ecbf50bfcb77d2940a7ecaa6b0bb1bd21c66f8a7dfc9bb52b4b864736f6c63430008110033","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 0xD4 RETURNDATASIZE 0xE CALL LOG4 PUSH19 0xECBF50BFCB77D2940A7ECAA6B0BB1BD21C66F8 0xA7 0xDF 0xC9 0xBB MSTORE 0xB4 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"424:971:48:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:48;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d43d0ef1a472ecbf50bfcb77d2940a7ecaa6b0bb1bd21c66f8a7dfc9bb52b4b864736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 RETURNDATASIZE 0xE CALL LOG4 PUSH19 0xECBF50BFCB77D2940A7ECAA6B0BB1BD21C66F8 0xA7 0xDF 0xC9 0xBB MSTORE 0xB4 0xB8 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"424:971:48:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bae0126c0f7bb817d0dc49cdfb342cdb8915c73987f523e01b6dccf5af7e146764736f6c63430008110033","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 0xBA 0xE0 SLT PUSH13 0xF7BB817D0DC49CDFB342CDB89 ISZERO 0xC7 CODECOPY DUP8 CREATE2 0x23 0xE0 SHL PUSH14 0xCCF5AF7E146764736F6C63430008 GT STOP CALLER ","sourceMap":"188:2065:49:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;188:2065:49;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bae0126c0f7bb817d0dc49cdfb342cdb8915c73987f523e01b6dccf5af7e146764736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA 0xE0 SLT PUSH13 0xF7BB817D0DC49CDFB342CDB89 ISZERO 0xC7 CODECOPY DUP8 CREATE2 0x23 0xE0 SHL PUSH14 0xCCF5AF7E146764736F6C63430008 GT STOP CALLER ","sourceMap":"188:2065:49:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Timers.sol":{"Timers":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cff423330fc42e78e21796e21526947af6f1e2de28622238525a267a2d19e66464736f6c63430008110033","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 0xCF DELEGATECALL 0x23 CALLER 0xF 0xC4 0x2E PUSH25 0xE21796E21526947AF6F1E2DE28622238525A267A2D19E66464 PUSH20 0x6F6C634300081100330000000000000000000000 ","sourceMap":"168:1873:50:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;168:1873:50;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cff423330fc42e78e21796e21526947af6f1e2de28622238525a267a2d19e66464736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF DELEGATECALL 0x23 CALLER 0xF 0xC4 0x2E PUSH25 0xE21796E21526947AF6F1E2DE28622238525A267A2D19E66464 PUSH20 0x6F6C634300081100330000000000000000000000 ","sourceMap":"168:1873:50:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Tooling for timepoints, timers and delays\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Timers.sol\":\"Timers\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e7890823680285d068f76f9d6400d626ccb308c97eb5bd17f7ac453769004e764736f6c63430008110033","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 RETURNDATACOPY PUSH25 0x90823680285D068F76F9D6400D626CCB308C97EB5BD17F7AC4 MSTORE8 PUSH23 0x9004E764736F6C63430008110033000000000000000000 ","sourceMap":"369:8168:51:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8168:51;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e7890823680285d068f76f9d6400d626ccb308c97eb5bd17f7ac453769004e764736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY PUSH25 0x90823680285D068F76F9D6400D626CCB308C97EB5BD17F7AC4 MSTORE8 PUSH23 0x9004E764736F6C63430008110033000000000000000000 ","sourceMap":"369:8168:51:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"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}","storageLayout":{"storage":[],"types":null}}},"@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.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f9b3ebee196cdd7f9d21d5f1b8a981de67d22bfef6e027fce9b5e3fa80a93b7264736f6c63430008110033","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 0xF9 0xB3 0xEB 0xEE NOT PUSH13 0xDD7F9D21D5F1B8A981DE67D22B INVALID 0xF6 0xE0 0x27 0xFC 0xE9 0xB5 0xE3 STATICCALL DUP1 0xA9 EXTCODESIZE PUSH19 0x64736F6C634300081100330000000000000000 ","sourceMap":"202:12302:55:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12302:55;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f9b3ebee196cdd7f9d21d5f1b8a981de67d22bfef6e027fce9b5e3fa80a93b7264736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF9 0xB3 0xEB 0xEE NOT PUSH13 0xDD7F9D21D5F1B8A981DE67D22B INVALID 0xF6 0xE0 0x27 0xFC 0xE9 0xB5 0xE3 STATICCALL DUP1 0xA9 EXTCODESIZE PUSH19 0x64736F6C634300081100330000000000000000 ","sourceMap":"202:12302:55:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203eb101fc2ade6ef50025d3f0b05fe85efb589be6d1878cd5495a717906bf2de364736f6c63430008110033","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 RETURNDATACOPY 0xB1 ADD 0xFC 0x2A 0xDE PUSH15 0xF50025D3F0B05FE85EFB589BE6D187 DUP13 0xD5 0x49 GAS PUSH18 0x7906BF2DE364736F6C634300081100330000 ","sourceMap":"927:34153:56:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;927:34153:56;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203eb101fc2ade6ef50025d3f0b05fe85efb589be6d1878cd5495a717906bf2de364736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY 0xB1 ADD 0xFC 0x2A 0xDE PUSH15 0xF50025D3F0B05FE85EFB589BE6D187 DUP13 0xD5 0x49 GAS PUSH18 0x7906BF2DE364736F6C634300081100330000 ","sourceMap":"927:34153:56:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol":{"DoubleEndedQueue":{"abi":[{"inputs":[],"name":"Empty","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202032d65aab7c0771139195a236ce214264c0f6d13b16e771b658e1b449bbd21664736f6c63430008110033","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 KECCAK256 ORIGIN 0xD6 GAS 0xAB PUSH29 0x771139195A236CE214264C0F6D13B16E771B658E1B449BBD21664736F PUSH13 0x63430008110033000000000000 ","sourceMap":"835:5066:57:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;835:5066:57;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202032d65aab7c0771139195a236ce214264c0f6d13b16e771b658e1b449bbd21664736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 ORIGIN 0xD6 GAS 0xAB PUSH29 0x771139195A236CE214264C0F6D13B16E771B658E1B449BBD21664736F PUSH13 0x63430008110033000000000000 ","sourceMap":"835:5066:57:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutOfBounds\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that the existing queue contents are left in storage. The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be used in storage, and not in memory. ``` DoubleEndedQueue.Bytes32Deque queue; ``` _Available since v4.6._\",\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}],\"OutOfBounds()\":[{\"details\":\"An operation (e.g. {at}) couldn't be completed due to an index being out of bounds.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":\"DoubleEndedQueue\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/structs/EnumerableMap.sol":{"EnumerableMap":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045fd76c3106883891101052145baf0ab405dd436f96ad96a03872837d799991a64736f6c63430008110033","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 GASLIMIT REVERT PUSH23 0xC3106883891101052145BAF0AB405DD436F96AD96A0387 0x28 CALLDATACOPY 0xD7 SWAP10 SWAP10 BYTE PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1621:15801:58:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1621:15801:58;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122045fd76c3106883891101052145baf0ab405dd436f96ad96a03872837d799991a64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT REVERT PUSH23 0xC3106883891101052145BAF0AB405DD436F96AD96A0387 0x28 CALLDATACOPY 0xD7 SWAP10 SWAP10 BYTE PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1621:15801:58:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableMap for EnumerableMap.UintToAddressMap;     // Declare a set state variable     EnumerableMap.UintToAddressMap private myMap; } ``` The following map types are supported: - `uint256 -> address` (`UintToAddressMap`) since v3.0.0 - `address -> uint256` (`AddressToUintMap`) since v4.6.0 - `bytes32 -> bytes32` (`Bytes32ToBytes32Map`) since v4.6.0 - `uint256 -> uint256` (`UintToUintMap`) since v4.7.0 - `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0 [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 EnumerableMap, you can either remove all elements one by one or create a fresh instance using an array of EnumerableMap. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":\"EnumerableMap\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d47395532c0e2a48b3c911f2a0244d0e95a44268bf239ac0e4afdc90a3fab1f364736f6c63430008110033","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 0xD4 PUSH20 0x95532C0E2A48B3C911F2A0244D0E95A44268BF23 SWAP11 0xC0 0xE4 0xAF 0xDC SWAP1 LOG3 STATICCALL 0xB1 RETURN PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1321:11630:59:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1321:11630:59;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d47395532c0e2a48b3c911f2a0244d0e95a44268bf239ac0e4afdc90a3fab1f364736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 PUSH20 0x95532C0E2A48B3C911F2A0244D0E95A44268BF23 SWAP11 0xC0 0xE4 0xAF 0xDC SWAP1 LOG3 STATICCALL 0xB1 RETURN PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"1321:11630:59:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/My3SecHub.sol":{"My3SecHub":{"abi":[{"inputs":[],"name":"AlreadyRegistered","type":"error"},{"inputs":[],"name":"AlreadyWithdrawn","type":"error"},{"inputs":[],"name":"CallerNotOrganization","type":"error"},{"inputs":[],"name":"IndexOutOfBounds","type":"error"},{"inputs":[],"name":"InvalidContract","type":"error"},{"inputs":[],"name":"NotCompleted","type":"error"},{"inputs":[],"name":"NotGovernance","type":"error"},{"inputs":[],"name":"NotMember","type":"error"},{"inputs":[],"name":"NotProfileOwner","type":"error"},{"inputs":[],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"string","name":"metadataURI","type":"string"}],"name":"createOrganization","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateProfile","name":"args","type":"tuple"}],"name":"createProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitPendingMemberApproved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitPendingMemberRejected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"emitProjectCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitProjectMemberAdded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitProjectMemberRemoved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"emitProjectUpdated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"emitTaskCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitTaskMemberAdded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitTaskMemberRemoved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"emitTaskUpdated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDefaultProfile","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.ProfileView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getOrganization","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOrganizationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getProfile","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.ProfileView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getProfileAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"giveEnergyTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"hasWithdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"issueCertificate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"issueCertificate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"}],"name":"joinOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"}],"name":"leaveOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"logTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"}],"name":"registerOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeEnergyFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setCertificateNFTContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"setDefaultProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setEnergyWalletContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setGovernanceTimelockContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setMy3SecProfilesContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setOrganizationFactoryContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setSkillRegistryContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setSkillWalletContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setTimeWalletContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.UpdateProfile","name":"args","type":"tuple"}],"name":"updateProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50612926806100206000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80638ac2b65a11610146578063beef9895116100c3578063ed94a4d511610087578063ed94a4d51461053c578063f08f4f641461054f578063f1b2f8bc14610562578063f2fde38b14610575578063f3fef3a314610588578063f8d674761461059b57600080fd5b8063beef9895146104d0578063cb9113f5146104e3578063d16d22f5146104f6578063df50c5d714610509578063ed535d9d1461051c57600080fd5b80639583c5391161010a5780639583c5391461047157806396937b4314610484578063979796a3146104975780639e88381a146104aa578063a8d91b02146104bd57600080fd5b80638ac2b65a146104145780638da5cb5b146104275780638ec8e6c71461043857806390be003c1461044b578063927aa63c1461045e57600080fd5b8063538be3a4116101d45780636d30ec62116101985780636d30ec62146103cb578063715018a6146103de57806375f44a3b146103e65780637f521ebe146103f95780638129fc1c1461040c57600080fd5b8063538be3a4146103695780635421eed81461037c5780635734e5e31461038f57806359dfc3f4146103a55780636427acca146103b857600080fd5b80633214a18e1161021b5780633214a18e146102f25780633c819124146103055780634526f6901461031857806346b9173a146103435780634ee2ad7c1461035657600080fd5b80630c816de4146102585780630ce51f561461026d57806316b726e5146102805780632d5d8f67146102935780632f6da008146102df575b600080fd5b61026b61026636600461227c565b6105ae565b005b61026b61027b3660046122d8565b61069f565b61026b61028e366004612331565b610825565b6102ca6102a136600461235d565b6001600160a01b03929092166000908152606f6020908152604080832093835292905220541490565b60405190151581526020015b60405180910390f35b61026b6102ed36600461235d565b610887565b61026b610300366004612392565b6108ec565b61026b61031336600461235d565b610a06565b61032b6103263660046123b4565b610a6b565b6040516001600160a01b0390911681526020016102d6565b61026b6103513660046123cd565b610aa5565b61026b6103643660046123cd565b610acf565b61026b61037736600461235d565b610bd6565b61026b61038a366004612331565b610c3b565b610397610c9d565b6040519081526020016102d6565b61026b6103b33660046123cd565b610cae565b61032b6103c63660046123ea565b610cd8565b61026b6103d9366004612331565b610e5c565b61026b610ebe565b61026b6103f4366004612474565b610ed2565b61026b61040736600461235d565b610f82565b61026b61112c565b61026b6104223660046123cd565b611242565b6033546001600160a01b031661032b565b61026b6104463660046123cd565b61126c565b61026b6104593660046123cd565b611296565b61026b61046c36600461235d565b6113d5565b61026b61047f3660046123cd565b61143a565b61026b610492366004612331565b611464565b61026b6104a53660046123cd565b6114c6565b61026b6104b8366004612392565b6114f0565b61026b6104cb36600461235d565b6115fd565b61026b6104de3660046123cd565b611662565b61026b6104f13660046123cd565b611769565b6103976105043660046124b1565b611793565b61032b6105173660046123b4565b6118ae565b61052f61052a3660046123cd565b61191c565b6040516102d6919061253e565b61026b61054a366004612331565b6119b2565b61052f61055d3660046123b4565b611a14565b61026b6105703660046123b4565b611ab4565b61026b6105833660046123cd565b611b1b565b61026b610596366004612331565b611b91565b61026b6105a93660046123cd565b611f22565b6065546001600160a01b031633146105d957604051632d5be4cb60e21b815260040160405180910390fd5b60006105e4836118ae565b606854604051636902622f60e11b81529192506000916001600160a01b039091169063d204c45e9061061c9085908790600401612563565b6020604051808303816000875af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190612587565b604051338152909150819085907f65db4d653a1dec19354793622d6b806e92c72ac3f02709ab594eaf33c3a968669060200160405180910390a350505050565b826106ab606d82611f4c565b6106c85760405163aba4733960e01b815260040160405180910390fd5b604051633af32abf60e01b81523360048201526000906001600160a01b03861690633af32abf90602401602060405180830381865afa15801561070f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073391906125a0565b90508061075357604051630b094f2760e31b815260040160405180910390fd5b600061075e856118ae565b606854604051636902622f60e11b81529192506000916001600160a01b039091169063d204c45e906107969085908990600401612563565b6020604051808303816000875af11580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190612587565b6040516001600160a01b0389168152909150819087907f65db4d653a1dec19354793622d6b806e92c72ac3f02709ab594eaf33c3a968669060200160405180910390a350505050505050565b610830606d33611f4c565b61084d5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907ffd925958b6ac7f4827324762864f38411a50c60c4a503761d9b6b96a16ab1a1390600090a35050565b610892606d33611f4c565b6108af5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fc34c0f5b92b25cb7f016cf70c271757c6c1d7e5e704874bb6f44199a9aced17760405160405180910390a4505050565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610935573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109599190612587565b606a54604051637d94dfc960e01b81526004810183905260248101869052604481018590529192506001600160a01b031690637d94dfc990606401600060405180830381600087803b1580156109ae57600080fd5b505af11580156109c2573d6000803e3d6000fd5b5050505082817f71d67da8a79dc210dc79fd6a8fdfdff23836aca4f7cc199c8b9133efd7fd2f8e846040516109f991815260200190565b60405180910390a3505050565b610a11606d33611f4c565b610a2e5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fb19d43bc2d0d4c9827d7bd1bc5d099f158bb76a4433ffa60f180d0807ac0b06660405160405180910390a4505050565b6000610a75610c9d565b8210610a9457604051634e23d03560e01b815260040160405180910390fd5b610a9f606d83611f6e565b92915050565b610aad611f7a565b606b80546001600160a01b0319166001600160a01b0392909216919091179055565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3c9190612587565b6040516367dfd4c960e01b81526004810182905290915082906001600160a01b038216906367dfd4c990602401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b50506040518492506001600160a01b03861691507f475d0ee72b70b83c26b41bbb4096ec07e54a91f28f853454d471c748b9606c3690600090a3505050565b610be1606d33611f4c565b610bfe5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167f4c2ea744845c67b745989f4f03c2e6a7ee2ebbaca9ab879014638c47324ae17260405160405180910390a4505050565b610c46606d33611f4c565b610c635760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907f20bfd29f3d906f96fc35742fac45a554b19cbd4e21f8c4c1d84cb58fdfc32c8990600090a35050565b6000610ca9606d611fd4565b905090565b610cb6611f7a565b606780546001600160a01b0319166001600160a01b0392909216919091179055565b60665460405163d8ecd92560e01b815260009182916001600160a01b039091169063d8ecd92590610d11903090889088906004016125eb565b6020604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190612619565b60405163e43252d760e01b815233600482015290915081906001600160a01b0382169063e43252d790602401600060405180830381600087803b158015610d9a57600080fd5b505af1158015610dae573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b158015610df357600080fd5b505af1158015610e07573d6000803e3d6000fd5b50505050610e1f82606d611fde90919063ffffffff16565b506040516001600160a01b038316907f2178e9c576507a4c15d3deab489af3f699a3dedbff9a7ef27c43a017027710e590600090a2509392505050565b610e67606d33611f4c565b610e845760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907fdd45ee3ab47561676021bcd5e8462ddd1f17b96c086186a3de32fe7b20c50d7090600090a35050565b610ec6611f7a565b610ed06000611ff3565b565b6000610edd836118ae565b6001600160a01b0316336001600160a01b031614905080610f115760405163f194fae560e01b815260040160405180910390fd5b6069546001600160a01b03166389c7e0a084610f2d8580612636565b6040518463ffffffff1660e01b8152600401610f4b93929190612684565b600060405180830381600087803b158015610f6557600080fd5b505af1158015610f79573d6000803e3d6000fd5b50505050505050565b82610f8e606d82611f4c565b610fab5760405163aba4733960e01b815260040160405180910390fd5b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110189190612587565b606b5460405163581823bd60e01b8152600481018390526024810186905291925086916001600160a01b039091169063581823bd90604401600060405180830381600087803b15801561106a57600080fd5b505af115801561107e573d6000803e3d6000fd5b5050604051636989fd6b60e01b81526004810185905260248101889052604481018790526001600160a01b0384169250636989fd6b9150606401600060405180830381600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b50505050817f6eb8a62f67e4ea664b22930fed1d0bd4c2adc51f8e334396238b9c513d066caf8560405161111c91815260200190565b60405180910390a2505050505050565b600054610100900460ff161580801561114c5750600054600160ff909116105b806111665750303b158015611166575060005460ff166001145b6111ce5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156111f1576000805461ff0019166101001790555b6111f9612045565b801561123f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b61124a611f7a565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b611274611f7a565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b6112a1606d82611f4c565b156112bf57604051630ea075bf60e21b815260040160405180910390fd5b803b60008190036112e3576040516303777f6960e51b815260040160405180910390fd5b6112ec82612074565b611309576040516303777f6960e51b815260040160405180910390fd5b604051633af32abf60e01b815233600482015282906001600160a01b03821690633af32abf90602401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906125a0565b61139057604051630b094f2760e31b815260040160405180910390fd5b61139b606d84611fde565b506040516001600160a01b038216907f2178e9c576507a4c15d3deab489af3f699a3dedbff9a7ef27c43a017027710e590600090a2505050565b6113e0606d33611f4c565b6113fd5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fd146d896a0849059091b2c287efec9c8dc93ac62d6e694ef347ffa5a4c3f602f60405160405180910390a4505050565b611442611f7a565b606880546001600160a01b0319166001600160a01b0392909216919091179055565b61146f606d33611f4c565b61148c5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907fc1756fd99ac9a2b1b22b5e701ddb022b897a002144d045b77ac35ce46610fef690600090a35050565b6114ce611f7a565b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d9190612587565b606a5460405163d072007d60e01b81526004810186905260248101839052604481018590529192506001600160a01b03169063d072007d90606401600060405180830381600087803b1580156115b257600080fd5b505af11580156115c6573d6000803e3d6000fd5b5050505080837f49a87a0e6655ec27b4a9d6753fe60d0250be8ab38b0e960432b1e53ec3558f5b846040516109f991815260200190565b611608606d33611f4c565b6116255760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167f68dac2ef7ff122a4dd4f78b2ef3cf6512e8079afe1bf2190c1c0ba71496825fa60405160405180910390a4505050565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa1580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf9190612587565b60405163049878f360e01b81526004810182905290915082906001600160a01b0382169063049878f390602401600060405180830381600087803b15801561171657600080fd5b505af115801561172a573d6000803e3d6000fd5b50506040518492506001600160a01b03861691507f2915d2d906edf65600a39d4eb3ea934d8baff7fddb8eea64b2f2a12c361dbeb090600090a3505050565b611771611f7a565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60695460009081906001600160a01b0316637765eba1336117b48680612636565b6040518463ffffffff1660e01b81526004016117d2939291906125eb565b6020604051808303816000875af11580156117f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118159190612587565b606a54604051632962fdc560e11b815260048101839052600a60248201529192506001600160a01b0316906352c5fb8a90604401600060405180830381600087803b15801561186357600080fd5b505af1158015611877573d6000803e3d6000fd5b50506040513392508391507f9f150021d8fd04eb219a39e3019273bddf99a9a2e434dd2aa8132e32ea9244b090600090a392915050565b6069546040516331a9108f60e11b8152600481018390526000916001600160a01b031690636352211e90602401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9f9190612619565b6040805180820190915260008152606060208201526069546040516302d8c35b60e11b81526001600160a01b03848116600483015260009216906305b186b690602401602060405180830381865afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a09190612587565b90506119ab81611a14565b9392505050565b6119bd606d33611f4c565b6119da5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907f66143dd708399cdc1a0caff468a9f98669777affcf1c8baa850011d0fdb7e50190600090a35050565b60408051808201909152600081526060602082015260695460405163c87b56dd60e01b8152600481018490526000916001600160a01b03169063c87b56dd90602401600060405180830381865afa158015611a73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9b91908101906126e3565b6040805180820190915293845260208401525090919050565b60695460405163749d392560e11b8152336004820152602481018390526001600160a01b039091169063e93a724a90604401600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b611b23611f7a565b6001600160a01b038116611b885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016111c5565b61123f81611ff3565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe9190612587565b60405163ab4fbac360e01b8152600481018490526024810182905290915083906001600160a01b0382169063ab4fbac390604401602060405180830381865afa158015611c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7391906125a0565b1515600114611c955760405163148fe22160e11b815260040160405180910390fd5b604051630eb2f3bf60e11b8152600481018490526000906001600160a01b03831690631d65e77e90602401600060405180830381865afa158015611cdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d059190810190612718565b9050600281604001516003811115611d1f57611d1f612830565b14611d3d576040516317f5db8160e21b815260040160405180910390fd5b6001600160a01b0385166000908152606f6020908152604080832087845290915290205415611d7f57604051636507689f60e01b815260040160405180910390fd5b6001600160a01b0385166000908152606f602090815260408083208784529091528120849055606082015151905b81811015611ee15760405163070f105160e11b815260048101879052602481018690526000906001600160a01b03861690630e1e20a290604401602060405180830381865afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e289190612587565b606c54606086015180519293506001600160a01b03909116916395933f8891899186908110611e5957611e59612846565b6020026020010151610e1085611e6f919061285c565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401600060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b50505050508080611ed99061287e565b915050611dad565b508385876001600160a01b03167f866b27cc904c4c5a032d369444d532a0dda150b00640dd3f77db68e2a0c378f460405160405180910390a4505050505050565b611f2a611f7a565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260018301602052604081205415156119ab565b60006119ab83836120e5565b6033546001600160a01b03163314610ed05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016111c5565b6000610a9f825490565b60006119ab836001600160a01b03841661210f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661206c5760405162461bcd60e51b81526004016111c5906128a5565b610ed061215e565b6000816001600160a01b031663997072f76040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120d0575060408051601f3d908101601f191682019092526120cd91810190612587565b60015b6120dc57506000919050565b50600192915050565b60008260000182815481106120fc576120fc612846565b9060005260206000200154905092915050565b600081815260018301602052604081205461215657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a9f565b506000610a9f565b600054610100900460ff166121855760405162461bcd60e51b81526004016111c5906128a5565b610ed033611ff3565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156121c7576121c761218e565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121f6576121f661218e565b604052919050565b600067ffffffffffffffff8211156122185761221861218e565b50601f01601f191660200190565b600082601f83011261223757600080fd5b813561224a612245826121fe565b6121cd565b81815284602083860101111561225f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561228f57600080fd5b82359150602083013567ffffffffffffffff8111156122ad57600080fd5b6122b985828601612226565b9150509250929050565b6001600160a01b038116811461123f57600080fd5b6000806000606084860312156122ed57600080fd5b83356122f8816122c3565b925060208401359150604084013567ffffffffffffffff81111561231b57600080fd5b61232786828701612226565b9150509250925092565b6000806040838503121561234457600080fd5b823561234f816122c3565b946020939093013593505050565b60008060006060848603121561237257600080fd5b833561237d816122c3565b95602085013595506040909401359392505050565b600080604083850312156123a557600080fd5b50508035926020909101359150565b6000602082840312156123c657600080fd5b5035919050565b6000602082840312156123df57600080fd5b81356119ab816122c3565b600080602083850312156123fd57600080fd5b823567ffffffffffffffff8082111561241557600080fd5b818501915085601f83011261242957600080fd5b81358181111561243857600080fd5b86602082850101111561244a57600080fd5b60209290920196919550909350505050565b60006020828403121561246e57600080fd5b50919050565b6000806040838503121561248757600080fd5b82359150602083013567ffffffffffffffff8111156124a557600080fd5b6122b98582860161245c565b6000602082840312156124c357600080fd5b813567ffffffffffffffff8111156124da57600080fd5b6124e68482850161245c565b949350505050565b60005b838110156125095781810151838201526020016124f1565b50506000910152565b6000815180845261252a8160208601602086016124ee565b601f01601f19169290920160200192915050565b6020815281516020820152600060208301516040808401526124e66060840182612512565b6001600160a01b03831681526040602082018190526000906124e690830184612512565b60006020828403121561259957600080fd5b5051919050565b6000602082840312156125b257600080fd5b815180151581146119ab57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061261090830184866125c2565b95945050505050565b60006020828403121561262b57600080fd5b81516119ab816122c3565b6000808335601e1984360301811261264d57600080fd5b83018035915067ffffffffffffffff82111561266857600080fd5b60200191503681900382131561267d57600080fd5b9250929050565b8381526040602082015260006126106040830184866125c2565b600082601f8301126126af57600080fd5b81516126bd612245826121fe565b8181528460208386010111156126d257600080fd5b6124e68260208301602087016124ee565b6000602082840312156126f557600080fd5b815167ffffffffffffffff81111561270c57600080fd5b6124e68482850161269e565b6000602080838503121561272b57600080fd5b825167ffffffffffffffff8082111561274357600080fd5b908401906080828703121561275757600080fd5b61275f6121a4565b82518152838301518281111561277457600080fd5b6127808882860161269e565b858301525060408301516004811061279757600080fd5b60408201526060830151828111156127ae57600080fd5b80840193505086601f8401126127c357600080fd5b8251828111156127d5576127d561218e565b8060051b92506127e68584016121cd565b818152928401850192858101908985111561280057600080fd5b948601945b8486101561281e57855182529486019490860190612805565b60608401525090979650505050505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008261287957634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161289e57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220ae0b4133a06176b3b37a1124ffd60849254f65fba829abf56c4722f72922da8564736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2926 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 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8AC2B65A GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xBEEF9895 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xED94A4D5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xED94A4D5 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0xF08F4F64 EQ PUSH2 0x54F JUMPI DUP1 PUSH4 0xF1B2F8BC EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x575 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x588 JUMPI DUP1 PUSH4 0xF8D67476 EQ PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBEEF9895 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xCB9113F5 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xD16D22F5 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xDF50C5D7 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xED535D9D EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9583C539 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x9583C539 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x96937B43 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x979796A3 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x9E88381A EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0xA8D91B02 EQ PUSH2 0x4BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8AC2B65A EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x8EC8E6C7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x90BE003C EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x927AA63C EQ PUSH2 0x45E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x538BE3A4 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x6D30EC62 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x6D30EC62 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x75F44A3B EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0x7F521EBE EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x538BE3A4 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x5421EED8 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x5734E5E3 EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x59DFC3F4 EQ PUSH2 0x3A5 JUMPI DUP1 PUSH4 0x6427ACCA EQ PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3214A18E GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x3214A18E EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x3C819124 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4526F690 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x46B9173A EQ PUSH2 0x343 JUMPI DUP1 PUSH4 0x4EE2AD7C EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC816DE4 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCE51F56 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x16B726E5 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0x2D5D8F67 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x2F6DA008 EQ PUSH2 0x2DF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x5AE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x22D8 JUMP JUMPDEST PUSH2 0x69F JUMP JUMPDEST PUSH2 0x26B PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x825 JUMP JUMPDEST PUSH2 0x2CA PUSH2 0x2A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x887 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2392 JUMP JUMPDEST PUSH2 0x8EC JUMP JUMPDEST PUSH2 0x26B PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x32B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0xA6B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x351 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xAA5 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xACF JUMP JUMPDEST PUSH2 0x26B PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0xC3B JUMP JUMPDEST PUSH2 0x397 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xCAE JUMP JUMPDEST PUSH2 0x32B PUSH2 0x3C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23EA JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x26B PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2474 JUMP JUMPDEST PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x112C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1242 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32B JUMP JUMPDEST PUSH2 0x26B PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1296 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x143A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x1464 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x14C6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2392 JUMP JUMPDEST PUSH2 0x14F0 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x15FD JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1662 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x397 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x24B1 JUMP JUMPDEST PUSH2 0x1793 JUMP JUMPDEST PUSH2 0x32B PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x191C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x253E JUMP JUMPDEST PUSH2 0x26B PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x19B2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x55D CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x583 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST PUSH2 0x26B PUSH2 0x596 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x1B91 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1F22 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D5BE4CB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5E4 DUP4 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x68 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6902622F PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD204C45E SWAP1 PUSH2 0x61C SWAP1 DUP6 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x63B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x65F SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 PUSH32 0x65DB4D653A1DEC19354793622D6B806E92C72AC3F02709AB594EAF33C3A96866 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x6AB PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3AF32ABF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x3AF32ABF SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x733 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x75E DUP6 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x68 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6902622F PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD204C45E SWAP1 PUSH2 0x796 SWAP1 DUP6 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL 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 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 DUP8 SWAP1 PUSH32 0x65DB4D653A1DEC19354793622D6B806E92C72AC3F02709AB594EAF33C3A96866 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x830 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xFD925958B6AC7F4827324762864F38411A50C60C4A503761D9B6B96A16AB1A13 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x892 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x8AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC34C0F5B92B25CB7F016CF70C271757C6C1D7E5E704874BB6F44199A9ACED177 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x935 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x959 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0x7D94DFC9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7D94DFC9 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 DUP2 PUSH32 0x71D67DA8A79DC210DC79FD6A8FDFDFF23836ACA4F7CC199C8B9133EFD7FD2F8E DUP5 PUSH1 0x40 MLOAD PUSH2 0x9F9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB19D43BC2D0D4C9827D7BD1BC5D099F158BB76A4433FFA60F180D0807AC0B066 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA75 PUSH2 0xC9D JUMP JUMPDEST DUP3 LT PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E23D035 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F PUSH1 0x6D DUP4 PUSH2 0x1F6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAAD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6B DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB18 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3C SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67DFD4C9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67DFD4C9 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP5 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 POP PUSH32 0x475D0EE72B70B83C26B41BBB4096EC07E54A91F28F853454D471C748B9606C36 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xBE1 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xBFE JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4C2EA744845C67B745989F4F03C2E6A7EE2EBBACA9AB879014638C47324AE172 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xC46 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x20BFD29F3D906F96FC35742FAC45A554B19CBD4E21F8C4C1D84CB58FDFC32C89 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCA9 PUSH1 0x6D PUSH2 0x1FD4 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x66 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD8ECD925 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD8ECD925 SWAP1 PUSH2 0xD11 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x25EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE43252D7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xE43252D7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0xF2FDE38B SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE07 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE1F DUP3 PUSH1 0x6D PUSH2 0x1FDE SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x2178E9C576507A4C15D3DEAB489AF3F699A3DEDBFF9A7EF27C43A017027710E5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xE67 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDD45EE3AB47561676021BCD5E8462DDD1F17B96C086186A3DE32FE7B20C50D70 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xEC6 PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0xED0 PUSH1 0x0 PUSH2 0x1FF3 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEDD DUP4 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP DUP1 PUSH2 0xF11 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF194FAE5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x89C7E0A0 DUP5 PUSH2 0xF2D DUP6 DUP1 PUSH2 0x2636 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2684 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0xF8E PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1018 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6B SLOAD PUSH1 0x40 MLOAD PUSH4 0x581823BD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP DUP7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x581823BD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x106A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x6989FD6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x6989FD6B SWAP2 POP PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH32 0x6EB8A62F67E4EA664B22930FED1D0BD4C2ADC51F8E334396238B9C513D066CAF DUP6 PUSH1 0x40 MLOAD PUSH2 0x111C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x114C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1166 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1166 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x11CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11F1 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F9 PUSH2 0x2045 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x123F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x124A PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x69 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1274 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6A DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x12A1 PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST ISZERO PUSH2 0x12BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEA075BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 EXTCODESIZE PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x12E3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3777F69 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12EC DUP3 PUSH2 0x2074 JUMP JUMPDEST PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3777F69 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3AF32ABF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3AF32ABF SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1373 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST PUSH2 0x1390 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139B PUSH1 0x6D DUP5 PUSH2 0x1FDE JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0x2178E9C576507A4C15D3DEAB489AF3F699A3DEDBFF9A7EF27C43A017027710E5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x13E0 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x13FD JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD146D896A0849059091B2C287EFEC9C8DC93AC62D6E694EF347FFA5A4C3F602F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0x1442 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x68 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x146F PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x148C JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xC1756FD99AC9A2B1B22B5E701DDB022B897A002144D045B77AC35CE46610FEF6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x14CE PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6C DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1539 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x155D SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0xD072007D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD072007D SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP4 PUSH32 0x49A87A0E6655EC27B4A9D6753FE60D0250BE8AB38B0E960432B1E53EC3558F5B DUP5 PUSH1 0x40 MLOAD PUSH2 0x9F9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x1608 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x1625 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x68DAC2EF7FF122A4DD4F78B2EF3CF6512E8079AFE1BF2190C1C0BA71496825FA PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16CF SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x49878F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x49878F3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x172A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP5 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 POP PUSH32 0x2915D2D906EDF65600A39D4EB3EA934D8BAFF7FDDB8EEA64B2F2A12C361DBEB0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1771 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7765EBA1 CALLER PUSH2 0x17B4 DUP7 DUP1 PUSH2 0x2636 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1815 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0x2962FDC5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x52C5FB8A SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP DUP4 SWAP2 POP PUSH32 0x9F150021D8FD04EB219A39E3019273BDDF99A9A2E434DD2AA8132E32EA9244B0 SWAP1 PUSH1 0x0 SWAP1 LOG3 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA9F SWAP2 SWAP1 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x197C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A0 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST SWAP1 POP PUSH2 0x19AB DUP2 PUSH2 0x1A14 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x19BD PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x19DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x66143DD708399CDC1A0CAFF468A9F98669777AFFCF1C8BAA850011D0FDB7E501 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC87B56DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC87B56DD SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A73 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 0x1A9B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x749D3925 PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE93A724A SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1B23 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x11C5 JUMP JUMPDEST PUSH2 0x123F DUP2 PUSH2 0x1FF3 JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BFE SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xAB4FBAC3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xAB4FBAC3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C73 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1C95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB2F3BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x1D65E77E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CDD 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 0x1D05 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2718 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D1F JUMPI PUSH2 0x1D1F PUSH2 0x2830 JUMP JUMPDEST EQ PUSH2 0x1D3D JUMPI PUSH1 0x40 MLOAD PUSH4 0x17F5DB81 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x40 MLOAD PUSH4 0x6507689F 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 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD MLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EE1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x70F1051 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0xE1E20A2 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E28 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6C SLOAD PUSH1 0x60 DUP7 ADD MLOAD DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x95933F88 SWAP2 DUP10 SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x1E59 JUMPI PUSH2 0x1E59 PUSH2 0x2846 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xE10 DUP6 PUSH2 0x1E6F SWAP2 SWAP1 PUSH2 0x285C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH2 0x1ED9 SWAP1 PUSH2 0x287E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DAD JUMP JUMPDEST POP DUP4 DUP6 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x866B27CC904C4C5A032D369444D532A0DDA150B00640DD3F77DB68E2A0C378F4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F2A PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x66 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19AB DUP4 DUP4 PUSH2 0x20E5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xED0 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 0x11C5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19AB DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x210F JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x206C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST PUSH2 0xED0 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x997072F7 PUSH1 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 SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x20D0 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x20CD SWAP2 DUP2 ADD SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x20DC JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x20FC JUMPI PUSH2 0x20FC PUSH2 0x2846 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2156 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 0xA9F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2185 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST PUSH2 0xED0 CALLER PUSH2 0x1FF3 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 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x21C7 JUMPI PUSH2 0x21C7 PUSH2 0x218E 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 0x21F6 JUMPI PUSH2 0x21F6 PUSH2 0x218E JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2218 JUMPI PUSH2 0x2218 PUSH2 0x218E JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x224A PUSH2 0x2245 DUP3 PUSH2 0x21FE JUMP JUMPDEST PUSH2 0x21CD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x225F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x228F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22B9 DUP6 DUP3 DUP7 ADD PUSH2 0x2226 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x123F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x22F8 DUP2 PUSH2 0x22C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x231B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2327 DUP7 DUP3 DUP8 ADD PUSH2 0x2226 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x234F DUP2 PUSH2 0x22C3 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 0x2372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x237D DUP2 PUSH2 0x22C3 JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23A5 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 0x23C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19AB DUP2 PUSH2 0x22C3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x244A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x246E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22B9 DUP6 DUP3 DUP7 ADD PUSH2 0x245C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP5 DUP3 DUP6 ADD PUSH2 0x245C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2509 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x24F1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x252A DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x24EE 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 DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH2 0x24E6 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x2512 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x24E6 SWAP1 DUP4 ADD DUP5 PUSH2 0x2512 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x19AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2610 SWAP1 DUP4 ADD DUP5 DUP7 PUSH2 0x25C2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19AB DUP2 PUSH2 0x22C3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x264D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x267D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2610 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x25C2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x26AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x26BD PUSH2 0x2245 DUP3 PUSH2 0x21FE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x24EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x270C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP5 DUP3 DUP6 ADD PUSH2 0x269E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x272B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x2757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x275F PUSH2 0x21A4 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE DUP4 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2780 DUP9 DUP3 DUP7 ADD PUSH2 0x269E JUMP JUMPDEST DUP6 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP4 POP POP DUP7 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x27C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27D5 JUMPI PUSH2 0x27D5 PUSH2 0x218E JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP3 POP PUSH2 0x27E6 DUP6 DUP5 ADD PUSH2 0x21CD JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP3 DUP5 ADD DUP6 ADD SWAP3 DUP6 DUP2 ADD SWAP1 DUP10 DUP6 GT ISZERO PUSH2 0x2800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP5 DUP7 LT ISZERO PUSH2 0x281E JUMPI DUP6 MLOAD DUP3 MSTORE SWAP5 DUP7 ADD SWAP5 SWAP1 DUP7 ADD SWAP1 PUSH2 0x2805 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE POP SWAP1 SWAP8 SWAP7 POP POP POP 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 DUP3 PUSH2 0x2879 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 0x1 DUP3 ADD PUSH2 0x289E 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 PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE SIGNEXTEND COINBASE CALLER LOG0 PUSH2 0x76B3 0xB3 PUSH27 0x1124FFD60849254F65FBA829ABF56C4722F72922DA8564736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"742:13798:60:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__Ownable_init_26":{"entryPoint":8261,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_37":{"entryPoint":8542,"id":37,"parameterSlots":0,"returnSlots":0},"@_add_19260":{"entryPoint":8463,"id":19260,"parameterSlots":2,"returnSlots":1},"@_at_19394":{"entryPoint":8421,"id":19394,"parameterSlots":2,"returnSlots":1},"@_checkOwner_68":{"entryPoint":8058,"id":68,"parameterSlots":0,"returnSlots":0},"@_contains_19363":{"entryPoint":null,"id":19363,"parameterSlots":2,"returnSlots":1},"@_isOrganizationContract_20722":{"entryPoint":8308,"id":20722,"parameterSlots":1,"returnSlots":1},"@_length_19377":{"entryPoint":null,"id":19377,"parameterSlots":1,"returnSlots":1},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_125":{"entryPoint":8179,"id":125,"parameterSlots":1,"returnSlots":0},"@add_19560":{"entryPoint":8158,"id":19560,"parameterSlots":2,"returnSlots":1},"@at_19656":{"entryPoint":8046,"id":19656,"parameterSlots":2,"returnSlots":1},"@contains_19614":{"entryPoint":8012,"id":19614,"parameterSlots":2,"returnSlots":1},"@createOrganization_20371":{"entryPoint":3288,"id":20371,"parameterSlots":2,"returnSlots":1},"@createProfile_20151":{"entryPoint":6035,"id":20151,"parameterSlots":1,"returnSlots":1},"@emitPendingMemberApproved_20836":{"entryPoint":2085,"id":20836,"parameterSlots":2,"returnSlots":0},"@emitPendingMemberRejected_20854":{"entryPoint":6578,"id":20854,"parameterSlots":2,"returnSlots":0},"@emitProjectCreated_20872":{"entryPoint":3131,"id":20872,"parameterSlots":2,"returnSlots":0},"@emitProjectMemberAdded_20911":{"entryPoint":2566,"id":20911,"parameterSlots":3,"returnSlots":0},"@emitProjectMemberRemoved_20932":{"entryPoint":5077,"id":20932,"parameterSlots":3,"returnSlots":0},"@emitProjectUpdated_20890":{"entryPoint":5220,"id":20890,"parameterSlots":2,"returnSlots":0},"@emitTaskCreated_20953":{"entryPoint":5629,"id":20953,"parameterSlots":3,"returnSlots":0},"@emitTaskMemberAdded_20992":{"entryPoint":2183,"id":20992,"parameterSlots":3,"returnSlots":0},"@emitTaskMemberRemoved_21013":{"entryPoint":3030,"id":21013,"parameterSlots":3,"returnSlots":0},"@emitTaskUpdated_20971":{"entryPoint":3676,"id":20971,"parameterSlots":2,"returnSlots":0},"@getDefaultProfile_20050":{"entryPoint":6428,"id":20050,"parameterSlots":1,"returnSlots":1},"@getOrganizationCount_20266":{"entryPoint":3229,"id":20266,"parameterSlots":0,"returnSlots":1},"@getOrganization_20295":{"entryPoint":2667,"id":20295,"parameterSlots":1,"returnSlots":1},"@getProfileAccount_20065":{"entryPoint":6318,"id":20065,"parameterSlots":1,"returnSlots":1},"@getProfile_20096":{"entryPoint":6676,"id":20096,"parameterSlots":1,"returnSlots":1},"@giveEnergyTo_20220":{"entryPoint":2284,"id":20220,"parameterSlots":2,"returnSlots":0},"@hasWithdrawn_20316":{"entryPoint":null,"id":20316,"parameterSlots":3,"returnSlots":1},"@initialize_19918":{"entryPoint":4396,"id":19918,"parameterSlots":0,"returnSlots":0},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@issueCertificate_20764":{"entryPoint":1454,"id":20764,"parameterSlots":2,"returnSlots":0},"@issueCertificate_20818":{"entryPoint":1695,"id":20818,"parameterSlots":3,"returnSlots":0},"@joinOrganization_20482":{"entryPoint":5730,"id":20482,"parameterSlots":1,"returnSlots":0},"@leaveOrganization_20518":{"entryPoint":2767,"id":20518,"parameterSlots":1,"returnSlots":0},"@length_19629":{"entryPoint":8148,"id":19629,"parameterSlots":1,"returnSlots":1},"@logTime_20570":{"entryPoint":3970,"id":20570,"parameterSlots":3,"returnSlots":0},"@owner_54":{"entryPoint":null,"id":54,"parameterSlots":0,"returnSlots":1},"@registerOrganization_20446":{"entryPoint":4758,"id":20446,"parameterSlots":1,"returnSlots":0},"@removeEnergyFrom_20254":{"entryPoint":5360,"id":20254,"parameterSlots":2,"returnSlots":0},"@renounceOwnership_82":{"entryPoint":3774,"id":82,"parameterSlots":0,"returnSlots":0},"@setCertificateNFTContract_19972":{"entryPoint":5178,"id":19972,"parameterSlots":1,"returnSlots":0},"@setDefaultProfile_20112":{"entryPoint":6836,"id":20112,"parameterSlots":1,"returnSlots":0},"@setEnergyWalletContract_20000":{"entryPoint":4716,"id":20000,"parameterSlots":1,"returnSlots":0},"@setGovernanceTimelockContractAddress_19930":{"entryPoint":5993,"id":19930,"parameterSlots":1,"returnSlots":0},"@setMy3SecProfilesContract_19986":{"entryPoint":4674,"id":19986,"parameterSlots":1,"returnSlots":0},"@setOrganizationFactoryContract_19944":{"entryPoint":7970,"id":19944,"parameterSlots":1,"returnSlots":0},"@setSkillRegistryContract_19958":{"entryPoint":3246,"id":19958,"parameterSlots":1,"returnSlots":0},"@setSkillWalletContract_20028":{"entryPoint":5318,"id":20028,"parameterSlots":1,"returnSlots":0},"@setTimeWalletContract_20014":{"entryPoint":2725,"id":20014,"parameterSlots":1,"returnSlots":0},"@transferOwnership_105":{"entryPoint":6939,"id":105,"parameterSlots":1,"returnSlots":0},"@updateProfile_20186":{"entryPoint":3794,"id":20186,"parameterSlots":2,"returnSlots":0},"@withdraw_20697":{"entryPoint":7057,"id":20697,"parameterSlots":2,"returnSlots":0},"abi_decode_string":{"entryPoint":8742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string_fromMemory":{"entryPoint":9886,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_struct_UpdateProfile_calldata":{"entryPoint":9308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":9753,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":9009,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_string_memory_ptr":{"entryPoint":8920,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":9053,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9632,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_calldata_ptr":{"entryPoint":9194,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":9955,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_CreateProfile_$22017_calldata_ptr":{"entryPoint":9393,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_TaskView_$22111_memory_ptr_fromMemory":{"entryPoint":10008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":9140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":9607,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_string_memory_ptr":{"entryPoint":8828,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_struct$_UpdateProfile_$22020_calldata_ptr":{"entryPoint":9332,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9106,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":9490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string_calldata":{"entryPoint":9666,"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_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9707,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9571,"id":null,"parameterSlots":3,"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_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10405,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_ProfileView_$22025_memory_ptr__to_t_struct$_ProfileView_$22025_memory_ptr__fromStack_reversed":{"entryPoint":9534,"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_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9860,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint16__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"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_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":9782,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":8653,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_memory_1969":{"entryPoint":8612,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_string":{"entryPoint":8702,"id":null,"parameterSlots":1,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":10332,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":9454,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":10366,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x21":{"entryPoint":10288,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":10310,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8590,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":8899,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15404:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"192:207:89","statements":[{"nodeType":"YulAssignment","src":"202:19:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"218:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"212:5:89"},"nodeType":"YulFunctionCall","src":"212:9:89"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"202:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"230:35:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"252:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"260:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"248:3:89"},"nodeType":"YulFunctionCall","src":"248:17:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"234:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"340:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"342:16:89"},"nodeType":"YulFunctionCall","src":"342:18:89"},"nodeType":"YulExpressionStatement","src":"342:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"283:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"295:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"280:2:89"},"nodeType":"YulFunctionCall","src":"280:34:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"319:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"331:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"316:2:89"},"nodeType":"YulFunctionCall","src":"316:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"277:2:89"},"nodeType":"YulFunctionCall","src":"277:62:89"},"nodeType":"YulIf","src":"274:88:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"378:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"382:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"371:6:89"},"nodeType":"YulFunctionCall","src":"371:22:89"},"nodeType":"YulExpressionStatement","src":"371:22:89"}]},"name":"allocate_memory_1969","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"181:6:89","type":""}],"src":"146:253:89"},{"body":{"nodeType":"YulBlock","src":"449:230:89","statements":[{"nodeType":"YulAssignment","src":"459:19:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"475:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"469:5:89"},"nodeType":"YulFunctionCall","src":"469:9:89"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"459:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"487:58:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"509:6:89"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"525:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"531:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"521:3:89"},"nodeType":"YulFunctionCall","src":"521:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"540:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"536:3:89"},"nodeType":"YulFunctionCall","src":"536:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"517:3:89"},"nodeType":"YulFunctionCall","src":"517:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"505:3:89"},"nodeType":"YulFunctionCall","src":"505:40:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"491:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"620:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"622:16:89"},"nodeType":"YulFunctionCall","src":"622:18:89"},"nodeType":"YulExpressionStatement","src":"622:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"563:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"575:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"560:2:89"},"nodeType":"YulFunctionCall","src":"560:34:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"599:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"611:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"596:2:89"},"nodeType":"YulFunctionCall","src":"596:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"557:2:89"},"nodeType":"YulFunctionCall","src":"557:62:89"},"nodeType":"YulIf","src":"554:88:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"658:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"662:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"651:6:89"},"nodeType":"YulFunctionCall","src":"651:22:89"},"nodeType":"YulExpressionStatement","src":"651:22:89"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"429:4:89","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"438:6:89","type":""}],"src":"404:275:89"},{"body":{"nodeType":"YulBlock","src":"742:129:89","statements":[{"body":{"nodeType":"YulBlock","src":"786:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"788:16:89"},"nodeType":"YulFunctionCall","src":"788:18:89"},"nodeType":"YulExpressionStatement","src":"788:18:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"758:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"766:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"755:2:89"},"nodeType":"YulFunctionCall","src":"755:30:89"},"nodeType":"YulIf","src":"752:56:89"},{"nodeType":"YulAssignment","src":"817:48:89","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"837:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"845:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"833:3:89"},"nodeType":"YulFunctionCall","src":"833:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"854:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"850:3:89"},"nodeType":"YulFunctionCall","src":"850:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"829:3:89"},"nodeType":"YulFunctionCall","src":"829:29:89"},{"kind":"number","nodeType":"YulLiteral","src":"860:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"825:3:89"},"nodeType":"YulFunctionCall","src":"825:40:89"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"817:4:89"}]}]},"name":"array_allocation_size_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"722:6:89","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"733:4:89","type":""}],"src":"684:187:89"},{"body":{"nodeType":"YulBlock","src":"929:411:89","statements":[{"body":{"nodeType":"YulBlock","src":"978:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"987:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"990:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"980:6:89"},"nodeType":"YulFunctionCall","src":"980:12:89"},"nodeType":"YulExpressionStatement","src":"980:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"957:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"965:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"953:3:89"},"nodeType":"YulFunctionCall","src":"953:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"972:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"949:3:89"},"nodeType":"YulFunctionCall","src":"949:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"942:6:89"},"nodeType":"YulFunctionCall","src":"942:35:89"},"nodeType":"YulIf","src":"939:55:89"},{"nodeType":"YulVariableDeclaration","src":"1003:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1026:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1013:12:89"},"nodeType":"YulFunctionCall","src":"1013:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1007:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1042:64:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1102:2:89"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"1073:28:89"},"nodeType":"YulFunctionCall","src":"1073:32:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1057:15:89"},"nodeType":"YulFunctionCall","src":"1057:49:89"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1046:7:89","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1122:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1131:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1115:6:89"},"nodeType":"YulFunctionCall","src":"1115:19:89"},"nodeType":"YulExpressionStatement","src":"1115:19:89"},{"body":{"nodeType":"YulBlock","src":"1182:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1191:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1194:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1184:6:89"},"nodeType":"YulFunctionCall","src":"1184:12:89"},"nodeType":"YulExpressionStatement","src":"1184:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1157:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1165:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:89"},"nodeType":"YulFunctionCall","src":"1153:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"1170:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1149:3:89"},"nodeType":"YulFunctionCall","src":"1149:26:89"},{"name":"end","nodeType":"YulIdentifier","src":"1177:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1146:2:89"},"nodeType":"YulFunctionCall","src":"1146:35:89"},"nodeType":"YulIf","src":"1143:55:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1224:7:89"},{"kind":"number","nodeType":"YulLiteral","src":"1233:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1220:3:89"},"nodeType":"YulFunctionCall","src":"1220:18:89"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1244:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1252:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1240:3:89"},"nodeType":"YulFunctionCall","src":"1240:17:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1259:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1207:12:89"},"nodeType":"YulFunctionCall","src":"1207:55:89"},"nodeType":"YulExpressionStatement","src":"1207:55:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1286:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1295:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1282:3:89"},"nodeType":"YulFunctionCall","src":"1282:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"1300:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1278:3:89"},"nodeType":"YulFunctionCall","src":"1278:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"1307:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1271:6:89"},"nodeType":"YulFunctionCall","src":"1271:38:89"},"nodeType":"YulExpressionStatement","src":"1271:38:89"},{"nodeType":"YulAssignment","src":"1318:16:89","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1327:7:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1318:5:89"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"903:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"911:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"919:5:89","type":""}],"src":"876:464:89"},{"body":{"nodeType":"YulBlock","src":"1442:293:89","statements":[{"body":{"nodeType":"YulBlock","src":"1488:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1497:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1500:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1490:6:89"},"nodeType":"YulFunctionCall","src":"1490:12:89"},"nodeType":"YulExpressionStatement","src":"1490:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1463:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1472:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1459:3:89"},"nodeType":"YulFunctionCall","src":"1459:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1484:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1455:3:89"},"nodeType":"YulFunctionCall","src":"1455:32:89"},"nodeType":"YulIf","src":"1452:52:89"},{"nodeType":"YulAssignment","src":"1513:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1536:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1523:12:89"},"nodeType":"YulFunctionCall","src":"1523:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1513:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1555:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1586:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1597:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1582:3:89"},"nodeType":"YulFunctionCall","src":"1582:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1569:12:89"},"nodeType":"YulFunctionCall","src":"1569:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1559:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1644:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1653:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1656:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1646:6:89"},"nodeType":"YulFunctionCall","src":"1646:12:89"},"nodeType":"YulExpressionStatement","src":"1646:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1616:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1624:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1613:2:89"},"nodeType":"YulFunctionCall","src":"1613:30:89"},"nodeType":"YulIf","src":"1610:50:89"},{"nodeType":"YulAssignment","src":"1669:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1712:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:89"},"nodeType":"YulFunctionCall","src":"1697:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1721:7:89"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"1679:17:89"},"nodeType":"YulFunctionCall","src":"1679:50:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1669:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1400:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1411:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1423:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1431:6:89","type":""}],"src":"1345:390:89"},{"body":{"nodeType":"YulBlock","src":"1785:86:89","statements":[{"body":{"nodeType":"YulBlock","src":"1849:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1858:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1861:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1851:6:89"},"nodeType":"YulFunctionCall","src":"1851:12:89"},"nodeType":"YulExpressionStatement","src":"1851:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1808:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1819:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1839:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1830:3:89"},"nodeType":"YulFunctionCall","src":"1830:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1843:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1826:3:89"},"nodeType":"YulFunctionCall","src":"1826:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:89"},"nodeType":"YulFunctionCall","src":"1815:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1805:2:89"},"nodeType":"YulFunctionCall","src":"1805:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1798:6:89"},"nodeType":"YulFunctionCall","src":"1798:50:89"},"nodeType":"YulIf","src":"1795:70:89"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1774:5:89","type":""}],"src":"1740:131:89"},{"body":{"nodeType":"YulBlock","src":"1990:411:89","statements":[{"body":{"nodeType":"YulBlock","src":"2036:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2045:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2048:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2038:6:89"},"nodeType":"YulFunctionCall","src":"2038:12:89"},"nodeType":"YulExpressionStatement","src":"2038:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2011:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2020:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2007:3:89"},"nodeType":"YulFunctionCall","src":"2007:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2032:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2003:3:89"},"nodeType":"YulFunctionCall","src":"2003:32:89"},"nodeType":"YulIf","src":"2000:52:89"},{"nodeType":"YulVariableDeclaration","src":"2061:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2087:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2074:12:89"},"nodeType":"YulFunctionCall","src":"2074:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2065:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2131:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2106:24:89"},"nodeType":"YulFunctionCall","src":"2106:31:89"},"nodeType":"YulExpressionStatement","src":"2106:31:89"},{"nodeType":"YulAssignment","src":"2146:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"2156:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2146:6:89"}]},{"nodeType":"YulAssignment","src":"2170:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2197:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2208:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2193:3:89"},"nodeType":"YulFunctionCall","src":"2193:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2180:12:89"},"nodeType":"YulFunctionCall","src":"2180:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2170:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2221:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2263:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2248:3:89"},"nodeType":"YulFunctionCall","src":"2248:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2235:12:89"},"nodeType":"YulFunctionCall","src":"2235:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2225:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2310:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2319:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2322:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2312:6:89"},"nodeType":"YulFunctionCall","src":"2312:12:89"},"nodeType":"YulExpressionStatement","src":"2312:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2282:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2290:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2279:2:89"},"nodeType":"YulFunctionCall","src":"2279:30:89"},"nodeType":"YulIf","src":"2276:50:89"},{"nodeType":"YulAssignment","src":"2335:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2367:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2378:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2363:3:89"},"nodeType":"YulFunctionCall","src":"2363:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2387:7:89"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"2345:17:89"},"nodeType":"YulFunctionCall","src":"2345:50:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2335:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1940:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1951:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1963:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1971:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1979:6:89","type":""}],"src":"1876:525:89"},{"body":{"nodeType":"YulBlock","src":"2493:228:89","statements":[{"body":{"nodeType":"YulBlock","src":"2539:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2548:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2551:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2541:6:89"},"nodeType":"YulFunctionCall","src":"2541:12:89"},"nodeType":"YulExpressionStatement","src":"2541:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2514:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2523:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2510:3:89"},"nodeType":"YulFunctionCall","src":"2510:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2535:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2506:3:89"},"nodeType":"YulFunctionCall","src":"2506:32:89"},"nodeType":"YulIf","src":"2503:52:89"},{"nodeType":"YulVariableDeclaration","src":"2564:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2577:12:89"},"nodeType":"YulFunctionCall","src":"2577:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2568:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2634:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2609:24:89"},"nodeType":"YulFunctionCall","src":"2609:31:89"},"nodeType":"YulExpressionStatement","src":"2609:31:89"},{"nodeType":"YulAssignment","src":"2649:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"2659:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2649:6:89"}]},{"nodeType":"YulAssignment","src":"2673:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2700:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2711:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2696:3:89"},"nodeType":"YulFunctionCall","src":"2696:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2683:12:89"},"nodeType":"YulFunctionCall","src":"2683:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2673:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2451:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2462:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2474:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2482:6:89","type":""}],"src":"2406:315:89"},{"body":{"nodeType":"YulBlock","src":"2830:279:89","statements":[{"body":{"nodeType":"YulBlock","src":"2876:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2885:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2888:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2878:6:89"},"nodeType":"YulFunctionCall","src":"2878:12:89"},"nodeType":"YulExpressionStatement","src":"2878:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2851:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2860:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2847:3:89"},"nodeType":"YulFunctionCall","src":"2847:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2872:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2843:3:89"},"nodeType":"YulFunctionCall","src":"2843:32:89"},"nodeType":"YulIf","src":"2840:52:89"},{"nodeType":"YulVariableDeclaration","src":"2901:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2927:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2914:12:89"},"nodeType":"YulFunctionCall","src":"2914:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2905:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2971:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2946:24:89"},"nodeType":"YulFunctionCall","src":"2946:31:89"},"nodeType":"YulExpressionStatement","src":"2946:31:89"},{"nodeType":"YulAssignment","src":"2986:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"2996:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2986:6:89"}]},{"nodeType":"YulAssignment","src":"3010:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3037:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3048:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3033:3:89"},"nodeType":"YulFunctionCall","src":"3033:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3020:12:89"},"nodeType":"YulFunctionCall","src":"3020:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3010:6:89"}]},{"nodeType":"YulAssignment","src":"3061:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3099:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:89"},"nodeType":"YulFunctionCall","src":"3084:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3071:12:89"},"nodeType":"YulFunctionCall","src":"3071:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3061:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2780:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2791:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2803:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2811:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2819:6:89","type":""}],"src":"2726:383:89"},{"body":{"nodeType":"YulBlock","src":"3209:92:89","statements":[{"nodeType":"YulAssignment","src":"3219:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3231:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3242:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3227:3:89"},"nodeType":"YulFunctionCall","src":"3227:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3219:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3261:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3286:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3279:6:89"},"nodeType":"YulFunctionCall","src":"3279:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3272:6:89"},"nodeType":"YulFunctionCall","src":"3272:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3254:6:89"},"nodeType":"YulFunctionCall","src":"3254:41:89"},"nodeType":"YulExpressionStatement","src":"3254:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3178:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3189:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3200:4:89","type":""}],"src":"3114:187:89"},{"body":{"nodeType":"YulBlock","src":"3393:161:89","statements":[{"body":{"nodeType":"YulBlock","src":"3439:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3448:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3451:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3441:6:89"},"nodeType":"YulFunctionCall","src":"3441:12:89"},"nodeType":"YulExpressionStatement","src":"3441:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3414:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3423:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3410:3:89"},"nodeType":"YulFunctionCall","src":"3410:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3435:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3406:3:89"},"nodeType":"YulFunctionCall","src":"3406:32:89"},"nodeType":"YulIf","src":"3403:52:89"},{"nodeType":"YulAssignment","src":"3464:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3487:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3474:12:89"},"nodeType":"YulFunctionCall","src":"3474:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3464:6:89"}]},{"nodeType":"YulAssignment","src":"3506:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3533:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3544:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3529:3:89"},"nodeType":"YulFunctionCall","src":"3529:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3516:12:89"},"nodeType":"YulFunctionCall","src":"3516:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3506:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3351:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3362:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3374:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3382:6:89","type":""}],"src":"3306:248:89"},{"body":{"nodeType":"YulBlock","src":"3629:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"3675:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3684:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3687:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3677:6:89"},"nodeType":"YulFunctionCall","src":"3677:12:89"},"nodeType":"YulExpressionStatement","src":"3677:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3650:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3659:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3646:3:89"},"nodeType":"YulFunctionCall","src":"3646:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3642:3:89"},"nodeType":"YulFunctionCall","src":"3642:32:89"},"nodeType":"YulIf","src":"3639:52:89"},{"nodeType":"YulAssignment","src":"3700:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3723:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3710:12:89"},"nodeType":"YulFunctionCall","src":"3710:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3700:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3595:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3606:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3618:6:89","type":""}],"src":"3559:180:89"},{"body":{"nodeType":"YulBlock","src":"3845:102:89","statements":[{"nodeType":"YulAssignment","src":"3855:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3867:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3878:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3863:3:89"},"nodeType":"YulFunctionCall","src":"3863:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3855:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3897:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3912:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3928:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3933:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3924:3:89"},"nodeType":"YulFunctionCall","src":"3924:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"3937:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3920:3:89"},"nodeType":"YulFunctionCall","src":"3920:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3908:3:89"},"nodeType":"YulFunctionCall","src":"3908:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3890:6:89"},"nodeType":"YulFunctionCall","src":"3890:51:89"},"nodeType":"YulExpressionStatement","src":"3890:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3814:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3825:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3836:4:89","type":""}],"src":"3744:203:89"},{"body":{"nodeType":"YulBlock","src":"4022:177:89","statements":[{"body":{"nodeType":"YulBlock","src":"4068:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4077:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4080:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4070:6:89"},"nodeType":"YulFunctionCall","src":"4070:12:89"},"nodeType":"YulExpressionStatement","src":"4070:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4043:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4052:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4039:3:89"},"nodeType":"YulFunctionCall","src":"4039:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4064:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4035:3:89"},"nodeType":"YulFunctionCall","src":"4035:32:89"},"nodeType":"YulIf","src":"4032:52:89"},{"nodeType":"YulVariableDeclaration","src":"4093:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4119:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4106:12:89"},"nodeType":"YulFunctionCall","src":"4106:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4097:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4163:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4138:24:89"},"nodeType":"YulFunctionCall","src":"4138:31:89"},"nodeType":"YulExpressionStatement","src":"4138:31:89"},{"nodeType":"YulAssignment","src":"4178:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"4188:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4178:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3988:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3999:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4011:6:89","type":""}],"src":"3952:247:89"},{"body":{"nodeType":"YulBlock","src":"4305:76:89","statements":[{"nodeType":"YulAssignment","src":"4315:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4327:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4338:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4323:3:89"},"nodeType":"YulFunctionCall","src":"4323:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4315:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4357:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"4368:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4350:6:89"},"nodeType":"YulFunctionCall","src":"4350:25:89"},"nodeType":"YulExpressionStatement","src":"4350:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4274:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4285:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4296:4:89","type":""}],"src":"4204:177:89"},{"body":{"nodeType":"YulBlock","src":"4476:502:89","statements":[{"body":{"nodeType":"YulBlock","src":"4522:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4531:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4534:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4524:6:89"},"nodeType":"YulFunctionCall","src":"4524:12:89"},"nodeType":"YulExpressionStatement","src":"4524:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4497:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4506:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4493:3:89"},"nodeType":"YulFunctionCall","src":"4493:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4518:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4489:3:89"},"nodeType":"YulFunctionCall","src":"4489:32:89"},"nodeType":"YulIf","src":"4486:52:89"},{"nodeType":"YulVariableDeclaration","src":"4547:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4574:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4561:12:89"},"nodeType":"YulFunctionCall","src":"4561:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4551:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4593:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"4603:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4597:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4648:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4657:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4660:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4650:6:89"},"nodeType":"YulFunctionCall","src":"4650:12:89"},"nodeType":"YulExpressionStatement","src":"4650:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4636:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4644:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4633:2:89"},"nodeType":"YulFunctionCall","src":"4633:14:89"},"nodeType":"YulIf","src":"4630:34:89"},{"nodeType":"YulVariableDeclaration","src":"4673:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4687:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4698:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4683:3:89"},"nodeType":"YulFunctionCall","src":"4683:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4677:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4753:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4762:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4765:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4755:6:89"},"nodeType":"YulFunctionCall","src":"4755:12:89"},"nodeType":"YulExpressionStatement","src":"4755:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4732:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4736:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4728:3:89"},"nodeType":"YulFunctionCall","src":"4728:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4743:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4724:3:89"},"nodeType":"YulFunctionCall","src":"4724:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4717:6:89"},"nodeType":"YulFunctionCall","src":"4717:35:89"},"nodeType":"YulIf","src":"4714:55:89"},{"nodeType":"YulVariableDeclaration","src":"4778:30:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4805:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4792:12:89"},"nodeType":"YulFunctionCall","src":"4792:16:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4782:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4835:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4844:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4847:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4837:6:89"},"nodeType":"YulFunctionCall","src":"4837:12:89"},"nodeType":"YulExpressionStatement","src":"4837:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4823:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4831:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4820:2:89"},"nodeType":"YulFunctionCall","src":"4820:14:89"},"nodeType":"YulIf","src":"4817:34:89"},{"body":{"nodeType":"YulBlock","src":"4901:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4910:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4913:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4903:6:89"},"nodeType":"YulFunctionCall","src":"4903:12:89"},"nodeType":"YulExpressionStatement","src":"4903:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4874:2:89"},{"name":"length","nodeType":"YulIdentifier","src":"4878:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4870:3:89"},"nodeType":"YulFunctionCall","src":"4870:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"4887:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4866:3:89"},"nodeType":"YulFunctionCall","src":"4866:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4892:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4863:2:89"},"nodeType":"YulFunctionCall","src":"4863:37:89"},"nodeType":"YulIf","src":"4860:57:89"},{"nodeType":"YulAssignment","src":"4926:21:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4940:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4944:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4936:3:89"},"nodeType":"YulFunctionCall","src":"4936:11:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4926:6:89"}]},{"nodeType":"YulAssignment","src":"4956:16:89","value":{"name":"length","nodeType":"YulIdentifier","src":"4966:6:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4956:6:89"}]}]},"name":"abi_decode_tuple_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4434:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4445:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4457:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4465:6:89","type":""}],"src":"4386:592:89"},{"body":{"nodeType":"YulBlock","src":"5059:85:89","statements":[{"body":{"nodeType":"YulBlock","src":"5098:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5107:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5110:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5100:6:89"},"nodeType":"YulFunctionCall","src":"5100:12:89"},"nodeType":"YulExpressionStatement","src":"5100:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5080:3:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5085:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5076:3:89"},"nodeType":"YulFunctionCall","src":"5076:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"5094:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5072:3:89"},"nodeType":"YulFunctionCall","src":"5072:25:89"},"nodeType":"YulIf","src":"5069:45:89"},{"nodeType":"YulAssignment","src":"5123:15:89","value":{"name":"offset","nodeType":"YulIdentifier","src":"5132:6:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5123:5:89"}]}]},"name":"abi_decode_struct_UpdateProfile_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5033:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"5041:3:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5049:5:89","type":""}],"src":"4983:161:89"},{"body":{"nodeType":"YulBlock","src":"5270:316:89","statements":[{"body":{"nodeType":"YulBlock","src":"5316:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5325:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5328:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5318:6:89"},"nodeType":"YulFunctionCall","src":"5318:12:89"},"nodeType":"YulExpressionStatement","src":"5318:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5291:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5300:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5287:3:89"},"nodeType":"YulFunctionCall","src":"5287:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5312:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5283:3:89"},"nodeType":"YulFunctionCall","src":"5283:32:89"},"nodeType":"YulIf","src":"5280:52:89"},{"nodeType":"YulAssignment","src":"5341:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5364:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5351:12:89"},"nodeType":"YulFunctionCall","src":"5351:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5341:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5383:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5414:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5425:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5410:3:89"},"nodeType":"YulFunctionCall","src":"5410:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5397:12:89"},"nodeType":"YulFunctionCall","src":"5397:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5387:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5472:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5481:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5484:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5474:6:89"},"nodeType":"YulFunctionCall","src":"5474:12:89"},"nodeType":"YulExpressionStatement","src":"5474:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5444:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5452:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5441:2:89"},"nodeType":"YulFunctionCall","src":"5441:30:89"},"nodeType":"YulIf","src":"5438:50:89"},{"nodeType":"YulAssignment","src":"5497:83:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5552:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5563:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5548:3:89"},"nodeType":"YulFunctionCall","src":"5548:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5572:7:89"}],"functionName":{"name":"abi_decode_struct_UpdateProfile_calldata","nodeType":"YulIdentifier","src":"5507:40:89"},"nodeType":"YulFunctionCall","src":"5507:73:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5497:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_UpdateProfile_$22020_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5228:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5239:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5251:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5259:6:89","type":""}],"src":"5149:437:89"},{"body":{"nodeType":"YulBlock","src":"5695:265:89","statements":[{"body":{"nodeType":"YulBlock","src":"5741:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5750:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5753:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5743:6:89"},"nodeType":"YulFunctionCall","src":"5743:12:89"},"nodeType":"YulExpressionStatement","src":"5743:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5716:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5725:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5712:3:89"},"nodeType":"YulFunctionCall","src":"5712:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5737:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5708:3:89"},"nodeType":"YulFunctionCall","src":"5708:32:89"},"nodeType":"YulIf","src":"5705:52:89"},{"nodeType":"YulVariableDeclaration","src":"5766:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5793:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5780:12:89"},"nodeType":"YulFunctionCall","src":"5780:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5770:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5846:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5855:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5858:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5848:6:89"},"nodeType":"YulFunctionCall","src":"5848:12:89"},"nodeType":"YulExpressionStatement","src":"5848:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5818:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5826:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5815:2:89"},"nodeType":"YulFunctionCall","src":"5815:30:89"},"nodeType":"YulIf","src":"5812:50:89"},{"nodeType":"YulAssignment","src":"5871:83:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5926:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5937:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5922:3:89"},"nodeType":"YulFunctionCall","src":"5922:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5946:7:89"}],"functionName":{"name":"abi_decode_struct_UpdateProfile_calldata","nodeType":"YulIdentifier","src":"5881:40:89"},"nodeType":"YulFunctionCall","src":"5881:73:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5871:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_CreateProfile_$22017_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5661:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5672:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5684:6:89","type":""}],"src":"5591:369:89"},{"body":{"nodeType":"YulBlock","src":"6031:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"6041:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6050:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6045:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6110:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6135:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"6140:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6131:3:89"},"nodeType":"YulFunctionCall","src":"6131:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6154:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"6159:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6150:3:89"},"nodeType":"YulFunctionCall","src":"6150:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6144:5:89"},"nodeType":"YulFunctionCall","src":"6144:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6124:6:89"},"nodeType":"YulFunctionCall","src":"6124:39:89"},"nodeType":"YulExpressionStatement","src":"6124:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6071:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"6074:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6068:2:89"},"nodeType":"YulFunctionCall","src":"6068:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6082:19:89","statements":[{"nodeType":"YulAssignment","src":"6084:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6093:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"6096:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6089:3:89"},"nodeType":"YulFunctionCall","src":"6089:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6084:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"6064:3:89","statements":[]},"src":"6060:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6193:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"6198:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6189:3:89"},"nodeType":"YulFunctionCall","src":"6189:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"6207:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6182:6:89"},"nodeType":"YulFunctionCall","src":"6182:27:89"},"nodeType":"YulExpressionStatement","src":"6182:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"6009:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"6014:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"6019:6:89","type":""}],"src":"5965:250:89"},{"body":{"nodeType":"YulBlock","src":"6270:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"6280:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6300:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6294:5:89"},"nodeType":"YulFunctionCall","src":"6294:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6284:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6322:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"6327:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6315:6:89"},"nodeType":"YulFunctionCall","src":"6315:19:89"},"nodeType":"YulExpressionStatement","src":"6315:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6382:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"6389:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6378:3:89"},"nodeType":"YulFunctionCall","src":"6378:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6400:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"6405:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6396:3:89"},"nodeType":"YulFunctionCall","src":"6396:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"6412:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6343:34:89"},"nodeType":"YulFunctionCall","src":"6343:76:89"},"nodeType":"YulExpressionStatement","src":"6343:76:89"},{"nodeType":"YulAssignment","src":"6428:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6443:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6456:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6464:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6452:3:89"},"nodeType":"YulFunctionCall","src":"6452:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6473:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6469:3:89"},"nodeType":"YulFunctionCall","src":"6469:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6448:3:89"},"nodeType":"YulFunctionCall","src":"6448:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6439:3:89"},"nodeType":"YulFunctionCall","src":"6439:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"6480:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6435:3:89"},"nodeType":"YulFunctionCall","src":"6435:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6428:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6247:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6254:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6262:3:89","type":""}],"src":"6220:271:89"},{"body":{"nodeType":"YulBlock","src":"6657:249:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6674:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6685:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6667:6:89"},"nodeType":"YulFunctionCall","src":"6667:21:89"},"nodeType":"YulExpressionStatement","src":"6667:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6719:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6704:3:89"},"nodeType":"YulFunctionCall","src":"6704:18:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6730:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6724:5:89"},"nodeType":"YulFunctionCall","src":"6724:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6697:6:89"},"nodeType":"YulFunctionCall","src":"6697:41:89"},"nodeType":"YulExpressionStatement","src":"6697:41:89"},{"nodeType":"YulVariableDeclaration","src":"6747:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6777:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6785:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6773:3:89"},"nodeType":"YulFunctionCall","src":"6773:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6767:5:89"},"nodeType":"YulFunctionCall","src":"6767:22:89"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6751:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6809:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6820:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6805:3:89"},"nodeType":"YulFunctionCall","src":"6805:20:89"},{"kind":"number","nodeType":"YulLiteral","src":"6827:4:89","type":"","value":"0x40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6798:6:89"},"nodeType":"YulFunctionCall","src":"6798:34:89"},"nodeType":"YulExpressionStatement","src":"6798:34:89"},{"nodeType":"YulAssignment","src":"6841:59:89","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6867:12:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6885:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6896:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6881:3:89"},"nodeType":"YulFunctionCall","src":"6881:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"6849:17:89"},"nodeType":"YulFunctionCall","src":"6849:51:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6841:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_ProfileView_$22025_memory_ptr__to_t_struct$_ProfileView_$22025_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6626:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6637:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6648:4:89","type":""}],"src":"6496:410:89"},{"body":{"nodeType":"YulBlock","src":"7060:168:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7077:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7092:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7108:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7113:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7104:3:89"},"nodeType":"YulFunctionCall","src":"7104:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"7117:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7100:3:89"},"nodeType":"YulFunctionCall","src":"7100:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7088:3:89"},"nodeType":"YulFunctionCall","src":"7088:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7070:6:89"},"nodeType":"YulFunctionCall","src":"7070:51:89"},"nodeType":"YulExpressionStatement","src":"7070:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7141:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7152:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7137:3:89"},"nodeType":"YulFunctionCall","src":"7137:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7157:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7130:6:89"},"nodeType":"YulFunctionCall","src":"7130:30:89"},"nodeType":"YulExpressionStatement","src":"7130:30:89"},{"nodeType":"YulAssignment","src":"7169:53:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7195:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7207:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7218:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7203:3:89"},"nodeType":"YulFunctionCall","src":"7203:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"7177:17:89"},"nodeType":"YulFunctionCall","src":"7177:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7169:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7021:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7032:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7040:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7051:4:89","type":""}],"src":"6911:317:89"},{"body":{"nodeType":"YulBlock","src":"7314:103:89","statements":[{"body":{"nodeType":"YulBlock","src":"7360:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7369:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7372:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7362:6:89"},"nodeType":"YulFunctionCall","src":"7362:12:89"},"nodeType":"YulExpressionStatement","src":"7362:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7335:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"7344:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7331:3:89"},"nodeType":"YulFunctionCall","src":"7331:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"7356:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7327:3:89"},"nodeType":"YulFunctionCall","src":"7327:32:89"},"nodeType":"YulIf","src":"7324:52:89"},{"nodeType":"YulAssignment","src":"7385:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7401:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7395:5:89"},"nodeType":"YulFunctionCall","src":"7395:16:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7385:6:89"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7280:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7291:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7303:6:89","type":""}],"src":"7233:184:89"},{"body":{"nodeType":"YulBlock","src":"7500:199:89","statements":[{"body":{"nodeType":"YulBlock","src":"7546:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7555:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7558:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7548:6:89"},"nodeType":"YulFunctionCall","src":"7548:12:89"},"nodeType":"YulExpressionStatement","src":"7548:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7521:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"7530:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7517:3:89"},"nodeType":"YulFunctionCall","src":"7517:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"7542:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7513:3:89"},"nodeType":"YulFunctionCall","src":"7513:32:89"},"nodeType":"YulIf","src":"7510:52:89"},{"nodeType":"YulVariableDeclaration","src":"7571:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7590:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7584:5:89"},"nodeType":"YulFunctionCall","src":"7584:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7575:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7653:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7662:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7665:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7655:6:89"},"nodeType":"YulFunctionCall","src":"7655:12:89"},"nodeType":"YulExpressionStatement","src":"7655:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7622:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7643:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7636:6:89"},"nodeType":"YulFunctionCall","src":"7636:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7629:6:89"},"nodeType":"YulFunctionCall","src":"7629:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7619:2:89"},"nodeType":"YulFunctionCall","src":"7619:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7612:6:89"},"nodeType":"YulFunctionCall","src":"7612:40:89"},"nodeType":"YulIf","src":"7609:60:89"},{"nodeType":"YulAssignment","src":"7678:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"7688:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7678:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7466:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7477:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7489:6:89","type":""}],"src":"7422:277:89"},{"body":{"nodeType":"YulBlock","src":"7861:162:89","statements":[{"nodeType":"YulAssignment","src":"7871:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7883:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7894:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7879:3:89"},"nodeType":"YulFunctionCall","src":"7879:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7871:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7913:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"7924:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:89"},"nodeType":"YulFunctionCall","src":"7906:25:89"},"nodeType":"YulExpressionStatement","src":"7906:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7951:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7962:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7947:3:89"},"nodeType":"YulFunctionCall","src":"7947:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"7967:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7940:6:89"},"nodeType":"YulFunctionCall","src":"7940:34:89"},"nodeType":"YulExpressionStatement","src":"7940:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7994:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8005:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7990:3:89"},"nodeType":"YulFunctionCall","src":"7990:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"8010:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7983:6:89"},"nodeType":"YulFunctionCall","src":"7983:34:89"},"nodeType":"YulExpressionStatement","src":"7983:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7814:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7825:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7833:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7841:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7852:4:89","type":""}],"src":"7704:319:89"},{"body":{"nodeType":"YulBlock","src":"8095:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8112:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"8117:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8105:6:89"},"nodeType":"YulFunctionCall","src":"8105:19:89"},"nodeType":"YulExpressionStatement","src":"8105:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8150:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"8155:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8146:3:89"},"nodeType":"YulFunctionCall","src":"8146:14:89"},{"name":"start","nodeType":"YulIdentifier","src":"8162:5:89"},{"name":"length","nodeType":"YulIdentifier","src":"8169:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"8133:12:89"},"nodeType":"YulFunctionCall","src":"8133:43:89"},"nodeType":"YulExpressionStatement","src":"8133:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8200:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"8205:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8196:3:89"},"nodeType":"YulFunctionCall","src":"8196:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"8214:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8192:3:89"},"nodeType":"YulFunctionCall","src":"8192:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"8221:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8185:6:89"},"nodeType":"YulFunctionCall","src":"8185:38:89"},"nodeType":"YulExpressionStatement","src":"8185:38:89"},{"nodeType":"YulAssignment","src":"8232:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8247:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8260:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8268:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8256:3:89"},"nodeType":"YulFunctionCall","src":"8256:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8277:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8273:3:89"},"nodeType":"YulFunctionCall","src":"8273:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8252:3:89"},"nodeType":"YulFunctionCall","src":"8252:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8243:3:89"},"nodeType":"YulFunctionCall","src":"8243:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"8284:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8239:3:89"},"nodeType":"YulFunctionCall","src":"8239:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8232:3:89"}]}]},"name":"abi_encode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"8064:5:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"8071:6:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8079:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8087:3:89","type":""}],"src":"8028:267:89"},{"body":{"nodeType":"YulBlock","src":"8459:185:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8476:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8507:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8512:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8503:3:89"},"nodeType":"YulFunctionCall","src":"8503:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"8516:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8499:3:89"},"nodeType":"YulFunctionCall","src":"8499:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8487:3:89"},"nodeType":"YulFunctionCall","src":"8487:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8469:6:89"},"nodeType":"YulFunctionCall","src":"8469:51:89"},"nodeType":"YulExpressionStatement","src":"8469:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8540:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8551:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8536:3:89"},"nodeType":"YulFunctionCall","src":"8536:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8556:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8529:6:89"},"nodeType":"YulFunctionCall","src":"8529:30:89"},"nodeType":"YulExpressionStatement","src":"8529:30:89"},{"nodeType":"YulAssignment","src":"8568:70:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8603:6:89"},{"name":"value2","nodeType":"YulIdentifier","src":"8611:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8623:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8634:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8619:3:89"},"nodeType":"YulFunctionCall","src":"8619:18:89"}],"functionName":{"name":"abi_encode_string_calldata","nodeType":"YulIdentifier","src":"8576:26:89"},"nodeType":"YulFunctionCall","src":"8576:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8568:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8412:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8423:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8431:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8439:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8450:4:89","type":""}],"src":"8300:344:89"},{"body":{"nodeType":"YulBlock","src":"8730:170:89","statements":[{"body":{"nodeType":"YulBlock","src":"8776:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8785:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8788:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8778:6:89"},"nodeType":"YulFunctionCall","src":"8778:12:89"},"nodeType":"YulExpressionStatement","src":"8778:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8751:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"8760:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8747:3:89"},"nodeType":"YulFunctionCall","src":"8747:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"8772:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8743:3:89"},"nodeType":"YulFunctionCall","src":"8743:32:89"},"nodeType":"YulIf","src":"8740:52:89"},{"nodeType":"YulVariableDeclaration","src":"8801:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8820:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8814:5:89"},"nodeType":"YulFunctionCall","src":"8814:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8805:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8864:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8839:24:89"},"nodeType":"YulFunctionCall","src":"8839:31:89"},"nodeType":"YulExpressionStatement","src":"8839:31:89"},{"nodeType":"YulAssignment","src":"8879:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"8889:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8879:6:89"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8696:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8707:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8719:6:89","type":""}],"src":"8649:251:89"},{"body":{"nodeType":"YulBlock","src":"9000:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"9010:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"9049:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9036:12:89"},"nodeType":"YulFunctionCall","src":"9036:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"9014:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9150:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9159:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9162:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9152:6:89"},"nodeType":"YulFunctionCall","src":"9152:12:89"},"nodeType":"YulExpressionStatement","src":"9152:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"9084:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"9112:12:89"},"nodeType":"YulFunctionCall","src":"9112:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"9128:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9108:3:89"},"nodeType":"YulFunctionCall","src":"9108:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9143:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9139:3:89"},"nodeType":"YulFunctionCall","src":"9139:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9104:3:89"},"nodeType":"YulFunctionCall","src":"9104:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9080:3:89"},"nodeType":"YulFunctionCall","src":"9080:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9073:6:89"},"nodeType":"YulFunctionCall","src":"9073:76:89"},"nodeType":"YulIf","src":"9070:96:89"},{"nodeType":"YulVariableDeclaration","src":"9175:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"9193:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"9203:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9189:3:89"},"nodeType":"YulFunctionCall","src":"9189:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"9179:6:89","type":""}]},{"nodeType":"YulAssignment","src":"9231:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"9254:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9241:12:89"},"nodeType":"YulFunctionCall","src":"9241:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9231:6:89"}]},{"body":{"nodeType":"YulBlock","src":"9304:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9313:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9316:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9306:6:89"},"nodeType":"YulFunctionCall","src":"9306:12:89"},"nodeType":"YulExpressionStatement","src":"9306:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9276:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9284:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9273:2:89"},"nodeType":"YulFunctionCall","src":"9273:30:89"},"nodeType":"YulIf","src":"9270:50:89"},{"nodeType":"YulAssignment","src":"9329:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"9341:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9349:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9337:3:89"},"nodeType":"YulFunctionCall","src":"9337:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"9329:4:89"}]},{"body":{"nodeType":"YulBlock","src":"9405:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9414:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9417:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9407:6:89"},"nodeType":"YulFunctionCall","src":"9407:12:89"},"nodeType":"YulExpressionStatement","src":"9407:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"9370:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"9380:12:89"},"nodeType":"YulFunctionCall","src":"9380:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"9396:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9376:3:89"},"nodeType":"YulFunctionCall","src":"9376:27:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"9366:3:89"},"nodeType":"YulFunctionCall","src":"9366:38:89"},"nodeType":"YulIf","src":"9363:58:89"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"8957:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"8967:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"8983:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"8989:6:89","type":""}],"src":"8905:522:89"},{"body":{"nodeType":"YulBlock","src":"9591:159:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9608:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"9619:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9601:6:89"},"nodeType":"YulFunctionCall","src":"9601:25:89"},"nodeType":"YulExpressionStatement","src":"9601:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9646:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9657:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9642:3:89"},"nodeType":"YulFunctionCall","src":"9642:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9662:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9635:6:89"},"nodeType":"YulFunctionCall","src":"9635:30:89"},"nodeType":"YulExpressionStatement","src":"9635:30:89"},{"nodeType":"YulAssignment","src":"9674:70:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9709:6:89"},{"name":"value2","nodeType":"YulIdentifier","src":"9717:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9729:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9740:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9725:3:89"},"nodeType":"YulFunctionCall","src":"9725:18:89"}],"functionName":{"name":"abi_encode_string_calldata","nodeType":"YulIdentifier","src":"9682:26:89"},"nodeType":"YulFunctionCall","src":"9682:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9674:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9544:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9555:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9563:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9571:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9582:4:89","type":""}],"src":"9432:318:89"},{"body":{"nodeType":"YulBlock","src":"9884:119:89","statements":[{"nodeType":"YulAssignment","src":"9894:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9906:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9917:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9902:3:89"},"nodeType":"YulFunctionCall","src":"9902:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9894:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9936:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"9947:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9929:6:89"},"nodeType":"YulFunctionCall","src":"9929:25:89"},"nodeType":"YulExpressionStatement","src":"9929:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9974:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9985:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9970:3:89"},"nodeType":"YulFunctionCall","src":"9970:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"9990:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9963:6:89"},"nodeType":"YulFunctionCall","src":"9963:34:89"},"nodeType":"YulExpressionStatement","src":"9963:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9845:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9856:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9864:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9875:4:89","type":""}],"src":"9755:248:89"},{"body":{"nodeType":"YulBlock","src":"10182:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10199:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10210:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10192:6:89"},"nodeType":"YulFunctionCall","src":"10192:21:89"},"nodeType":"YulExpressionStatement","src":"10192:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10233:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10244:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10229:3:89"},"nodeType":"YulFunctionCall","src":"10229:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10249:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10222:6:89"},"nodeType":"YulFunctionCall","src":"10222:30:89"},"nodeType":"YulExpressionStatement","src":"10222:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10272:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10283:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10268:3:89"},"nodeType":"YulFunctionCall","src":"10268:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"10288:34:89","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10261:6:89"},"nodeType":"YulFunctionCall","src":"10261:62:89"},"nodeType":"YulExpressionStatement","src":"10261:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10343:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10354:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10339:3:89"},"nodeType":"YulFunctionCall","src":"10339:18:89"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"10359:16:89","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10332:6:89"},"nodeType":"YulFunctionCall","src":"10332:44:89"},"nodeType":"YulExpressionStatement","src":"10332:44:89"},{"nodeType":"YulAssignment","src":"10385:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10397:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10408:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10393:3:89"},"nodeType":"YulFunctionCall","src":"10393:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10385:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10159:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10173:4:89","type":""}],"src":"10008:410:89"},{"body":{"nodeType":"YulBlock","src":"10530:87:89","statements":[{"nodeType":"YulAssignment","src":"10540:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10552:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10563:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10548:3:89"},"nodeType":"YulFunctionCall","src":"10548:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10540:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10582:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10597:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10605:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10593:3:89"},"nodeType":"YulFunctionCall","src":"10593:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10575:6:89"},"nodeType":"YulFunctionCall","src":"10575:36:89"},"nodeType":"YulExpressionStatement","src":"10575:36:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10499:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10510:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10521:4:89","type":""}],"src":"10423:194:89"},{"body":{"nodeType":"YulBlock","src":"10750:132:89","statements":[{"nodeType":"YulAssignment","src":"10760:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10772:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10783:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10768:3:89"},"nodeType":"YulFunctionCall","src":"10768:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10760:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10802:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"10813:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10795:6:89"},"nodeType":"YulFunctionCall","src":"10795:25:89"},"nodeType":"YulExpressionStatement","src":"10795:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10840:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10851:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10836:3:89"},"nodeType":"YulFunctionCall","src":"10836:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10860:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10868:6:89","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10856:3:89"},"nodeType":"YulFunctionCall","src":"10856:19:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10829:6:89"},"nodeType":"YulFunctionCall","src":"10829:47:89"},"nodeType":"YulExpressionStatement","src":"10829:47:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint16__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10711:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10722:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10730:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10741:4:89","type":""}],"src":"10622:260:89"},{"body":{"nodeType":"YulBlock","src":"10951:379:89","statements":[{"body":{"nodeType":"YulBlock","src":"11000:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11009:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11012:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11002:6:89"},"nodeType":"YulFunctionCall","src":"11002:12:89"},"nodeType":"YulExpressionStatement","src":"11002:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10979:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10987:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10975:3:89"},"nodeType":"YulFunctionCall","src":"10975:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"10994:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10971:3:89"},"nodeType":"YulFunctionCall","src":"10971:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10964:6:89"},"nodeType":"YulFunctionCall","src":"10964:35:89"},"nodeType":"YulIf","src":"10961:55:89"},{"nodeType":"YulVariableDeclaration","src":"11025:23:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11041:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11035:5:89"},"nodeType":"YulFunctionCall","src":"11035:13:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11029:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11057:64:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11117:2:89"}],"functionName":{"name":"array_allocation_size_string","nodeType":"YulIdentifier","src":"11088:28:89"},"nodeType":"YulFunctionCall","src":"11088:32:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"11072:15:89"},"nodeType":"YulFunctionCall","src":"11072:49:89"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"11061:7:89","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"11137:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"11146:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11130:6:89"},"nodeType":"YulFunctionCall","src":"11130:19:89"},"nodeType":"YulExpressionStatement","src":"11130:19:89"},{"body":{"nodeType":"YulBlock","src":"11197:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11206:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11209:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11199:6:89"},"nodeType":"YulFunctionCall","src":"11199:12:89"},"nodeType":"YulExpressionStatement","src":"11199:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11172:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"11180:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11168:3:89"},"nodeType":"YulFunctionCall","src":"11168:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"11185:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11164:3:89"},"nodeType":"YulFunctionCall","src":"11164:26:89"},{"name":"end","nodeType":"YulIdentifier","src":"11192:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11161:2:89"},"nodeType":"YulFunctionCall","src":"11161:35:89"},"nodeType":"YulIf","src":"11158:55:89"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11261:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"11269:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11257:3:89"},"nodeType":"YulFunctionCall","src":"11257:17:89"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"11280:7:89"},{"kind":"number","nodeType":"YulLiteral","src":"11289:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11276:3:89"},"nodeType":"YulFunctionCall","src":"11276:18:89"},{"name":"_1","nodeType":"YulIdentifier","src":"11296:2:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11222:34:89"},"nodeType":"YulFunctionCall","src":"11222:77:89"},"nodeType":"YulExpressionStatement","src":"11222:77:89"},{"nodeType":"YulAssignment","src":"11308:16:89","value":{"name":"array_1","nodeType":"YulIdentifier","src":"11317:7:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"11308:5:89"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"10925:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"10933:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"10941:5:89","type":""}],"src":"10887:443:89"},{"body":{"nodeType":"YulBlock","src":"11426:246:89","statements":[{"body":{"nodeType":"YulBlock","src":"11472:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11481:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11484:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11474:6:89"},"nodeType":"YulFunctionCall","src":"11474:12:89"},"nodeType":"YulExpressionStatement","src":"11474:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11447:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"11456:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11443:3:89"},"nodeType":"YulFunctionCall","src":"11443:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"11468:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11439:3:89"},"nodeType":"YulFunctionCall","src":"11439:32:89"},"nodeType":"YulIf","src":"11436:52:89"},{"nodeType":"YulVariableDeclaration","src":"11497:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11517:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11511:5:89"},"nodeType":"YulFunctionCall","src":"11511:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11501:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"11570:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11579:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11582:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11572:6:89"},"nodeType":"YulFunctionCall","src":"11572:12:89"},"nodeType":"YulExpressionStatement","src":"11572:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11542:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"11550:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11539:2:89"},"nodeType":"YulFunctionCall","src":"11539:30:89"},"nodeType":"YulIf","src":"11536:50:89"},{"nodeType":"YulAssignment","src":"11595:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11638:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"11649:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11634:3:89"},"nodeType":"YulFunctionCall","src":"11634:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11658:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"11605:28:89"},"nodeType":"YulFunctionCall","src":"11605:61:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11595:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11392:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11403:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11415:6:89","type":""}],"src":"11335:337:89"},{"body":{"nodeType":"YulBlock","src":"11806:145:89","statements":[{"nodeType":"YulAssignment","src":"11816:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11828:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11839:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11824:3:89"},"nodeType":"YulFunctionCall","src":"11824:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11816:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11858:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11873:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11889:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11894:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11885:3:89"},"nodeType":"YulFunctionCall","src":"11885:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"11898:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11881:3:89"},"nodeType":"YulFunctionCall","src":"11881:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11869:3:89"},"nodeType":"YulFunctionCall","src":"11869:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11851:6:89"},"nodeType":"YulFunctionCall","src":"11851:51:89"},"nodeType":"YulExpressionStatement","src":"11851:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11922:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11933:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11918:3:89"},"nodeType":"YulFunctionCall","src":"11918:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"11938:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11911:6:89"},"nodeType":"YulFunctionCall","src":"11911:34:89"},"nodeType":"YulExpressionStatement","src":"11911:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11767:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11778:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11786:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11797:4:89","type":""}],"src":"11677:274:89"},{"body":{"nodeType":"YulBlock","src":"12130:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12147:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12158:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12140:6:89"},"nodeType":"YulFunctionCall","src":"12140:21:89"},"nodeType":"YulExpressionStatement","src":"12140:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12181:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12192:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12177:3:89"},"nodeType":"YulFunctionCall","src":"12177:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12197:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12170:6:89"},"nodeType":"YulFunctionCall","src":"12170:30:89"},"nodeType":"YulExpressionStatement","src":"12170:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12231:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:89"},"nodeType":"YulFunctionCall","src":"12216:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"12236:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12209:6:89"},"nodeType":"YulFunctionCall","src":"12209:62:89"},"nodeType":"YulExpressionStatement","src":"12209:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12291:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12302:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12287:3:89"},"nodeType":"YulFunctionCall","src":"12287:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"12307:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12280:6:89"},"nodeType":"YulFunctionCall","src":"12280:36:89"},"nodeType":"YulExpressionStatement","src":"12280:36:89"},{"nodeType":"YulAssignment","src":"12325:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12337:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12348:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12333:3:89"},"nodeType":"YulFunctionCall","src":"12333:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12325:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12107:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12121:4:89","type":""}],"src":"11956:402:89"},{"body":{"nodeType":"YulBlock","src":"12471:1435:89","statements":[{"nodeType":"YulVariableDeclaration","src":"12481:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"12491:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12485:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12538:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12547:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12550:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12540:6:89"},"nodeType":"YulFunctionCall","src":"12540:12:89"},"nodeType":"YulExpressionStatement","src":"12540:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12513:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"12522:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12509:3:89"},"nodeType":"YulFunctionCall","src":"12509:23:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12534:2:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12505:3:89"},"nodeType":"YulFunctionCall","src":"12505:32:89"},"nodeType":"YulIf","src":"12502:52:89"},{"nodeType":"YulVariableDeclaration","src":"12563:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12583:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12577:5:89"},"nodeType":"YulFunctionCall","src":"12577:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12567:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12602:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"12612:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12606:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12657:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12666:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12669:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12659:6:89"},"nodeType":"YulFunctionCall","src":"12659:12:89"},"nodeType":"YulExpressionStatement","src":"12659:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12645:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"12653:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12642:2:89"},"nodeType":"YulFunctionCall","src":"12642:14:89"},"nodeType":"YulIf","src":"12639:34:89"},{"nodeType":"YulVariableDeclaration","src":"12682:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12696:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"12707:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12692:3:89"},"nodeType":"YulFunctionCall","src":"12692:22:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"12686:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12754:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12763:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12766:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12756:6:89"},"nodeType":"YulFunctionCall","src":"12756:12:89"},"nodeType":"YulExpressionStatement","src":"12756:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12734:7:89"},{"name":"_3","nodeType":"YulIdentifier","src":"12743:2:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12730:3:89"},"nodeType":"YulFunctionCall","src":"12730:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"12748:4:89","type":"","value":"0x80"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12726:3:89"},"nodeType":"YulFunctionCall","src":"12726:27:89"},"nodeType":"YulIf","src":"12723:47:89"},{"nodeType":"YulVariableDeclaration","src":"12779:35:89","value":{"arguments":[],"functionName":{"name":"allocate_memory_1969","nodeType":"YulIdentifier","src":"12792:20:89"},"nodeType":"YulFunctionCall","src":"12792:22:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12783:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12830:5:89"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"12843:2:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12837:5:89"},"nodeType":"YulFunctionCall","src":"12837:9:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12823:6:89"},"nodeType":"YulFunctionCall","src":"12823:24:89"},"nodeType":"YulExpressionStatement","src":"12823:24:89"},{"nodeType":"YulVariableDeclaration","src":"12856:34:89","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"12882:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12886:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12878:3:89"},"nodeType":"YulFunctionCall","src":"12878:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12872:5:89"},"nodeType":"YulFunctionCall","src":"12872:18:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"12860:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12928:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12921:6:89"},"nodeType":"YulFunctionCall","src":"12921:12:89"},"nodeType":"YulExpressionStatement","src":"12921:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12905:8:89"},{"name":"_2","nodeType":"YulIdentifier","src":"12915:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12902:2:89"},"nodeType":"YulFunctionCall","src":"12902:16:89"},"nodeType":"YulIf","src":"12899:36:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12955:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12962:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12951:3:89"},"nodeType":"YulFunctionCall","src":"12951:14:89"},{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"13000:2:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"13004:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12996:3:89"},"nodeType":"YulFunctionCall","src":"12996:17:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13015:7:89"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"12967:28:89"},"nodeType":"YulFunctionCall","src":"12967:56:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12944:6:89"},"nodeType":"YulFunctionCall","src":"12944:80:89"},"nodeType":"YulExpressionStatement","src":"12944:80:89"},{"nodeType":"YulVariableDeclaration","src":"13033:33:89","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"13058:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"13062:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13054:3:89"},"nodeType":"YulFunctionCall","src":"13054:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13048:5:89"},"nodeType":"YulFunctionCall","src":"13048:18:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"13037:7:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13101:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13110:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13113:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13103:6:89"},"nodeType":"YulFunctionCall","src":"13103:12:89"},"nodeType":"YulExpressionStatement","src":"13103:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"13088:7:89"},{"kind":"number","nodeType":"YulLiteral","src":"13097:1:89","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13085:2:89"},"nodeType":"YulFunctionCall","src":"13085:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13078:6:89"},"nodeType":"YulFunctionCall","src":"13078:22:89"},"nodeType":"YulIf","src":"13075:42:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13137:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"13144:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13133:3:89"},"nodeType":"YulFunctionCall","src":"13133:14:89"},{"name":"value_1","nodeType":"YulIdentifier","src":"13149:7:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13126:6:89"},"nodeType":"YulFunctionCall","src":"13126:31:89"},"nodeType":"YulExpressionStatement","src":"13126:31:89"},{"nodeType":"YulVariableDeclaration","src":"13166:34:89","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"13192:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"13196:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13188:3:89"},"nodeType":"YulFunctionCall","src":"13188:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13182:5:89"},"nodeType":"YulFunctionCall","src":"13182:18:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"13170:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13229:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13238:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13241:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13231:6:89"},"nodeType":"YulFunctionCall","src":"13231:12:89"},"nodeType":"YulExpressionStatement","src":"13231:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"13215:8:89"},{"name":"_2","nodeType":"YulIdentifier","src":"13225:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13212:2:89"},"nodeType":"YulFunctionCall","src":"13212:16:89"},"nodeType":"YulIf","src":"13209:36:89"},{"nodeType":"YulVariableDeclaration","src":"13254:27:89","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"13268:2:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"13272:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13264:3:89"},"nodeType":"YulFunctionCall","src":"13264:17:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"13258:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13329:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13338:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13341:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13331:6:89"},"nodeType":"YulFunctionCall","src":"13331:12:89"},"nodeType":"YulExpressionStatement","src":"13331:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13308:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"13312:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13304:3:89"},"nodeType":"YulFunctionCall","src":"13304:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13319:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13300:3:89"},"nodeType":"YulFunctionCall","src":"13300:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13293:6:89"},"nodeType":"YulFunctionCall","src":"13293:35:89"},"nodeType":"YulIf","src":"13290:55:89"},{"nodeType":"YulVariableDeclaration","src":"13354:19:89","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13370:2:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13364:5:89"},"nodeType":"YulFunctionCall","src":"13364:9:89"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"13358:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13396:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13398:16:89"},"nodeType":"YulFunctionCall","src":"13398:18:89"},"nodeType":"YulExpressionStatement","src":"13398:18:89"}]},"condition":{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"13388:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"13392:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13385:2:89"},"nodeType":"YulFunctionCall","src":"13385:10:89"},"nodeType":"YulIf","src":"13382:36:89"},{"nodeType":"YulVariableDeclaration","src":"13427:20:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13441:1:89","type":"","value":"5"},{"name":"_5","nodeType":"YulIdentifier","src":"13444:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13437:3:89"},"nodeType":"YulFunctionCall","src":"13437:10:89"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"13431:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13456:39:89","value":{"arguments":[{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"13487:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13491:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13483:3:89"},"nodeType":"YulFunctionCall","src":"13483:11:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"13467:15:89"},"nodeType":"YulFunctionCall","src":"13467:28:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"13460:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13504:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"13517:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"13508:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13536:3:89"},{"name":"_5","nodeType":"YulIdentifier","src":"13541:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13529:6:89"},"nodeType":"YulFunctionCall","src":"13529:15:89"},"nodeType":"YulExpressionStatement","src":"13529:15:89"},{"nodeType":"YulAssignment","src":"13553:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13564:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13569:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13560:3:89"},"nodeType":"YulFunctionCall","src":"13560:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"13553:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"13581:34:89","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13603:2:89"},{"name":"_6","nodeType":"YulIdentifier","src":"13607:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13599:3:89"},"nodeType":"YulFunctionCall","src":"13599:11:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13612:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13595:3:89"},"nodeType":"YulFunctionCall","src":"13595:20:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"13585:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13647:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13656:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13659:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13649:6:89"},"nodeType":"YulFunctionCall","src":"13649:12:89"},"nodeType":"YulExpressionStatement","src":"13649:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"13630:6:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13638:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13627:2:89"},"nodeType":"YulFunctionCall","src":"13627:19:89"},"nodeType":"YulIf","src":"13624:39:89"},{"nodeType":"YulVariableDeclaration","src":"13672:22:89","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"13687:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13691:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13683:3:89"},"nodeType":"YulFunctionCall","src":"13683:11:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"13676:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13759:79:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13780:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13791:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13785:5:89"},"nodeType":"YulFunctionCall","src":"13785:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13773:6:89"},"nodeType":"YulFunctionCall","src":"13773:23:89"},"nodeType":"YulExpressionStatement","src":"13773:23:89"},{"nodeType":"YulAssignment","src":"13809:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13820:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13825:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13816:3:89"},"nodeType":"YulFunctionCall","src":"13816:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"13809:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13714:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"13719:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13711:2:89"},"nodeType":"YulFunctionCall","src":"13711:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13727:23:89","statements":[{"nodeType":"YulAssignment","src":"13729:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13740:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13745:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13736:3:89"},"nodeType":"YulFunctionCall","src":"13736:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"13729:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"13707:3:89","statements":[]},"src":"13703:135:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13858:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"13865:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13854:3:89"},"nodeType":"YulFunctionCall","src":"13854:14:89"},{"name":"dst_1","nodeType":"YulIdentifier","src":"13870:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13847:6:89"},"nodeType":"YulFunctionCall","src":"13847:29:89"},"nodeType":"YulExpressionStatement","src":"13847:29:89"},{"nodeType":"YulAssignment","src":"13885:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"13895:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13885:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_TaskView_$22111_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12437:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"12448:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12460:6:89","type":""}],"src":"12363:1543:89"},{"body":{"nodeType":"YulBlock","src":"13943:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13960:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13967:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13972:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13963:3:89"},"nodeType":"YulFunctionCall","src":"13963:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13953:6:89"},"nodeType":"YulFunctionCall","src":"13953:31:89"},"nodeType":"YulExpressionStatement","src":"13953:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14000:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14003:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13993:6:89"},"nodeType":"YulFunctionCall","src":"13993:15:89"},"nodeType":"YulExpressionStatement","src":"13993:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14024:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14027:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14017:6:89"},"nodeType":"YulFunctionCall","src":"14017:15:89"},"nodeType":"YulExpressionStatement","src":"14017:15:89"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"13911:127:89"},{"body":{"nodeType":"YulBlock","src":"14075:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14092:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14099:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14104:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14095:3:89"},"nodeType":"YulFunctionCall","src":"14095:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14085:6:89"},"nodeType":"YulFunctionCall","src":"14085:31:89"},"nodeType":"YulExpressionStatement","src":"14085:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14132:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14135:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14125:6:89"},"nodeType":"YulFunctionCall","src":"14125:15:89"},"nodeType":"YulExpressionStatement","src":"14125:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14156:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14159:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14149:6:89"},"nodeType":"YulFunctionCall","src":"14149:15:89"},"nodeType":"YulExpressionStatement","src":"14149:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"14043:127:89"},{"body":{"nodeType":"YulBlock","src":"14221:171:89","statements":[{"body":{"nodeType":"YulBlock","src":"14252:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14273:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14280:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14285:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14276:3:89"},"nodeType":"YulFunctionCall","src":"14276:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14266:6:89"},"nodeType":"YulFunctionCall","src":"14266:31:89"},"nodeType":"YulExpressionStatement","src":"14266:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14317:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14320:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14310:6:89"},"nodeType":"YulFunctionCall","src":"14310:15:89"},"nodeType":"YulExpressionStatement","src":"14310:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14345:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14348:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14338:6:89"},"nodeType":"YulFunctionCall","src":"14338:15:89"},"nodeType":"YulExpressionStatement","src":"14338:15:89"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14241:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14234:6:89"},"nodeType":"YulFunctionCall","src":"14234:9:89"},"nodeType":"YulIf","src":"14231:132:89"},{"nodeType":"YulAssignment","src":"14372:14:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14381:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"14384:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14377:3:89"},"nodeType":"YulFunctionCall","src":"14377:9:89"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"14372:1:89"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14206:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"14209:1:89","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14215:1:89","type":""}],"src":"14175:217:89"},{"body":{"nodeType":"YulBlock","src":"14444:185:89","statements":[{"body":{"nodeType":"YulBlock","src":"14483:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14504:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14511:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14516:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14507:3:89"},"nodeType":"YulFunctionCall","src":"14507:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14497:6:89"},"nodeType":"YulFunctionCall","src":"14497:31:89"},"nodeType":"YulExpressionStatement","src":"14497:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14548:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14551:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14541:6:89"},"nodeType":"YulFunctionCall","src":"14541:15:89"},"nodeType":"YulExpressionStatement","src":"14541:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14576:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14579:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14569:6:89"},"nodeType":"YulFunctionCall","src":"14569:15:89"},"nodeType":"YulExpressionStatement","src":"14569:15:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14460:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14471:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14467:3:89"},"nodeType":"YulFunctionCall","src":"14467:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14457:2:89"},"nodeType":"YulFunctionCall","src":"14457:17:89"},"nodeType":"YulIf","src":"14454:140:89"},{"nodeType":"YulAssignment","src":"14603:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14614:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"14621:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14610:3:89"},"nodeType":"YulFunctionCall","src":"14610:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14603:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14426:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14436:3:89","type":""}],"src":"14397:232:89"},{"body":{"nodeType":"YulBlock","src":"14808:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14825:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14836:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14818:6:89"},"nodeType":"YulFunctionCall","src":"14818:21:89"},"nodeType":"YulExpressionStatement","src":"14818:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14859:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14870:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14855:3:89"},"nodeType":"YulFunctionCall","src":"14855:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"14875:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14848:6:89"},"nodeType":"YulFunctionCall","src":"14848:30:89"},"nodeType":"YulExpressionStatement","src":"14848:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14898:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14909:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14894:3:89"},"nodeType":"YulFunctionCall","src":"14894:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"14914:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14887:6:89"},"nodeType":"YulFunctionCall","src":"14887:62:89"},"nodeType":"YulExpressionStatement","src":"14887:62:89"},{"nodeType":"YulAssignment","src":"14958:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14970:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14981:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14966:3:89"},"nodeType":"YulFunctionCall","src":"14966:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14958:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14785:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14799:4:89","type":""}],"src":"14634:356:89"},{"body":{"nodeType":"YulBlock","src":"15169:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15186:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15197:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15179:6:89"},"nodeType":"YulFunctionCall","src":"15179:21:89"},"nodeType":"YulExpressionStatement","src":"15179:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15231:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15216:3:89"},"nodeType":"YulFunctionCall","src":"15216:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15236:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15209:6:89"},"nodeType":"YulFunctionCall","src":"15209:30:89"},"nodeType":"YulExpressionStatement","src":"15209:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15259:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15270:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15255:3:89"},"nodeType":"YulFunctionCall","src":"15255:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"15275:34:89","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15248:6:89"},"nodeType":"YulFunctionCall","src":"15248:62:89"},"nodeType":"YulExpressionStatement","src":"15248:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15330:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15341:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15326:3:89"},"nodeType":"YulFunctionCall","src":"15326:18:89"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"15346:13:89","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15319:6:89"},"nodeType":"YulFunctionCall","src":"15319:41:89"},"nodeType":"YulExpressionStatement","src":"15319:41:89"},{"nodeType":"YulAssignment","src":"15369:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15381:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15392:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15377:3:89"},"nodeType":"YulFunctionCall","src":"15377:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15369:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15146:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15160:4:89","type":""}],"src":"14995:407:89"}]},"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_1969() -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, 0x80)\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), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\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), not(31)), 0x20)\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 array_1 := allocate_memory(array_allocation_size_string(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset), dataEnd)\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_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(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_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_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_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, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_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_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if 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        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_decode_struct_UpdateProfile_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 32) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_uint256t_struct$_UpdateProfile_$22020_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_struct_UpdateProfile_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_struct$_CreateProfile_$22017_calldata_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_struct_UpdateProfile_calldata(add(headStart, offset), dataEnd)\n    }\n    function copy_memory_to_memory_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_struct$_ProfileView_$22025_memory_ptr__to_t_struct$_ProfileView_$22025_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), mload(value0))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 0x40), 0x40)\n        tail := abi_encode_string(memberValue0, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address_t_string_memory_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\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_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_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_encode_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string_calldata(value1, value2, add(headStart, 64))\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 access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_uint256_t_string_calldata_ptr__to_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string_calldata(value1, value2, add(headStart, 64))\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_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_uint256_t_uint16__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), and(value1, 0xffff))\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 array_1 := allocate_memory(array_allocation_size_string(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(offset, 0x20), add(array_1, 0x20), _1)\n        array := array_1\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        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_tuple_t_struct$_TaskView_$22111_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if slt(sub(dataEnd, _3), 0x80) { revert(0, 0) }\n        let value := allocate_memory_1969()\n        mstore(value, mload(_3))\n        let offset_1 := mload(add(_3, _1))\n        if gt(offset_1, _2) { revert(0, 0) }\n        mstore(add(value, _1), abi_decode_string_fromMemory(add(_3, offset_1), dataEnd))\n        let value_1 := mload(add(_3, 64))\n        if iszero(lt(value_1, 4)) { revert(0, 0) }\n        mstore(add(value, 64), value_1)\n        let offset_2 := mload(add(_3, 96))\n        if gt(offset_2, _2) { revert(0, 0) }\n        let _4 := add(_3, offset_2)\n        if iszero(slt(add(_4, 0x1f), dataEnd)) { revert(0, 0) }\n        let _5 := mload(_4)\n        if gt(_5, _2) { panic_error_0x41() }\n        let _6 := shl(5, _5)\n        let dst := allocate_memory(add(_6, _1))\n        let dst_1 := dst\n        mstore(dst, _5)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_4, _6), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_4, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _1)\n        }\n        mstore(add(value, 96), dst_1)\n        value0 := value\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\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 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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102535760003560e01c80638ac2b65a11610146578063beef9895116100c3578063ed94a4d511610087578063ed94a4d51461053c578063f08f4f641461054f578063f1b2f8bc14610562578063f2fde38b14610575578063f3fef3a314610588578063f8d674761461059b57600080fd5b8063beef9895146104d0578063cb9113f5146104e3578063d16d22f5146104f6578063df50c5d714610509578063ed535d9d1461051c57600080fd5b80639583c5391161010a5780639583c5391461047157806396937b4314610484578063979796a3146104975780639e88381a146104aa578063a8d91b02146104bd57600080fd5b80638ac2b65a146104145780638da5cb5b146104275780638ec8e6c71461043857806390be003c1461044b578063927aa63c1461045e57600080fd5b8063538be3a4116101d45780636d30ec62116101985780636d30ec62146103cb578063715018a6146103de57806375f44a3b146103e65780637f521ebe146103f95780638129fc1c1461040c57600080fd5b8063538be3a4146103695780635421eed81461037c5780635734e5e31461038f57806359dfc3f4146103a55780636427acca146103b857600080fd5b80633214a18e1161021b5780633214a18e146102f25780633c819124146103055780634526f6901461031857806346b9173a146103435780634ee2ad7c1461035657600080fd5b80630c816de4146102585780630ce51f561461026d57806316b726e5146102805780632d5d8f67146102935780632f6da008146102df575b600080fd5b61026b61026636600461227c565b6105ae565b005b61026b61027b3660046122d8565b61069f565b61026b61028e366004612331565b610825565b6102ca6102a136600461235d565b6001600160a01b03929092166000908152606f6020908152604080832093835292905220541490565b60405190151581526020015b60405180910390f35b61026b6102ed36600461235d565b610887565b61026b610300366004612392565b6108ec565b61026b61031336600461235d565b610a06565b61032b6103263660046123b4565b610a6b565b6040516001600160a01b0390911681526020016102d6565b61026b6103513660046123cd565b610aa5565b61026b6103643660046123cd565b610acf565b61026b61037736600461235d565b610bd6565b61026b61038a366004612331565b610c3b565b610397610c9d565b6040519081526020016102d6565b61026b6103b33660046123cd565b610cae565b61032b6103c63660046123ea565b610cd8565b61026b6103d9366004612331565b610e5c565b61026b610ebe565b61026b6103f4366004612474565b610ed2565b61026b61040736600461235d565b610f82565b61026b61112c565b61026b6104223660046123cd565b611242565b6033546001600160a01b031661032b565b61026b6104463660046123cd565b61126c565b61026b6104593660046123cd565b611296565b61026b61046c36600461235d565b6113d5565b61026b61047f3660046123cd565b61143a565b61026b610492366004612331565b611464565b61026b6104a53660046123cd565b6114c6565b61026b6104b8366004612392565b6114f0565b61026b6104cb36600461235d565b6115fd565b61026b6104de3660046123cd565b611662565b61026b6104f13660046123cd565b611769565b6103976105043660046124b1565b611793565b61032b6105173660046123b4565b6118ae565b61052f61052a3660046123cd565b61191c565b6040516102d6919061253e565b61026b61054a366004612331565b6119b2565b61052f61055d3660046123b4565b611a14565b61026b6105703660046123b4565b611ab4565b61026b6105833660046123cd565b611b1b565b61026b610596366004612331565b611b91565b61026b6105a93660046123cd565b611f22565b6065546001600160a01b031633146105d957604051632d5be4cb60e21b815260040160405180910390fd5b60006105e4836118ae565b606854604051636902622f60e11b81529192506000916001600160a01b039091169063d204c45e9061061c9085908790600401612563565b6020604051808303816000875af115801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190612587565b604051338152909150819085907f65db4d653a1dec19354793622d6b806e92c72ac3f02709ab594eaf33c3a968669060200160405180910390a350505050565b826106ab606d82611f4c565b6106c85760405163aba4733960e01b815260040160405180910390fd5b604051633af32abf60e01b81523360048201526000906001600160a01b03861690633af32abf90602401602060405180830381865afa15801561070f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073391906125a0565b90508061075357604051630b094f2760e31b815260040160405180910390fd5b600061075e856118ae565b606854604051636902622f60e11b81529192506000916001600160a01b039091169063d204c45e906107969085908990600401612563565b6020604051808303816000875af11580156107b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d99190612587565b6040516001600160a01b0389168152909150819087907f65db4d653a1dec19354793622d6b806e92c72ac3f02709ab594eaf33c3a968669060200160405180910390a350505050505050565b610830606d33611f4c565b61084d5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907ffd925958b6ac7f4827324762864f38411a50c60c4a503761d9b6b96a16ab1a1390600090a35050565b610892606d33611f4c565b6108af5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fc34c0f5b92b25cb7f016cf70c271757c6c1d7e5e704874bb6f44199a9aced17760405160405180910390a4505050565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610935573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109599190612587565b606a54604051637d94dfc960e01b81526004810183905260248101869052604481018590529192506001600160a01b031690637d94dfc990606401600060405180830381600087803b1580156109ae57600080fd5b505af11580156109c2573d6000803e3d6000fd5b5050505082817f71d67da8a79dc210dc79fd6a8fdfdff23836aca4f7cc199c8b9133efd7fd2f8e846040516109f991815260200190565b60405180910390a3505050565b610a11606d33611f4c565b610a2e5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fb19d43bc2d0d4c9827d7bd1bc5d099f158bb76a4433ffa60f180d0807ac0b06660405160405180910390a4505050565b6000610a75610c9d565b8210610a9457604051634e23d03560e01b815260040160405180910390fd5b610a9f606d83611f6e565b92915050565b610aad611f7a565b606b80546001600160a01b0319166001600160a01b0392909216919091179055565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3c9190612587565b6040516367dfd4c960e01b81526004810182905290915082906001600160a01b038216906367dfd4c990602401600060405180830381600087803b158015610b8357600080fd5b505af1158015610b97573d6000803e3d6000fd5b50506040518492506001600160a01b03861691507f475d0ee72b70b83c26b41bbb4096ec07e54a91f28f853454d471c748b9606c3690600090a3505050565b610be1606d33611f4c565b610bfe5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167f4c2ea744845c67b745989f4f03c2e6a7ee2ebbaca9ab879014638c47324ae17260405160405180910390a4505050565b610c46606d33611f4c565b610c635760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907f20bfd29f3d906f96fc35742fac45a554b19cbd4e21f8c4c1d84cb58fdfc32c8990600090a35050565b6000610ca9606d611fd4565b905090565b610cb6611f7a565b606780546001600160a01b0319166001600160a01b0392909216919091179055565b60665460405163d8ecd92560e01b815260009182916001600160a01b039091169063d8ecd92590610d11903090889088906004016125eb565b6020604051808303816000875af1158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d549190612619565b60405163e43252d760e01b815233600482015290915081906001600160a01b0382169063e43252d790602401600060405180830381600087803b158015610d9a57600080fd5b505af1158015610dae573d6000803e3d6000fd5b505060405163f2fde38b60e01b81523360048201526001600160a01b038416925063f2fde38b9150602401600060405180830381600087803b158015610df357600080fd5b505af1158015610e07573d6000803e3d6000fd5b50505050610e1f82606d611fde90919063ffffffff16565b506040516001600160a01b038316907f2178e9c576507a4c15d3deab489af3f699a3dedbff9a7ef27c43a017027710e590600090a2509392505050565b610e67606d33611f4c565b610e845760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907fdd45ee3ab47561676021bcd5e8462ddd1f17b96c086186a3de32fe7b20c50d7090600090a35050565b610ec6611f7a565b610ed06000611ff3565b565b6000610edd836118ae565b6001600160a01b0316336001600160a01b031614905080610f115760405163f194fae560e01b815260040160405180910390fd5b6069546001600160a01b03166389c7e0a084610f2d8580612636565b6040518463ffffffff1660e01b8152600401610f4b93929190612684565b600060405180830381600087803b158015610f6557600080fd5b505af1158015610f79573d6000803e3d6000fd5b50505050505050565b82610f8e606d82611f4c565b610fab5760405163aba4733960e01b815260040160405180910390fd5b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015610ff4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110189190612587565b606b5460405163581823bd60e01b8152600481018390526024810186905291925086916001600160a01b039091169063581823bd90604401600060405180830381600087803b15801561106a57600080fd5b505af115801561107e573d6000803e3d6000fd5b5050604051636989fd6b60e01b81526004810185905260248101889052604481018790526001600160a01b0384169250636989fd6b9150606401600060405180830381600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b50505050817f6eb8a62f67e4ea664b22930fed1d0bd4c2adc51f8e334396238b9c513d066caf8560405161111c91815260200190565b60405180910390a2505050505050565b600054610100900460ff161580801561114c5750600054600160ff909116105b806111665750303b158015611166575060005460ff166001145b6111ce5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156111f1576000805461ff0019166101001790555b6111f9612045565b801561123f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b61124a611f7a565b606980546001600160a01b0319166001600160a01b0392909216919091179055565b611274611f7a565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b6112a1606d82611f4c565b156112bf57604051630ea075bf60e21b815260040160405180910390fd5b803b60008190036112e3576040516303777f6960e51b815260040160405180910390fd5b6112ec82612074565b611309576040516303777f6960e51b815260040160405180910390fd5b604051633af32abf60e01b815233600482015282906001600160a01b03821690633af32abf90602401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906125a0565b61139057604051630b094f2760e31b815260040160405180910390fd5b61139b606d84611fde565b506040516001600160a01b038216907f2178e9c576507a4c15d3deab489af3f699a3dedbff9a7ef27c43a017027710e590600090a2505050565b6113e0606d33611f4c565b6113fd5760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167fd146d896a0849059091b2c287efec9c8dc93ac62d6e694ef347ffa5a4c3f602f60405160405180910390a4505050565b611442611f7a565b606880546001600160a01b0319166001600160a01b0392909216919091179055565b61146f606d33611f4c565b61148c5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907fc1756fd99ac9a2b1b22b5e701ddb022b897a002144d045b77ac35ce46610fef690600090a35050565b6114ce611f7a565b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d9190612587565b606a5460405163d072007d60e01b81526004810186905260248101839052604481018590529192506001600160a01b03169063d072007d90606401600060405180830381600087803b1580156115b257600080fd5b505af11580156115c6573d6000803e3d6000fd5b5050505080837f49a87a0e6655ec27b4a9d6753fe60d0250be8ab38b0e960432b1e53ec3558f5b846040516109f991815260200190565b611608606d33611f4c565b6116255760405163332009d960e21b815260040160405180910390fd5b8082846001600160a01b03167f68dac2ef7ff122a4dd4f78b2ef3cf6512e8079afe1bf2190c1c0ba71496825fa60405160405180910390a4505050565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa1580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf9190612587565b60405163049878f360e01b81526004810182905290915082906001600160a01b0382169063049878f390602401600060405180830381600087803b15801561171657600080fd5b505af115801561172a573d6000803e3d6000fd5b50506040518492506001600160a01b03861691507f2915d2d906edf65600a39d4eb3ea934d8baff7fddb8eea64b2f2a12c361dbeb090600090a3505050565b611771611f7a565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60695460009081906001600160a01b0316637765eba1336117b48680612636565b6040518463ffffffff1660e01b81526004016117d2939291906125eb565b6020604051808303816000875af11580156117f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118159190612587565b606a54604051632962fdc560e11b815260048101839052600a60248201529192506001600160a01b0316906352c5fb8a90604401600060405180830381600087803b15801561186357600080fd5b505af1158015611877573d6000803e3d6000fd5b50506040513392508391507f9f150021d8fd04eb219a39e3019273bddf99a9a2e434dd2aa8132e32ea9244b090600090a392915050565b6069546040516331a9108f60e11b8152600481018390526000916001600160a01b031690636352211e90602401602060405180830381865afa1580156118f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9f9190612619565b6040805180820190915260008152606060208201526069546040516302d8c35b60e11b81526001600160a01b03848116600483015260009216906305b186b690602401602060405180830381865afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a09190612587565b90506119ab81611a14565b9392505050565b6119bd606d33611f4c565b6119da5760405163332009d960e21b815260040160405180910390fd5b60405181906001600160a01b038416907f66143dd708399cdc1a0caff468a9f98669777affcf1c8baa850011d0fdb7e50190600090a35050565b60408051808201909152600081526060602082015260695460405163c87b56dd60e01b8152600481018490526000916001600160a01b03169063c87b56dd90602401600060405180830381865afa158015611a73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9b91908101906126e3565b6040805180820190915293845260208401525090919050565b60695460405163749d392560e11b8152336004820152602481018390526001600160a01b039091169063e93a724a90604401600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b611b23611f7a565b6001600160a01b038116611b885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016111c5565b61123f81611ff3565b6069546040516302d8c35b60e11b81523360048201526000916001600160a01b0316906305b186b690602401602060405180830381865afa158015611bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfe9190612587565b60405163ab4fbac360e01b8152600481018490526024810182905290915083906001600160a01b0382169063ab4fbac390604401602060405180830381865afa158015611c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7391906125a0565b1515600114611c955760405163148fe22160e11b815260040160405180910390fd5b604051630eb2f3bf60e11b8152600481018490526000906001600160a01b03831690631d65e77e90602401600060405180830381865afa158015611cdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d059190810190612718565b9050600281604001516003811115611d1f57611d1f612830565b14611d3d576040516317f5db8160e21b815260040160405180910390fd5b6001600160a01b0385166000908152606f6020908152604080832087845290915290205415611d7f57604051636507689f60e01b815260040160405180910390fd5b6001600160a01b0385166000908152606f602090815260408083208784529091528120849055606082015151905b81811015611ee15760405163070f105160e11b815260048101879052602481018690526000906001600160a01b03861690630e1e20a290604401602060405180830381865afa158015611e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e289190612587565b606c54606086015180519293506001600160a01b03909116916395933f8891899186908110611e5957611e59612846565b6020026020010151610e1085611e6f919061285c565b6040516001600160e01b031960e086901b168152600481019390935260248301919091526044820152606401600060405180830381600087803b158015611eb557600080fd5b505af1158015611ec9573d6000803e3d6000fd5b50505050508080611ed99061287e565b915050611dad565b508385876001600160a01b03167f866b27cc904c4c5a032d369444d532a0dda150b00640dd3f77db68e2a0c378f460405160405180910390a4505050505050565b611f2a611f7a565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260018301602052604081205415156119ab565b60006119ab83836120e5565b6033546001600160a01b03163314610ed05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016111c5565b6000610a9f825490565b60006119ab836001600160a01b03841661210f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661206c5760405162461bcd60e51b81526004016111c5906128a5565b610ed061215e565b6000816001600160a01b031663997072f76040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120d0575060408051601f3d908101601f191682019092526120cd91810190612587565b60015b6120dc57506000919050565b50600192915050565b60008260000182815481106120fc576120fc612846565b9060005260206000200154905092915050565b600081815260018301602052604081205461215657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a9f565b506000610a9f565b600054610100900460ff166121855760405162461bcd60e51b81526004016111c5906128a5565b610ed033611ff3565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff811182821017156121c7576121c761218e565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121f6576121f661218e565b604052919050565b600067ffffffffffffffff8211156122185761221861218e565b50601f01601f191660200190565b600082601f83011261223757600080fd5b813561224a612245826121fe565b6121cd565b81815284602083860101111561225f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561228f57600080fd5b82359150602083013567ffffffffffffffff8111156122ad57600080fd5b6122b985828601612226565b9150509250929050565b6001600160a01b038116811461123f57600080fd5b6000806000606084860312156122ed57600080fd5b83356122f8816122c3565b925060208401359150604084013567ffffffffffffffff81111561231b57600080fd5b61232786828701612226565b9150509250925092565b6000806040838503121561234457600080fd5b823561234f816122c3565b946020939093013593505050565b60008060006060848603121561237257600080fd5b833561237d816122c3565b95602085013595506040909401359392505050565b600080604083850312156123a557600080fd5b50508035926020909101359150565b6000602082840312156123c657600080fd5b5035919050565b6000602082840312156123df57600080fd5b81356119ab816122c3565b600080602083850312156123fd57600080fd5b823567ffffffffffffffff8082111561241557600080fd5b818501915085601f83011261242957600080fd5b81358181111561243857600080fd5b86602082850101111561244a57600080fd5b60209290920196919550909350505050565b60006020828403121561246e57600080fd5b50919050565b6000806040838503121561248757600080fd5b82359150602083013567ffffffffffffffff8111156124a557600080fd5b6122b98582860161245c565b6000602082840312156124c357600080fd5b813567ffffffffffffffff8111156124da57600080fd5b6124e68482850161245c565b949350505050565b60005b838110156125095781810151838201526020016124f1565b50506000910152565b6000815180845261252a8160208601602086016124ee565b601f01601f19169290920160200192915050565b6020815281516020820152600060208301516040808401526124e66060840182612512565b6001600160a01b03831681526040602082018190526000906124e690830184612512565b60006020828403121561259957600080fd5b5051919050565b6000602082840312156125b257600080fd5b815180151581146119ab57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038416815260406020820181905260009061261090830184866125c2565b95945050505050565b60006020828403121561262b57600080fd5b81516119ab816122c3565b6000808335601e1984360301811261264d57600080fd5b83018035915067ffffffffffffffff82111561266857600080fd5b60200191503681900382131561267d57600080fd5b9250929050565b8381526040602082015260006126106040830184866125c2565b600082601f8301126126af57600080fd5b81516126bd612245826121fe565b8181528460208386010111156126d257600080fd5b6124e68260208301602087016124ee565b6000602082840312156126f557600080fd5b815167ffffffffffffffff81111561270c57600080fd5b6124e68482850161269e565b6000602080838503121561272b57600080fd5b825167ffffffffffffffff8082111561274357600080fd5b908401906080828703121561275757600080fd5b61275f6121a4565b82518152838301518281111561277457600080fd5b6127808882860161269e565b858301525060408301516004811061279757600080fd5b60408201526060830151828111156127ae57600080fd5b80840193505086601f8401126127c357600080fd5b8251828111156127d5576127d561218e565b8060051b92506127e68584016121cd565b818152928401850192858101908985111561280057600080fd5b948601945b8486101561281e57855182529486019490860190612805565b60608401525090979650505050505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008261287957634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161289e57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220ae0b4133a06176b3b37a1124ffd60849254f65fba829abf56c4722f72922da8564736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8AC2B65A GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xBEEF9895 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xED94A4D5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xED94A4D5 EQ PUSH2 0x53C JUMPI DUP1 PUSH4 0xF08F4F64 EQ PUSH2 0x54F JUMPI DUP1 PUSH4 0xF1B2F8BC EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x575 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x588 JUMPI DUP1 PUSH4 0xF8D67476 EQ PUSH2 0x59B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBEEF9895 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xCB9113F5 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xD16D22F5 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xDF50C5D7 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xED535D9D EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9583C539 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x9583C539 EQ PUSH2 0x471 JUMPI DUP1 PUSH4 0x96937B43 EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0x979796A3 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x9E88381A EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0xA8D91B02 EQ PUSH2 0x4BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8AC2B65A EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x8EC8E6C7 EQ PUSH2 0x438 JUMPI DUP1 PUSH4 0x90BE003C EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x927AA63C EQ PUSH2 0x45E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x538BE3A4 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x6D30EC62 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x6D30EC62 EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x75F44A3B EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0x7F521EBE EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x40C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x538BE3A4 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0x5421EED8 EQ PUSH2 0x37C JUMPI DUP1 PUSH4 0x5734E5E3 EQ PUSH2 0x38F JUMPI DUP1 PUSH4 0x59DFC3F4 EQ PUSH2 0x3A5 JUMPI DUP1 PUSH4 0x6427ACCA EQ PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3214A18E GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x3214A18E EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x3C819124 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x4526F690 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x46B9173A EQ PUSH2 0x343 JUMPI DUP1 PUSH4 0x4EE2AD7C EQ PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC816DE4 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0xCE51F56 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x16B726E5 EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0x2D5D8F67 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x2F6DA008 EQ PUSH2 0x2DF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x227C JUMP JUMPDEST PUSH2 0x5AE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x22D8 JUMP JUMPDEST PUSH2 0x69F JUMP JUMPDEST PUSH2 0x26B PUSH2 0x28E CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x825 JUMP JUMPDEST PUSH2 0x2CA PUSH2 0x2A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x887 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2392 JUMP JUMPDEST PUSH2 0x8EC JUMP JUMPDEST PUSH2 0x26B PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xA06 JUMP JUMPDEST PUSH2 0x32B PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0xA6B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x351 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xAA5 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xACF JUMP JUMPDEST PUSH2 0x26B PUSH2 0x377 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xBD6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38A CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0xC3B JUMP JUMPDEST PUSH2 0x397 PUSH2 0xC9D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0xCAE JUMP JUMPDEST PUSH2 0x32B PUSH2 0x3C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23EA JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x26B PUSH2 0xEBE JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2474 JUMP JUMPDEST PUSH2 0xED2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x112C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1242 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32B JUMP JUMPDEST PUSH2 0x26B PUSH2 0x446 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x459 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1296 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x47F CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x143A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x492 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x1464 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x14C6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2392 JUMP JUMPDEST PUSH2 0x14F0 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x235D JUMP JUMPDEST PUSH2 0x15FD JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1662 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x397 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x24B1 JUMP JUMPDEST PUSH2 0x1793 JUMP JUMPDEST PUSH2 0x32B PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x52F PUSH2 0x52A CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x191C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x253E JUMP JUMPDEST PUSH2 0x26B PUSH2 0x54A CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x19B2 JUMP JUMPDEST PUSH2 0x52F PUSH2 0x55D CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B4 JUMP JUMPDEST PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x583 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1B1B JUMP JUMPDEST PUSH2 0x26B PUSH2 0x596 CALLDATASIZE PUSH1 0x4 PUSH2 0x2331 JUMP JUMPDEST PUSH2 0x1B91 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x23CD JUMP JUMPDEST PUSH2 0x1F22 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D9 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D5BE4CB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x5E4 DUP4 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x68 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6902622F PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD204C45E SWAP1 PUSH2 0x61C SWAP1 DUP6 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x63B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x65F SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 DUP6 SWAP1 PUSH32 0x65DB4D653A1DEC19354793622D6B806E92C72AC3F02709AB594EAF33C3A96866 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x6AB PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x6C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3AF32ABF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x3AF32ABF SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x70F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x733 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x75E DUP6 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x68 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6902622F PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD204C45E SWAP1 PUSH2 0x796 SWAP1 DUP6 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL 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 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND DUP2 MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 DUP8 SWAP1 PUSH32 0x65DB4D653A1DEC19354793622D6B806E92C72AC3F02709AB594EAF33C3A96866 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x830 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xFD925958B6AC7F4827324762864F38411A50C60C4A503761D9B6B96A16AB1A13 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x892 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x8AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xC34C0F5B92B25CB7F016CF70C271757C6C1D7E5E704874BB6F44199A9ACED177 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x935 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x959 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0x7D94DFC9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7D94DFC9 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 DUP2 PUSH32 0x71D67DA8A79DC210DC79FD6A8FDFDFF23836ACA4F7CC199C8B9133EFD7FD2F8E DUP5 PUSH1 0x40 MLOAD PUSH2 0x9F9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB19D43BC2D0D4C9827D7BD1BC5D099F158BB76A4433FFA60F180D0807AC0B066 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA75 PUSH2 0xC9D JUMP JUMPDEST DUP3 LT PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E23D035 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA9F PUSH1 0x6D DUP4 PUSH2 0x1F6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAAD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6B DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB18 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3C SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67DFD4C9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67DFD4C9 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP5 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 POP PUSH32 0x475D0EE72B70B83C26B41BBB4096EC07E54A91F28F853454D471C748B9606C36 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xBE1 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xBFE JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x4C2EA744845C67B745989F4F03C2E6A7EE2EBBACA9AB879014638C47324AE172 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0xC46 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x20BFD29F3D906F96FC35742FAC45A554B19CBD4E21F8C4C1D84CB58FDFC32C89 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCA9 PUSH1 0x6D PUSH2 0x1FD4 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x67 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x66 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD8ECD925 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD8ECD925 SWAP1 PUSH2 0xD11 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x25EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE43252D7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xE43252D7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0xF2FDE38B SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE07 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xE1F DUP3 PUSH1 0x6D PUSH2 0x1FDE SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0x2178E9C576507A4C15D3DEAB489AF3F699A3DEDBFF9A7EF27C43A017027710E5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xE67 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDD45EE3AB47561676021BCD5E8462DDD1F17B96C086186A3DE32FE7B20C50D70 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xEC6 PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0xED0 PUSH1 0x0 PUSH2 0x1FF3 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEDD DUP4 PUSH2 0x18AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP DUP1 PUSH2 0xF11 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF194FAE5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x89C7E0A0 DUP5 PUSH2 0xF2D DUP6 DUP1 PUSH2 0x2636 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF4B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2684 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0xF8E PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0xFAB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1018 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6B SLOAD PUSH1 0x40 MLOAD PUSH4 0x581823BD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP DUP7 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x581823BD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x106A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x6989FD6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x6989FD6B SWAP2 POP PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH32 0x6EB8A62F67E4EA664B22930FED1D0BD4C2ADC51F8E334396238B9C513D066CAF DUP6 PUSH1 0x40 MLOAD PUSH2 0x111C SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x114C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1166 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1166 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x11CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11F1 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x11F9 PUSH2 0x2045 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x123F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x124A PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x69 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1274 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6A DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x12A1 PUSH1 0x6D DUP3 PUSH2 0x1F4C JUMP JUMPDEST ISZERO PUSH2 0x12BF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEA075BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 EXTCODESIZE PUSH1 0x0 DUP2 SWAP1 SUB PUSH2 0x12E3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3777F69 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x12EC DUP3 PUSH2 0x2074 JUMP JUMPDEST PUSH2 0x1309 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3777F69 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3AF32ABF PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3AF32ABF SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1373 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST PUSH2 0x1390 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x139B PUSH1 0x6D DUP5 PUSH2 0x1FDE JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0x2178E9C576507A4C15D3DEAB489AF3F699A3DEDBFF9A7EF27C43A017027710E5 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH2 0x13E0 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x13FD JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD146D896A0849059091B2C287EFEC9C8DC93AC62D6E694EF347FFA5A4C3F602F PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH2 0x1442 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x68 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x146F PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x148C JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xC1756FD99AC9A2B1B22B5E701DDB022B897A002144D045B77AC35CE46610FEF6 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x14CE PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x6C DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1539 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x155D SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0xD072007D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD072007D SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 DUP4 PUSH32 0x49A87A0E6655EC27B4A9D6753FE60D0250BE8AB38B0E960432B1E53EC3558F5B DUP5 PUSH1 0x40 MLOAD PUSH2 0x9F9 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x1608 PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x1625 JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x68DAC2EF7FF122A4DD4F78B2EF3CF6512E8079AFE1BF2190C1C0BA71496825FA PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16CF SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x49878F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x49878F3 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1716 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x172A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD DUP5 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 POP PUSH32 0x2915D2D906EDF65600A39D4EB3EA934D8BAFF7FDDB8EEA64B2F2A12C361DBEB0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1771 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7765EBA1 CALLER PUSH2 0x17B4 DUP7 DUP1 PUSH2 0x2636 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1815 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6A SLOAD PUSH1 0x40 MLOAD PUSH4 0x2962FDC5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x52C5FB8A SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1877 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD CALLER SWAP3 POP DUP4 SWAP2 POP PUSH32 0x9F150021D8FD04EB219A39E3019273BDDF99A9A2E434DD2AA8132E32EA9244B0 SWAP1 PUSH1 0x0 SWAP1 LOG3 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA9F SWAP2 SWAP1 PUSH2 0x2619 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x197C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19A0 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST SWAP1 POP PUSH2 0x19AB DUP2 PUSH2 0x1A14 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x19BD PUSH1 0x6D CALLER PUSH2 0x1F4C JUMP JUMPDEST PUSH2 0x19DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x332009D9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0x66143DD708399CDC1A0CAFF468A9F98669777AFFCF1C8BAA850011D0FDB7E501 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC87B56DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC87B56DD SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A73 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 0x1A9B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD MSTORE POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x749D3925 PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE93A724A SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1B23 PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x11C5 JUMP JUMPDEST PUSH2 0x123F DUP2 PUSH2 0x1FF3 JUMP JUMPDEST PUSH1 0x69 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D8C35B PUSH1 0xE1 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5B186B6 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BDA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BFE SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xAB4FBAC3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xAB4FBAC3 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C73 SWAP2 SWAP1 PUSH2 0x25A0 JUMP JUMPDEST ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1C95 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB2F3BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x1D65E77E SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CDD 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 0x1D05 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2718 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1D1F JUMPI PUSH2 0x1D1F PUSH2 0x2830 JUMP JUMPDEST EQ PUSH2 0x1D3D JUMPI PUSH1 0x40 MLOAD PUSH4 0x17F5DB81 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x40 MLOAD PUSH4 0x6507689F 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 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6F PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x60 DUP3 ADD MLOAD MLOAD SWAP1 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1EE1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x70F1051 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0xE1E20A2 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E28 SWAP2 SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x6C SLOAD PUSH1 0x60 DUP7 ADD MLOAD DUP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x95933F88 SWAP2 DUP10 SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x1E59 JUMPI PUSH2 0x1E59 PUSH2 0x2846 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0xE10 DUP6 PUSH2 0x1E6F SWAP2 SWAP1 PUSH2 0x285C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH2 0x1ED9 SWAP1 PUSH2 0x287E JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DAD JUMP JUMPDEST POP DUP4 DUP6 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x866B27CC904C4C5A032D369444D532A0DDA150B00640DD3F77DB68E2A0C378F4 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1F2A PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x66 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x19AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19AB DUP4 DUP4 PUSH2 0x20E5 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xED0 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 0x11C5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9F DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19AB DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x210F JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x206C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST PUSH2 0xED0 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x997072F7 PUSH1 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 SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x20D0 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x20CD SWAP2 DUP2 ADD SWAP1 PUSH2 0x2587 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x20DC JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST POP PUSH1 0x1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x20FC JUMPI PUSH2 0x20FC PUSH2 0x2846 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2156 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 0xA9F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2185 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11C5 SWAP1 PUSH2 0x28A5 JUMP JUMPDEST PUSH2 0xED0 CALLER PUSH2 0x1FF3 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 0x80 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x21C7 JUMPI PUSH2 0x21C7 PUSH2 0x218E 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 0x21F6 JUMPI PUSH2 0x21F6 PUSH2 0x218E JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2218 JUMPI PUSH2 0x2218 PUSH2 0x218E JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2237 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x224A PUSH2 0x2245 DUP3 PUSH2 0x21FE JUMP JUMPDEST PUSH2 0x21CD JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x225F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x228F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22B9 DUP6 DUP3 DUP7 ADD PUSH2 0x2226 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x123F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x22F8 DUP2 PUSH2 0x22C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x231B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2327 DUP7 DUP3 DUP8 ADD PUSH2 0x2226 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x234F DUP2 PUSH2 0x22C3 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 0x2372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x237D DUP2 PUSH2 0x22C3 JUMP JUMPDEST SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 SWAP1 SWAP5 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23A5 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 0x23C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19AB DUP2 PUSH2 0x22C3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2429 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x244A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x246E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2487 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22B9 DUP6 DUP3 DUP7 ADD PUSH2 0x245C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP5 DUP3 DUP6 ADD PUSH2 0x245C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2509 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x24F1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x252A DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x24EE 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 DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH2 0x24E6 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x2512 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x24E6 SWAP1 DUP4 ADD DUP5 PUSH2 0x2512 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2599 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x19AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2610 SWAP1 DUP4 ADD DUP5 DUP7 PUSH2 0x25C2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x262B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19AB DUP2 PUSH2 0x22C3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x264D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x267D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2610 PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x25C2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x26AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x26BD PUSH2 0x2245 DUP3 PUSH2 0x21FE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x26D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x24EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x270C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24E6 DUP5 DUP3 DUP6 ADD PUSH2 0x269E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x272B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 DUP5 ADD SWAP1 PUSH1 0x80 DUP3 DUP8 SUB SLT ISZERO PUSH2 0x2757 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x275F PUSH2 0x21A4 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE DUP4 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2780 DUP9 DUP3 DUP7 ADD PUSH2 0x269E JUMP JUMPDEST DUP6 DUP4 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2797 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 ADD SWAP4 POP POP DUP7 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x27C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27D5 JUMPI PUSH2 0x27D5 PUSH2 0x218E JUMP JUMPDEST DUP1 PUSH1 0x5 SHL SWAP3 POP PUSH2 0x27E6 DUP6 DUP5 ADD PUSH2 0x21CD JUMP JUMPDEST DUP2 DUP2 MSTORE SWAP3 DUP5 ADD DUP6 ADD SWAP3 DUP6 DUP2 ADD SWAP1 DUP10 DUP6 GT ISZERO PUSH2 0x2800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP7 ADD SWAP5 JUMPDEST DUP5 DUP7 LT ISZERO PUSH2 0x281E JUMPI DUP6 MLOAD DUP3 MSTORE SWAP5 DUP7 ADD SWAP5 SWAP1 DUP7 ADD SWAP1 PUSH2 0x2805 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD MSTORE POP SWAP1 SWAP8 SWAP7 POP POP POP 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 DUP3 PUSH2 0x2879 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 0x1 DUP3 ADD PUSH2 0x289E 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 PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE SIGNEXTEND COINBASE CALLER LOG0 PUSH2 0x76B3 0xB3 PUSH27 0x1124FFD60849254F65FBA829ABF56C4722F72922DA8564736F6C63 NUMBER STOP ADDMOD GT STOP CALLER ","sourceMap":"742:13798:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10874:378;;;;;;:::i;:::-;;:::i;:::-;;11289:540;;;;;;:::i;:::-;;:::i;12051:215::-;;;;;;:::i;:::-;;:::i;6182:188::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6314:28:60;;;;6291:4;6314:28;;;:7;:28;;;;;;;;:36;;;;;;;;:49;;6182:188;;;;3279:14:89;;3272:22;3254:41;;3242:2;3227:18;6182:188:60;;;;;;;;14027:235;;;;;;:::i;:::-;;:::i;4890:304::-;;;;;;:::i;:::-;;:::i;12987:247::-;;;;;;:::i;:::-;;:::i;5924:221::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3908:32:89;;;3890:51;;3878:2;3863:18;5924:221:60;3744:203:89;2719:134:60;;;;;;:::i;:::-;;:::i;8344:358::-;;;;;;:::i;:::-;;:::i;14299:239::-;;;;;;:::i;:::-;;:::i;12555:179::-;;;;;;:::i;:::-;;:::i;5769:118::-;;;:::i;:::-;;;4350:25:89;;;4338:2;4323:18;5769:118:60;4204:177:89;2120:143:60;;;;;;:::i;:::-;;:::i;6407:524::-;;;;;;:::i;:::-;;:::i;13823:167::-;;;;;;:::i;:::-;;:::i;2071:101:0:-;;;:::i;4552:301:60:-;;;;;;:::i;:::-;;:::i;8739:586::-;;;;;;:::i;:::-;;:::i;1709:74::-;;;:::i;2421:146::-;;;;;;:::i;:::-;;:::i;1441:85:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;1441:85;;2573:140:60;;;;;;:::i;:::-;;:::i;6968:944::-;;;;;;:::i;:::-;;:::i;13271:251::-;;;;;;:::i;:::-;;:::i;2269:146::-;;;;;;:::i;:::-;;:::i;12771:179::-;;;;;;:::i;:::-;;:::i;2859:137::-;;;;;;:::i;:::-;;:::i;5231:312::-;;;;;;:::i;:::-;;:::i;13559:227::-;;;;;;:::i;:::-;;:::i;7949:358::-;;;;;;:::i;:::-;;:::i;1789:159::-;;;;;;:::i;:::-;;:::i;4151:364::-;;;;;;:::i;:::-;;:::i;3479:143::-;;;;;;:::i;:::-;;:::i;3217:225::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12303:215::-;;;;;;:::i;:::-;;:::i;3659:281::-;;;;;;:::i;:::-;;:::i;3977:137::-;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;9362:1034:60:-;;;;;;:::i;:::-;;:::i;1954:160::-;;;;;;:::i;:::-;;:::i;10874:378::-;10975:34;;-1:-1:-1;;;;;10975:34:60;10961:10;:48;10957:83;;11018:22;;-1:-1:-1;;;11018:22:60;;;;;;;;;;;10957:83;11050:15;11068:28;11086:9;11068:17;:28::i;:::-;11130:15;;:38;;-1:-1:-1;;;11130:38:60;;11050:46;;-1:-1:-1;11106:21:60;;-1:-1:-1;;;;;11130:15:60;;;;:24;;:38;;11050:46;;11164:3;;11130:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11183:62;;11208:10;3890:51:89;;11106:62:60;;-1:-1:-1;11106:62:60;;11220:9;;11183:62;;3878:2:89;3863:18;11183:62:60;;;;;;;10947:305;;10874:378;;:::o;11289:540::-;11444:19;1453:44;:14;11444:19;1453:23;:44::i;:::-;1448:80;;1506:22;;-1:-1:-1;;;1506:22:60;;;;;;;;;;;1448:80;11492:60:::1;::::0;-1:-1:-1;;;11492:60:60;;11541:10:::1;11492:60;::::0;::::1;3890:51:89::0;11475:14:60::1;::::0;-1:-1:-1;;;;;11492:48:60;::::1;::::0;::::1;::::0;3863:18:89;;11492:60:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11475:77;;11567:9;11562:46;;11585:23;;-1:-1:-1::0;;;11585:23:60::1;;;;;;;;;;;11562:46;11618:15;11636:28;11654:9;11636:17;:28::i;:::-;11698:15;::::0;:38:::1;::::0;-1:-1:-1;;;11698:38:60;;11618:46;;-1:-1:-1;11674:21:60::1;::::0;-1:-1:-1;;;;;11698:15:60;;::::1;::::0;:24:::1;::::0;:38:::1;::::0;11618:46;;11732:3;;11698:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11751:71;::::0;-1:-1:-1;;;;;3908:32:89;;3890:51;;11674:62:60;;-1:-1:-1;11674:62:60;;11797:9;;11751:71:::1;::::0;3878:2:89;3863:18;11751:71:60::1;;;;;;;11465:364;;;11289:540:::0;;;;:::o;12051:215::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;12206:53:::1;::::0;12249:9;;-1:-1:-1;;;;;12206:53:60;::::1;::::0;::::1;::::0;;;::::1;12051:215:::0;;:::o;14027:235::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;14245:9:::1;14237:6;14223:12;-1:-1:-1::0;;;;;14200:55:60::1;;;;;;;;;;;14027:235:::0;;;:::o;4890:304::-;5001:15;;:47;;-1:-1:-1;;;5001:47:60;;5037:10;5001:47;;;3890:51:89;4975:23:60;;-1:-1:-1;;;;;5001:15:60;;:35;;3863:18:89;;5001:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5058:13;;:60;;-1:-1:-1;;;5058:60:60;;;;;7906:25:89;;;7947:18;;;7940:34;;;7990:18;;;7983:34;;;4975:73:60;;-1:-1:-1;;;;;;5058:13:60;;:24;;7879:18:89;;5058:60:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5169:9;5152:15;5133:54;5180:6;5133:54;;;;4350:25:89;;4338:2;4323:18;;4204:177;5133:54:60;;;;;;;;4965:229;4890:304;;:::o;12987:247::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;13217:9:::1;13206;13192:12;-1:-1:-1::0;;;;;13166:61:60::1;;;;;;;;;;;12987:247:::0;;;:::o;5924:221::-;5996:7;6041:22;:20;:22::i;:::-;6032:5;:31;6015:82;;6072:25;;-1:-1:-1;;;6072:25:60;;;;;;;;;;;6015:82;6114:24;:14;6132:5;6114:17;:24::i;:::-;6107:31;5924:221;-1:-1:-1;;5924:221:60:o;2719:134::-;1334:13:0;:11;:13::i;:::-;2804:11:60::1;:42:::0;;-1:-1:-1;;;;;;2804:42:60::1;-1:-1:-1::0;;;;;2804:42:60;;;::::1;::::0;;;::::1;::::0;;2719:134::o;8344:358::-;8454:15;;:47;;-1:-1:-1;;;8454:47:60;;8490:10;8454:47;;;3890:51:89;8428:23:60;;-1:-1:-1;;;;;8454:15:60;;:35;;3863:18:89;;8454:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8584:35;;-1:-1:-1;;;8584:35:60;;;;;4350:25:89;;;8428:73:60;;-1:-1:-1;8554:19:60;;-1:-1:-1;;;;;8584:18:60;;;;;4323::89;;8584:35:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8634:61:60;;8679:15;;-1:-1:-1;;;;;;8634:61:60;;;-1:-1:-1;8634:61:60;;;;;8418:284;;8344:358;:::o;14299:239::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;14521:9:::1;14513:6;14499:12;-1:-1:-1::0;;;;;14474:57:60::1;;;;;;;;;;;14299:239:::0;;;:::o;12555:179::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;12681:46:::1;::::0;12717:9;;-1:-1:-1;;;;;12681:46:60;::::1;::::0;::::1;::::0;;;::::1;12555:179:::0;;:::o;5769:118::-;5831:7;5857:23;:14;:21;:23::i;:::-;5850:30;;5769:118;:::o;2120:143::-;1334:13:0;:11;:13::i;:::-;2208:14:60::1;:48:::0;;-1:-1:-1;;;;;;2208:48:60::1;-1:-1:-1::0;;;;;2208:48:60;;;::::1;::::0;;;::::1;::::0;;2120:143::o;6407:524::-;6531:20;;:67;;-1:-1:-1;;;6531:67:60;;6482:7;;;;-1:-1:-1;;;;;6531:20:60;;;;:39;;:67;;6579:4;;6586:11;;;;6531:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6681:39;;-1:-1:-1;;;6681:39:60;;6709:10;6681:39;;;3890:51:89;6501:97:60;;-1:-1:-1;6501:97:60;;-1:-1:-1;;;;;6681:27:60;;;;;3863:18:89;;6681:39:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6730:42:60;;-1:-1:-1;;;6730:42:60;;6761:10;6730:42;;;3890:51:89;-1:-1:-1;;;;;6730:30:60;;;-1:-1:-1;6730:30:60;;-1:-1:-1;3863:18:89;;6730:42:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6783:39;6802:19;6783:14;:18;;:39;;;;:::i;:::-;-1:-1:-1;6837:50:60;;-1:-1:-1;;;;;6837:50:60;;;;;;;;-1:-1:-1;6905:19:60;6407:524;-1:-1:-1;;;6407:524:60:o;13823:167::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;13943:40:::1;::::0;13976:6;;-1:-1:-1;;;;;13943:40:60;::::1;::::0;::::1;::::0;;;::::1;13823:167:::0;;:::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;4552:301:60:-;4652:19;4688:28;4706:9;4688:17;:28::i;:::-;-1:-1:-1;;;;;4674:42:60;:10;-1:-1:-1;;;;;4674:42:60;;4652:64;;4731:14;4726:52;;4754:24;;-1:-1:-1;;;4754:24:60;;;;;;;;;;;4726:52;4788:15;;-1:-1:-1;;;;;4788:15:60;:29;4818:9;4829:16;:4;;:16;:::i;:::-;4788:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4642:211;4552:301;;:::o;8739:586::-;8886:19;1453:44;:14;8886:19;1453:23;:44::i;:::-;1448:80;;1506:22;;-1:-1:-1;;;1506:22:60;;;;;;;;;;;1448:80;8943:15:::1;::::0;:47:::1;::::0;-1:-1:-1;;;8943:47:60;;8979:10:::1;8943:47;::::0;::::1;3890:51:89::0;8917:23:60::1;::::0;-1:-1:-1;;;;;8943:15:60::1;::::0;:35:::1;::::0;3863:18:89;;8943:47:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9146:11;::::0;:47:::1;::::0;-1:-1:-1;;;9146:47:60;;::::1;::::0;::::1;9929:25:89::0;;;9970:18;;;9963:34;;;8917:73:60;;-1:-1:-1;9043:19:60;;-1:-1:-1;;;;;9146:11:60;;::::1;::::0;:24:::1;::::0;9902:18:89;;9146:47:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9204:58:60::1;::::0;-1:-1:-1;;;9204:58:60;;::::1;::::0;::::1;7906:25:89::0;;;7947:18;;;7940:34;;;7990:18;;;7983:34;;;-1:-1:-1;;;;;9204:27:60;::::1;::::0;-1:-1:-1;9204:27:60::1;::::0;-1:-1:-1;7879:18:89;;9204:58:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9296:15;9278:40;9313:4;9278:40;;;;4350:25:89::0;;4338:2;4323:18;;4204:177;9278:40:60::1;;;;;;;;8907:418;;8739:586:::0;;;;:::o;1709:74::-;3268:19:1;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:1;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:1;1476:19:9;:23;;;3376:66:1;;-1:-1:-1;3425:12:1;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:1;;10210:2:89;3314:201:1;;;10192:21:89;10249:2;10229:18;;;10222:30;10288:34;10268:18;;;10261:62;-1:-1:-1;;;10339:18:89;;;10332:44;10393:19;;3314:201:1;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:1;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:1;;;;;3551:65;1760:16:60::1;:14;:16::i;:::-;3640:14:1::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:1;;;3710:14;;-1:-1:-1;10575:36:89;;3710:14:1;;10563:2:89;10548:18;3710:14:1;;;;;;;3636:99;3258:483;1709:74:60:o;2421:146::-;1334:13:0;:11;:13::i;:::-;2510:15:60::1;:50:::0;;-1:-1:-1;;;;;;2510:50:60::1;-1:-1:-1::0;;;;;2510:50:60;;;::::1;::::0;;;::::1;::::0;;2421:146::o;2573:140::-;1334:13:0;:11;:13::i;:::-;2660::60::1;:46:::0;;-1:-1:-1;;;;;;2660:46:60::1;-1:-1:-1::0;;;;;2660:46:60;;;::::1;::::0;;;::::1;::::0;;2573:140::o;6968:944::-;7059:44;:14;7083:19;7059:23;:44::i;:::-;7055:83;;;7112:26;;-1:-1:-1;;;7112:26:60;;;;;;;;;;;7055:83;7280:32;;7219:16;7335:13;;;7331:50;;7357:24;;-1:-1:-1;;;7357:24:60;;;;;;;;;;;7331:50;7483:44;7507:19;7483:23;:44::i;:::-;7478:82;;7536:24;;-1:-1:-1;;;7536:24:60;;;;;;;;;;;7478:82;7718:38;;-1:-1:-1;;;7718:38:60;;7745:10;7718:38;;;3890:51:89;7613:19:60;;-1:-1:-1;;;;;7718:26:60;;;;;3863:18:89;;7718:38:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7713:75;;7765:23;;-1:-1:-1;;;7765:23:60;;;;;;;;;;;7713:75;7799:39;:14;7818:19;7799:18;:39::i;:::-;-1:-1:-1;7853:52:60;;-1:-1:-1;;;;;7853:52:60;;;;;;;;7045:867;;6968:944;:::o;13271:251::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;13505:9:::1;13494;13480:12;-1:-1:-1::0;;;;;13452:63:60::1;;;;;;;;;;;13271:251:::0;;;:::o;2269:146::-;1334:13:0;:11;:13::i;:::-;2358:15:60::1;:50:::0;;-1:-1:-1;;;;;;2358:50:60::1;-1:-1:-1::0;;;;;2358:50:60;;;::::1;::::0;;;::::1;::::0;;2269:146::o;12771:179::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;12897:46:::1;::::0;12933:9;;-1:-1:-1;;;;;12897:46:60;::::1;::::0;::::1;::::0;;;::::1;12771:179:::0;;:::o;2859:137::-;1334:13:0;:11;:13::i;:::-;2945:12:60::1;:44:::0;;-1:-1:-1;;;;;;2945:44:60::1;-1:-1:-1::0;;;;;2945:44:60;;;::::1;::::0;;;::::1;::::0;;2859:137::o;5231:312::-;5346:15;;:47;;-1:-1:-1;;;5346:47:60;;5382:10;5346:47;;;3890:51:89;5320:23:60;;-1:-1:-1;;;;;5346:15:60;;:35;;3863:18:89;;5346:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5403:13;;:62;;-1:-1:-1;;;5403:62:60;;;;;7906:25:89;;;7947:18;;;7940:34;;;7990:18;;;7983:34;;;5320:73:60;;-1:-1:-1;;;;;;5403:13:60;;:26;;7879:18:89;;5403:62:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5512:15;5501:9;5480:56;5529:6;5480:56;;;;4350:25:89;;4338:2;4323:18;;4204:177;13559:227:60;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;13772:6:::1;13761:9;13747:12;-1:-1:-1::0;;;;;13728:51:60::1;;;;;;;;;;;13559:227:::0;;;:::o;7949:358::-;8058:15;;:47;;-1:-1:-1;;;8058:47:60;;8094:10;8058:47;;;3890:51:89;8032:23:60;;-1:-1:-1;;;;;8058:15:60;;:35;;3863:18:89;;8058:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8188:34;;-1:-1:-1;;;8188:34:60;;;;;4350:25:89;;;8032:73:60;;-1:-1:-1;8158:19:60;;-1:-1:-1;;;;;8188:17:60;;;;;4323:18:89;;8188:34:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8237:63:60;;8284:15;;-1:-1:-1;;;;;;8237:63:60;;;-1:-1:-1;8237:63:60;;;;;8022:285;;7949:358;:::o;1789:159::-;1334:13:0;:11;:13::i;:::-;1889:34:60::1;:52:::0;;-1:-1:-1;;;;;;1889:52:60::1;-1:-1:-1::0;;;;;1889:52:60;;;::::1;::::0;;;::::1;::::0;;1789:159::o;4151:364::-;4279:15;;4240:7;;;;-1:-1:-1;;;;;4279:15:60;:29;4309:10;4321:16;:4;;:16;:::i;:::-;4279:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:13;;:74;;-1:-1:-1;;;4348:74:60;;;;;10795:25:89;;;131:2:74;10836:18:89;;;10829:47;4259:79:60;;-1:-1:-1;;;;;;4348:13:60;;:29;;10768:18:89;;4348:74:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4438:44:60;;4471:10;;-1:-1:-1;4460:9:60;;-1:-1:-1;4438:44:60;;;;;4499:9;4151:364;-1:-1:-1;;4151:364:60:o;3479:143::-;3581:15;;:34;;-1:-1:-1;;;3581:34:60;;;;;4350:25:89;;;3555:7:60;;-1:-1:-1;;;;;3581:15:60;;:23;;4323:18:89;;3581:34:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3217:225::-;-1:-1:-1;;;;;;;;;;;;;;;;;3353:15:60;;:44;;-1:-1:-1;;;3353:44:60;;-1:-1:-1;;;;;3908:32:89;;;3353:44:60;;;3890:51:89;3333:17:60;;3353:15;;:35;;3863:18:89;;3353:44:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3333:64;;3414:21;3425:9;3414:10;:21::i;:::-;3407:28;3217:225;-1:-1:-1;;;3217:225:60:o;12303:215::-;1611:35;:14;1635:10;1611:23;:35::i;:::-;1606:79;;1655:30;;-1:-1:-1;;;1655:30:60;;;;;;;;;;;1606:79;12458:53:::1;::::0;12501:9;;-1:-1:-1;;;;;12458:53:60;::::1;::::0;::::1;::::0;;;::::1;12303:215:::0;;:::o;3659:281::-;-1:-1:-1;;;;;;;;;;;;;;;;;3788:15:60;;:35;;-1:-1:-1;;;3788:35:60;;;;;4350:25:89;;;3768:17:60;;-1:-1:-1;;;;;3788:15:60;;:24;;4323:18:89;;3788:35:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3788:35:60;;;;;;;;;;;;:::i;:::-;3872:37;;;;;;;;;;;;;;;;-1:-1:-1;3872:37:60;;3659:281;-1:-1:-1;3659:281:60:o;3977:137::-;4051:15;;:56;;-1:-1:-1;;;4051:56:60;;4085:10;4051:56;;;11851:51:89;11918:18;;;11911:34;;;-1:-1:-1;;;;;4051:15:60;;;;:33;;11824:18:89;;4051:56:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3977:137;:::o;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;12158:2:89;2401:73:0::1;::::0;::::1;12140:21:89::0;12197:2;12177:18;;;12170:30;12236:34;12216:18;;;12209:62;-1:-1:-1;;;12287:18:89;;;12280:36;12333:19;;2401:73:0::1;11956:402:89::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;9362:1034:60:-:0;9470:15;;:47;;-1:-1:-1;;;9470:47:60;;9506:10;9470:47;;;3890:51:89;9444:23:60;;-1:-1:-1;;;;;9470:15:60;;:35;;3863:18:89;;9470:47:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9605:50;;-1:-1:-1;;;9605:50:60;;;;;9929:25:89;;;9970:18;;;9963:34;;;9444:73:60;;-1:-1:-1;9570:19:60;;-1:-1:-1;;;;;9605:25:60;;;;;9902:18:89;;9605:50:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:58;;9659:4;9605:58;9601:89;;9672:18;;-1:-1:-1;;;9672:18:60;;;;;;;;;;;9601:89;9734:28;;-1:-1:-1;;;9734:28:60;;;;;4350:25:89;;;9701:30:60;;-1:-1:-1;;;;;9734:20:60;;;;;4323:18:89;;9734:28:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9734:28:60;;;;;;;;;;;;:::i;:::-;9701:61;-1:-1:-1;9792:30:60;9777:4;:11;;;:45;;;;;;;;:::i;:::-;;9773:79;;9831:21;;-1:-1:-1;;;9831:21:60;;;;;;;;;;;9773:79;-1:-1:-1;;;;;9867:28:60;;;;;;:7;:28;;;;;;;;:36;;;;;;;;;:41;9863:79;;9917:25;;-1:-1:-1;;;9917:25:60;;;;;;;;;;;9863:79;-1:-1:-1;;;;;9952:28:60;;;;;;:7;:28;;;;;;;;:36;;;;;;;;:54;;;10038:11;;;;:18;;10066:237;10090:10;10086:1;:14;10066:237;;;10136:64;;-1:-1:-1;;;10136:64:60;;;;;9929:25:89;;;9970:18;;;9963:34;;;10121:12:60;;-1:-1:-1;;;;;10136:39:60;;;;;9902:18:89;;10136:64:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10214:12;;10261:11;;;;:14;;10121:79;;-1:-1:-1;;;;;;10214:12:60;;;;:29;;10244:15;;10273:1;;10261:14;;;;;;:::i;:::-;;;;;;;10284:7;10277:4;:14;;;;:::i;:::-;10214:78;;-1:-1:-1;;;;;;10214:78:60;;;;;;;;;;7906:25:89;;;;7947:18;;;7940:34;;;;7990:18;;;7983:34;7879:18;;10214:78:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10107:196;10102:3;;;;;:::i;:::-;;;;10066:237;;;;10373:15;10365:6;10344:19;-1:-1:-1;;;;;10317:72:60;;;;;;;;;;;9434:962;;;;9362:1034;;:::o;1954:160::-;1334:13:0;:11;:13::i;:::-;2048:20:60::1;:59:::0;;-1:-1:-1;;;;;;2048:59:60::1;-1:-1:-1::0;;;;;2048:59:60;;;::::1;::::0;;;::::1;::::0;;1954:160::o;8852:165:59:-;-1:-1:-1;;;;;8985:23:59;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;4247:127;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;1599:130:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:10;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;14836:2:89;1654:68:0;;;14818:21:89;;;14855:18;;;14848:30;14914:34;14894:18;;;14887:62;14966:18;;1654:68:0;14634:356:89;9098:115:59;9161:7;9187:19;9195:3;4537:18;;4455:107;8297:150;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:59;;8390:4;:50::i;2673:187:0:-;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1003:95::-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;10402:247:60:-:0;10480:4;10514:12;-1:-1:-1;;;;;10500:42:60;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10500:44:60;;;;;;;;-1:-1:-1;;10500:44:60;;;;;;;;;;;;:::i;:::-;;;10496:147;;-1:-1:-1;10627:5:60;;10402:247;-1:-1:-1;10402:247:60:o;10496:147::-;-1:-1:-1;10584:4:60;;10402:247;-1:-1:-1;;10402:247:60:o;4904:118:59:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;2206:404::-;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:59;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:59;2581:12;;1104:111:0;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:10::0;1176:18:0::1;:32::i;14:127:89:-:0;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;295:18;280:34;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:89;505:40;;575:18;560:34;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:89:o;684:187::-;733:4;766:18;758:6;755:30;752:56;;;788:18;;:::i;:::-;-1:-1:-1;854:2:89;833:15;-1:-1:-1;;829:29:89;860:4;825:40;;684:187::o;876:464::-;919:5;972:3;965:4;957:6;953:17;949:27;939:55;;990:1;987;980:12;939:55;1026:6;1013:20;1057:49;1073:32;1102:2;1073:32;:::i;:::-;1057:49;:::i;:::-;1131:2;1122:7;1115:19;1177:3;1170:4;1165:2;1157:6;1153:15;1149:26;1146:35;1143:55;;;1194:1;1191;1184:12;1143:55;1259:2;1252:4;1244:6;1240:17;1233:4;1224:7;1220:18;1207:55;1307:1;1282:16;;;1300:4;1278:27;1271:38;;;;1286:7;876:464;-1:-1:-1;;;876:464:89:o;1345:390::-;1423:6;1431;1484:2;1472:9;1463:7;1459:23;1455:32;1452:52;;;1500:1;1497;1490:12;1452:52;1536:9;1523:23;1513:33;;1597:2;1586:9;1582:18;1569:32;1624:18;1616:6;1613:30;1610:50;;;1656:1;1653;1646:12;1610:50;1679;1721:7;1712:6;1701:9;1697:22;1679:50;:::i;:::-;1669:60;;;1345:390;;;;;:::o;1740:131::-;-1:-1:-1;;;;;1815:31:89;;1805:42;;1795:70;;1861:1;1858;1851:12;1876:525;1963:6;1971;1979;2032:2;2020:9;2011:7;2007:23;2003:32;2000:52;;;2048:1;2045;2038:12;2000:52;2087:9;2074:23;2106:31;2131:5;2106:31;:::i;:::-;2156:5;-1:-1:-1;2208:2:89;2193:18;;2180:32;;-1:-1:-1;2263:2:89;2248:18;;2235:32;2290:18;2279:30;;2276:50;;;2322:1;2319;2312:12;2276:50;2345;2387:7;2378:6;2367:9;2363:22;2345:50;:::i;:::-;2335:60;;;1876:525;;;;;:::o;2406:315::-;2474:6;2482;2535:2;2523:9;2514:7;2510:23;2506:32;2503:52;;;2551:1;2548;2541:12;2503:52;2590:9;2577:23;2609:31;2634:5;2609:31;:::i;:::-;2659:5;2711:2;2696:18;;;;2683:32;;-1:-1:-1;;;2406:315:89:o;2726:383::-;2803:6;2811;2819;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2927:9;2914:23;2946:31;2971:5;2946:31;:::i;:::-;2996:5;3048:2;3033:18;;3020:32;;-1:-1:-1;3099:2:89;3084:18;;;3071:32;;2726:383;-1:-1:-1;;;2726:383:89:o;3306:248::-;3374:6;3382;3435:2;3423:9;3414:7;3410:23;3406:32;3403:52;;;3451:1;3448;3441:12;3403:52;-1:-1:-1;;3474:23:89;;;3544:2;3529:18;;;3516:32;;-1:-1:-1;3306:248:89:o;3559:180::-;3618:6;3671:2;3659:9;3650:7;3646:23;3642:32;3639:52;;;3687:1;3684;3677:12;3639:52;-1:-1:-1;3710:23:89;;3559:180;-1:-1:-1;3559:180:89:o;3952:247::-;4011:6;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4119:9;4106:23;4138:31;4163:5;4138:31;:::i;4386:592::-;4457:6;4465;4518:2;4506:9;4497:7;4493:23;4489:32;4486:52;;;4534:1;4531;4524:12;4486:52;4574:9;4561:23;4603:18;4644:2;4636:6;4633:14;4630:34;;;4660:1;4657;4650:12;4630:34;4698:6;4687:9;4683:22;4673:32;;4743:7;4736:4;4732:2;4728:13;4724:27;4714:55;;4765:1;4762;4755:12;4714:55;4805:2;4792:16;4831:2;4823:6;4820:14;4817:34;;;4847:1;4844;4837:12;4817:34;4892:7;4887:2;4878:6;4874:2;4870:15;4866:24;4863:37;4860:57;;;4913:1;4910;4903:12;4860:57;4944:2;4936:11;;;;;4966:6;;-1:-1:-1;4386:592:89;;-1:-1:-1;;;;4386:592:89:o;4983:161::-;5049:5;5094:2;5085:6;5080:3;5076:16;5072:25;5069:45;;;5110:1;5107;5100:12;5069:45;-1:-1:-1;5132:6:89;4983:161;-1:-1:-1;4983:161:89:o;5149:437::-;5251:6;5259;5312:2;5300:9;5291:7;5287:23;5283:32;5280:52;;;5328:1;5325;5318:12;5280:52;5364:9;5351:23;5341:33;;5425:2;5414:9;5410:18;5397:32;5452:18;5444:6;5441:30;5438:50;;;5484:1;5481;5474:12;5438:50;5507:73;5572:7;5563:6;5552:9;5548:22;5507:73;:::i;5591:369::-;5684:6;5737:2;5725:9;5716:7;5712:23;5708:32;5705:52;;;5753:1;5750;5743:12;5705:52;5793:9;5780:23;5826:18;5818:6;5815:30;5812:50;;;5858:1;5855;5848:12;5812:50;5881:73;5946:7;5937:6;5926:9;5922:22;5881:73;:::i;:::-;5871:83;5591:369;-1:-1:-1;;;;5591:369:89:o;5965:250::-;6050:1;6060:113;6074:6;6071:1;6068:13;6060:113;;;6150:11;;;6144:18;6131:11;;;6124:39;6096:2;6089:10;6060:113;;;-1:-1:-1;;6207:1:89;6189:16;;6182:27;5965:250::o;6220:271::-;6262:3;6300:5;6294:12;6327:6;6322:3;6315:19;6343:76;6412:6;6405:4;6400:3;6396:14;6389:4;6382:5;6378:16;6343:76;:::i;:::-;6473:2;6452:15;-1:-1:-1;;6448:29:89;6439:39;;;;6480:4;6435:50;;6220:271;-1:-1:-1;;6220:271:89:o;6496:410::-;6685:2;6674:9;6667:21;6730:6;6724:13;6719:2;6708:9;6704:18;6697:41;6648:4;6785:2;6777:6;6773:15;6767:22;6827:4;6820;6809:9;6805:20;6798:34;6849:51;6896:2;6885:9;6881:18;6867:12;6849:51;:::i;6911:317::-;-1:-1:-1;;;;;7088:32:89;;7070:51;;7157:2;7152;7137:18;;7130:30;;;-1:-1:-1;;7177:45:89;;7203:18;;7195:6;7177:45;:::i;7233:184::-;7303:6;7356:2;7344:9;7335:7;7331:23;7327:32;7324:52;;;7372:1;7369;7362:12;7324:52;-1:-1:-1;7395:16:89;;7233:184;-1:-1:-1;7233:184:89:o;7422:277::-;7489:6;7542:2;7530:9;7521:7;7517:23;7513:32;7510:52;;;7558:1;7555;7548:12;7510:52;7590:9;7584:16;7643:5;7636:13;7629:21;7622:5;7619:32;7609:60;;7665:1;7662;7655:12;8028:267;8117:6;8112:3;8105:19;8169:6;8162:5;8155:4;8150:3;8146:14;8133:43;-1:-1:-1;8221:1:89;8196:16;;;8214:4;8192:27;;;8185:38;;;;8277:2;8256:15;;;-1:-1:-1;;8252:29:89;8243:39;;;8239:50;;8028:267::o;8300:344::-;-1:-1:-1;;;;;8487:32:89;;8469:51;;8556:2;8551;8536:18;;8529:30;;;-1:-1:-1;;8576:62:89;;8619:18;;8611:6;8603;8576:62;:::i;:::-;8568:70;8300:344;-1:-1:-1;;;;;8300:344:89:o;8649:251::-;8719:6;8772:2;8760:9;8751:7;8747:23;8743:32;8740:52;;;8788:1;8785;8778:12;8740:52;8820:9;8814:16;8839:31;8864:5;8839:31;:::i;8905:522::-;8983:4;8989:6;9049:11;9036:25;9143:2;9139:7;9128:8;9112:14;9108:29;9104:43;9084:18;9080:68;9070:96;;9162:1;9159;9152:12;9070:96;9189:33;;9241:20;;;-1:-1:-1;9284:18:89;9273:30;;9270:50;;;9316:1;9313;9306:12;9270:50;9349:4;9337:17;;-1:-1:-1;9380:14:89;9376:27;;;9366:38;;9363:58;;;9417:1;9414;9407:12;9363:58;8905:522;;;;;:::o;9432:318::-;9619:6;9608:9;9601:25;9662:2;9657;9646:9;9642:18;9635:30;9582:4;9682:62;9740:2;9729:9;9725:18;9717:6;9709;9682:62;:::i;10887:443::-;10941:5;10994:3;10987:4;10979:6;10975:17;10971:27;10961:55;;11012:1;11009;11002:12;10961:55;11041:6;11035:13;11072:49;11088:32;11117:2;11088:32;:::i;11072:49::-;11146:2;11137:7;11130:19;11192:3;11185:4;11180:2;11172:6;11168:15;11164:26;11161:35;11158:55;;;11209:1;11206;11199:12;11158:55;11222:77;11296:2;11289:4;11280:7;11276:18;11269:4;11261:6;11257:17;11222:77;:::i;11335:337::-;11415:6;11468:2;11456:9;11447:7;11443:23;11439:32;11436:52;;;11484:1;11481;11474:12;11436:52;11517:9;11511:16;11550:18;11542:6;11539:30;11536:50;;;11582:1;11579;11572:12;11536:50;11605:61;11658:7;11649:6;11638:9;11634:22;11605:61;:::i;12363:1543::-;12460:6;12491:2;12534;12522:9;12513:7;12509:23;12505:32;12502:52;;;12550:1;12547;12540:12;12502:52;12583:9;12577:16;12612:18;12653:2;12645:6;12642:14;12639:34;;;12669:1;12666;12659:12;12639:34;12692:22;;;;12748:4;12730:16;;;12726:27;12723:47;;;12766:1;12763;12756:12;12723:47;12792:22;;:::i;:::-;12843:2;12837:9;12830:5;12823:24;12886:2;12882;12878:11;12872:18;12915:2;12905:8;12902:16;12899:36;;;12931:1;12928;12921:12;12899:36;12967:56;13015:7;13004:8;13000:2;12996:17;12967:56;:::i;:::-;12962:2;12955:5;12951:14;12944:80;;13062:2;13058;13054:11;13048:18;13097:1;13088:7;13085:14;13075:42;;13113:1;13110;13103:12;13075:42;13144:2;13133:14;;13126:31;13196:2;13188:11;;13182:18;13212:16;;;13209:36;;;13241:1;13238;13231:12;13209:36;13272:8;13268:2;13264:17;13254:27;;;13319:7;13312:4;13308:2;13304:13;13300:27;13290:55;;13341:1;13338;13331:12;13290:55;13370:2;13364:9;13392:2;13388;13385:10;13382:36;;;13398:18;;:::i;:::-;13444:2;13441:1;13437:10;13427:20;;13467:28;13491:2;13487;13483:11;13467:28;:::i;:::-;13529:15;;;13599:11;;;13595:20;;;13560:12;;;;13627:19;;;13624:39;;;13659:1;13656;13649:12;13624:39;13683:11;;;;13703:135;13719:6;13714:3;13711:15;13703:135;;;13785:10;;13773:23;;13736:12;;;;13816;;;;13703:135;;;13865:2;13854:14;;13847:29;-1:-1:-1;13858:5:89;;12363:1543;-1:-1:-1;;;;;;;12363:1543:89:o;13911:127::-;13972:10;13967:3;13963:20;13960:1;13953:31;14003:4;14000:1;13993:15;14027:4;14024:1;14017:15;14043:127;14104:10;14099:3;14095:20;14092:1;14085:31;14135:4;14132:1;14125:15;14159:4;14156:1;14149:15;14175:217;14215:1;14241;14231:132;;14285:10;14280:3;14276:20;14273:1;14266:31;14320:4;14317:1;14310:15;14348:4;14345:1;14338:15;14231:132;-1:-1:-1;14377:9:89;;14175:217::o;14397:232::-;14436:3;14457:17;;;14454:140;;14516:10;14511:3;14507:20;14504:1;14497:31;14551:4;14548:1;14541:15;14579:4;14576:1;14569:15;14454:140;-1:-1:-1;14621:1:89;14610:13;;14397:232::o;14995:407::-;15197:2;15179:21;;;15236:2;15216:18;;;15209:30;15275:34;15270:2;15255:18;;15248:62;-1:-1:-1;;;15341:2:89;15326:18;;15319:41;15392:3;15377:19;;14995:407::o"},"methodIdentifiers":{"createOrganization(string)":"6427acca","createProfile((string))":"d16d22f5","emitPendingMemberApproved(address,uint256)":"16b726e5","emitPendingMemberRejected(address,uint256)":"ed94a4d5","emitProjectCreated(address,uint256)":"5421eed8","emitProjectMemberAdded(address,uint256,uint256)":"3c819124","emitProjectMemberRemoved(address,uint256,uint256)":"927aa63c","emitProjectUpdated(address,uint256)":"96937b43","emitTaskCreated(address,uint256,uint256)":"a8d91b02","emitTaskMemberAdded(address,uint256,uint256)":"2f6da008","emitTaskMemberRemoved(address,uint256,uint256)":"538be3a4","emitTaskUpdated(address,uint256)":"6d30ec62","getDefaultProfile(address)":"ed535d9d","getOrganization(uint256)":"4526f690","getOrganizationCount()":"5734e5e3","getProfile(uint256)":"f08f4f64","getProfileAccount(uint256)":"df50c5d7","giveEnergyTo(uint256,uint256)":"3214a18e","hasWithdrawn(address,uint256,uint256)":"2d5d8f67","initialize()":"8129fc1c","issueCertificate(address,uint256,string)":"0ce51f56","issueCertificate(uint256,string)":"0c816de4","joinOrganization(address)":"beef9895","leaveOrganization(address)":"4ee2ad7c","logTime(address,uint256,uint256)":"7f521ebe","owner()":"8da5cb5b","registerOrganization(address)":"90be003c","removeEnergyFrom(uint256,uint256)":"9e88381a","renounceOwnership()":"715018a6","setCertificateNFTContract(address)":"9583c539","setDefaultProfile(uint256)":"f1b2f8bc","setEnergyWalletContract(address)":"8ec8e6c7","setGovernanceTimelockContractAddress(address)":"cb9113f5","setMy3SecProfilesContract(address)":"8ac2b65a","setOrganizationFactoryContract(address)":"f8d67476","setSkillRegistryContract(address)":"59dfc3f4","setSkillWalletContract(address)":"979796a3","setTimeWalletContract(address)":"46b9173a","transferOwnership(address)":"f2fde38b","updateProfile(uint256,(string))":"75f44a3b","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWithdrawn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotOrganization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGovernance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotProfileOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelisted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"createOrganization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateProfile\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitPendingMemberApproved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitPendingMemberRejected\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"emitProjectCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitProjectMemberAdded\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitProjectMemberRemoved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"emitProjectUpdated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"emitTaskCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitTaskMemberAdded\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitTaskMemberRemoved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"emitTaskUpdated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDefaultProfile\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.ProfileView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getOrganization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOrganizationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getProfile\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.ProfileView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getProfileAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"giveEnergyTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"hasWithdrawn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"issueCertificate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"issueCertificate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"}],\"name\":\"joinOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"}],\"name\":\"leaveOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"logTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"}],\"name\":\"registerOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"removeEnergyFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setCertificateNFTContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"setDefaultProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setEnergyWalletContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setGovernanceTimelockContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setMy3SecProfilesContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setOrganizationFactoryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setSkillRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setSkillWalletContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setTimeWalletContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.UpdateProfile\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/My3SecHub.sol\":\"My3SecHub\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/My3SecHub.sol\":{\"keccak256\":\"0xba61f36c4f5d81371356d10f9b2e6992480fc56a50a600cd46ff598b82b2f744\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23572cffdda5de6b3667d211ce0458a87d490a22fa024cfacd497aa1332d2a17\",\"dweb:/ipfs/QmZ9BiB8QnJYkkzixPt4XY4HTAqqbYG6kGsPqmZVMgYJWu\"]},\"contracts/common/access/HubControllable.sol\":{\"keccak256\":\"0x8c68d5aa9dc7626e1b305fcb8b228b0d5acbf18e6be59b6ac1ee0f8dc41836df\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1bd2471fbfd6c3fdacd2f3b82ab0e74fda462bcc6569d40c5b28220629bc4f9\",\"dweb:/ipfs/QmS1Hx3javGZ2UHoxGLXFcrxd7poMdiPMpExaQNNXRdF7g\"]},\"contracts/common/access/Whitelistable.sol\":{\"keccak256\":\"0xd215d9966a24259575d481a03c5199f255211c1605f4517ef6c07ce3ad24e531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3264720e7252181265201ecf52ee600feaaacbbef27e64906528a47661818d23\",\"dweb:/ipfs/QmZ4CV9A6oSinNDGKfEZWWE8kMedkT7cocS3ETFq25aR5J\"]},\"contracts/common/interfaces/ICertificateNFT.sol\":{\"keccak256\":\"0x58910abf33c9efbc7875e054a656df46b80a68733824bc3189b2ebdcce30ecad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c27a932ceccfa49ce243e06589dff4adb8c68f30d9ab0636e12512ca48f263eb\",\"dweb:/ipfs/QmdmAqYq4yh3sVsDFfYaGLmx2dbbdK35PVfdWewfKfMfnZ\"]},\"contracts/common/interfaces/IEnergyWallet.sol\":{\"keccak256\":\"0xf28e5c064c4fdd3c355dfa0db3344553f6a50efaf2ae23556c5cf3e4862c85be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b5ad135e8147b055b6833479960e32026acae0c67de64b43c8b9e832039dc7a\",\"dweb:/ipfs/QmfQmsh8xvgEkF31VaMYrtVNp2pKNvhVsuUaN5ZVfteMCF\"]},\"contracts/common/interfaces/IMy3SecHub.sol\":{\"keccak256\":\"0x1b543b136330ede3d6560c6e2c786c1797918b89d7bee06a427fd9f1b0e7a555\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73365639c6951757949d4a0ddf4d82aa67d1ffce4b925a7c4802fef7327558aa\",\"dweb:/ipfs/QmZS91FvD64aMuqek4rZCwqZrxZcUAr1DKNA6JfYHVu5wZ\"]},\"contracts/common/interfaces/IMy3SecProfiles.sol\":{\"keccak256\":\"0xfa6535266711ac1af8b978ac089022698c55aa4c245f08ec6eb79b1b1ffcf92c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec61a9c7c4b89da2b5bf20574705b9fe1daf6a6033a91bf7d0f34efd9959399\",\"dweb:/ipfs/QmdVEf9mqgsRe9uEkQ5CHyLewqjhzKLs4MdvxC6SvvvMW1\"]},\"contracts/common/interfaces/IOrganization.sol\":{\"keccak256\":\"0x4a96b08a8f7f75a29a5f4f6eda73dfa2583187de578a822ca9eb7eef1a206905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02db94ed3a665e79d621226b0b5a49dc955564fd64e4f52821de893d9d72148f\",\"dweb:/ipfs/QmerdWzdMHujppA6jQ6KPt7uFGm1feGWAywcNfeKz2idaL\"]},\"contracts/common/interfaces/ISkillRegistry.sol\":{\"keccak256\":\"0x659399d8e4f8baab94ad26657789ee0e69290d36f98994eb2bada9d79bfe7bdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c8e674d3767a0192eccc1a5e5606e318bbbb92af19eac232cc9ab0c57cc1d2\",\"dweb:/ipfs/QmZgkPipJhx6Ka2ero285Ro4XRgqPkXsiGvBpq3vEnz8cF\"]},\"contracts/common/interfaces/ISkillWallet.sol\":{\"keccak256\":\"0x063f7dced9ce9a76c0789e28aa40cde50f756067afb291bd83bade684927e7b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b91449255aa5ff75217b36203ac6536d34502b5003e3105bdc7ae99cd5ea98de\",\"dweb:/ipfs/QmPBkZjh2ASv97gZSVuRgtcNRFkXvp3gdWEFZhvgEabmU7\"]},\"contracts/common/interfaces/ITimeWallet.sol\":{\"keccak256\":\"0x6c5b31022bb13684126bbc7497497184f991d81c8ee1934bee85a3379bd7ed96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96309831dea93fc771a73bddb63c1ff46bdc54cb76ee62a7719e41b5ce4db449\",\"dweb:/ipfs/QmP9R6mphTqnT7HVjpuerR5kzc9yfJrUC1imH1WtcyPC1T\"]},\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]},\"contracts/common/libraries/Constants.sol\":{\"keccak256\":\"0x1c22a5150d72c2ef9baef07a7b1e74c3e30ba8ebb2cbfa339b3392c662ac6239\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3303822a495220b88d79244edcfdbf851c3fc26cdc056bf4e8e4f04f5331807\",\"dweb:/ipfs/QmXpkrctAvQ3dXerWEFu79Qy8jcGFaUZK3QLW1XK2hFCsG\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/common/libraries/Events.sol\":{\"keccak256\":\"0xf94eef9e2c5a858a588565f639b15930f7f3aa70f52710c697f98cf11676dd8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cecefefa1e1df6b7a37cf2f1141c6f9e2f04d425b0c5066ad0e06083b45d1c\",\"dweb:/ipfs/Qmeetc3HCLA3HLySwHJrr73srfa5wG51hTSRcHAu2yCyax\"]},\"contracts/organizations/Organization.sol\":{\"keccak256\":\"0x2a2c97fe5a0ae44cfc1b41a8e224c080e61f4bbe600288d6482cd5ea78036916\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62234c106528c7f1e97a98f4680ccb71b4cb559a7afacf74ec781b6ee2230f6d\",\"dweb:/ipfs/QmVacTpzDX3dSQMwEziFmJgCT981Lx6zQ44mDPa9mXFfte\"]},\"contracts/organizations/OrganizationFactory.sol\":{\"keccak256\":\"0xda86cc27ec627575a15abdbfd9c2320d6c6a2c31522853359fc1f40af3cbfd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37b2554e8536056eb5534fe6153a57cfd091dd03e1467ae539704f7af3bce8d9\",\"dweb:/ipfs/QmS3GTPXhvGMfN1hRF5jrE82tt1DJ5DDK35TedAEFpJDsS\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":19846,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_governanceTimelockContractAddress","offset":0,"slot":"101","type":"t_address"},{"astId":19849,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_organizationFactory","offset":0,"slot":"102","type":"t_contract(OrganizationFactory)24267"},{"astId":19852,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_skillRegistry","offset":0,"slot":"103","type":"t_contract(ISkillRegistry)21914"},{"astId":19855,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_certificateNFT","offset":0,"slot":"104","type":"t_contract(ICertificateNFT)21239"},{"astId":19858,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_my3SecProfiles","offset":0,"slot":"105","type":"t_contract(IMy3SecProfiles)21601"},{"astId":19861,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_energyWallet","offset":0,"slot":"106","type":"t_contract(IEnergyWallet)21338"},{"astId":19864,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_timeWallet","offset":0,"slot":"107","type":"t_contract(ITimeWallet)21954"},{"astId":19867,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_skillWallet","offset":0,"slot":"108","type":"t_contract(ISkillWallet)21944"},{"astId":19870,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_organizations","offset":0,"slot":"109","type":"t_struct(AddressSet)19533_storage"},{"astId":19876,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"rewards","offset":0,"slot":"111","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(ICertificateNFT)21239":{"encoding":"inplace","label":"contract ICertificateNFT","numberOfBytes":"20"},"t_contract(IEnergyWallet)21338":{"encoding":"inplace","label":"contract IEnergyWallet","numberOfBytes":"20"},"t_contract(IMy3SecProfiles)21601":{"encoding":"inplace","label":"contract IMy3SecProfiles","numberOfBytes":"20"},"t_contract(ISkillRegistry)21914":{"encoding":"inplace","label":"contract ISkillRegistry","numberOfBytes":"20"},"t_contract(ISkillWallet)21944":{"encoding":"inplace","label":"contract ISkillWallet","numberOfBytes":"20"},"t_contract(ITimeWallet)21954":{"encoding":"inplace","label":"contract ITimeWallet","numberOfBytes":"20"},"t_contract(OrganizationFactory)24267":{"encoding":"inplace","label":"contract OrganizationFactory","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)19533_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","members":[{"astId":19532,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)19218_storage"}],"numberOfBytes":"64"},"t_struct(Set)19218_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","members":[{"astId":19213,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":19217,"contract":"contracts/My3SecHub.sol:My3SecHub","label":"_indexes","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/common/access/HubControllable.sol":{"HubControllable":{"abi":[{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"HUB","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":{"HUB()":"a4c52b86"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HUB\",\"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/common/access/HubControllable.sol\":\"HubControllable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/access/HubControllable.sol\":{\"keccak256\":\"0x8c68d5aa9dc7626e1b305fcb8b228b0d5acbf18e6be59b6ac1ee0f8dc41836df\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1bd2471fbfd6c3fdacd2f3b82ab0e74fda462bcc6569d40c5b28220629bc4f9\",\"dweb:/ipfs/QmS1Hx3javGZ2UHoxGLXFcrxd7poMdiPMpExaQNNXRdF7g\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/access/HubControllableUpgradeable.sol":{"HubControllableUpgradeable":{"abi":[{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"__HubControllable_init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"setHub","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":{"__HubControllable_init(address)":"f414c97d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setHub(address)":"31962cdc","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"__HubControllable_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"setHub\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/access/HubControllableUpgradeable.sol\":\"HubControllableUpgradeable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"contracts/common/access/HubControllableUpgradeable.sol\":{\"keccak256\":\"0xa136d76634a3ea944d76e1d1ddbdb99afb8f53803fa7daa6bd453b0289319295\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23980ee8080eeda2d228a1016f8bec848336d3d8033ef27c5e95cf41e6074a8d\",\"dweb:/ipfs/QmYWUaXCzmPCCsc8PKQn32MRk3aNidzcPtYZViVmd9sd8X\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":21067,"contract":"contracts/common/access/HubControllableUpgradeable.sol:HubControllableUpgradeable","label":"HUB","offset":0,"slot":"101","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/common/access/Whitelistable.sol":{"Whitelistable":{"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":[{"internalType":"address","name":"account","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getWhitelistCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getWhitelistMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","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":{"addToWhitelist(address)":"e43252d7","getWhitelistCount()":"3edff20f","getWhitelistMember(uint256)":"d7511957","isWhitelisted(address)":"3af32abf","owner()":"8da5cb5b","removeFromWhitelist(address)":"8ab1d681","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhitelistCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getWhitelistMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeFromWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/access/Whitelistable.sol\":\"Whitelistable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/access/Whitelistable.sol\":{\"keccak256\":\"0xd215d9966a24259575d481a03c5199f255211c1605f4517ef6c07ce3ad24e531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3264720e7252181265201ecf52ee600feaaacbbef27e64906528a47661818d23\",\"dweb:/ipfs/QmZ4CV9A6oSinNDGKfEZWWE8kMedkT7cocS3ETFq25aR5J\"]},\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5535,"contract":"contracts/common/access/Whitelistable.sol:Whitelistable","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":21138,"contract":"contracts/common/access/Whitelistable.sol:Whitelistable","label":"_whitelist","offset":0,"slot":"1","type":"t_struct(AddressSet)19533_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)19533_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","members":[{"astId":19532,"contract":"contracts/common/access/Whitelistable.sol:Whitelistable","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)19218_storage"}],"numberOfBytes":"64"},"t_struct(Set)19218_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","members":[{"astId":19213,"contract":"contracts/common/access/Whitelistable.sol:Whitelistable","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":19217,"contract":"contracts/common/access/Whitelistable.sol:Whitelistable","label":"_indexes","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/common/interfaces/ICertificateNFT.sol":{"ICertificateNFT":{"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":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"safeMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","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"},{"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":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeMint(address,string)":"d204c45e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"safeMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"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/common/interfaces/ICertificateNFT.sol\":\"ICertificateNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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\"]},\"contracts/common/interfaces/ICertificateNFT.sol\":{\"keccak256\":\"0x58910abf33c9efbc7875e054a656df46b80a68733824bc3189b2ebdcce30ecad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c27a932ceccfa49ce243e06589dff4adb8c68f30d9ab0636e12512ca48f263eb\",\"dweb:/ipfs/QmdmAqYq4yh3sVsDFfYaGLmx2dbbdK35PVfdWewfKfMfnZ\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IEnergyWallet.sol":{"IEnergyWallet":{"abi":[{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"allocatedEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createEnergyFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroyEnergyFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"energizedBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"energizersOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"freeEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"giveEnergy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"receivedEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeEnergy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergizedBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergizersOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergyOf","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":{"allocatedEnergyOf(uint256)":"319d684e","createEnergyFor(uint256,uint256)":"52c5fb8a","destroyEnergyFor(uint256,uint256)":"e3bfe61b","energizedBy(uint256,uint256)":"25b98c08","energizersOf(uint256,uint256)":"43b521bd","freeEnergyOf(uint256)":"ea6866ad","giveEnergy(uint256,uint256,uint256)":"7d94dfc9","receivedEnergyOf(uint256)":"9dfbfa76","removeEnergy(uint256,uint256,uint256)":"d072007d","totalEnergizedBy(uint256)":"3d107d4d","totalEnergizersOf(uint256)":"2d34e224","totalEnergyOf(uint256)":"540e3199"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"allocatedEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createEnergyFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"destroyEnergyFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"energizedBy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"energizersOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"freeEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"giveEnergy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"receivedEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"removeEnergy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergizedBy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergizersOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/IEnergyWallet.sol\":\"IEnergyWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/interfaces/IEnergyWallet.sol\":{\"keccak256\":\"0xf28e5c064c4fdd3c355dfa0db3344553f6a50efaf2ae23556c5cf3e4862c85be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b5ad135e8147b055b6833479960e32026acae0c67de64b43c8b9e832039dc7a\",\"dweb:/ipfs/QmfQmsh8xvgEkF31VaMYrtVNp2pKNvhVsuUaN5ZVfteMCF\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IMy3SecHub.sol":{"IMy3SecHub":{"abi":[{"inputs":[{"internalType":"string","name":"metadataURI","type":"string"}],"name":"createOrganization","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateProfile","name":"args","type":"tuple"}],"name":"createProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitPendingMemberApproved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitPendingMemberRejected","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"emitProjectCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitProjectMemberAdded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitProjectMemberRemoved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"emitProjectUpdated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"emitTaskCreated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitTaskMemberAdded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"emitTaskMemberRemoved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"emitTaskUpdated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDefaultProfile","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.ProfileView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getOrganization","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOrganizationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getProfile","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.ProfileView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getProfileAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"giveEnergyTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"hasWithdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"issueCertificate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"issueCertificate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"}],"name":"joinOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"}],"name":"leaveOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"logTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organization","type":"address"}],"name":"registerOrganization","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeEnergyFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"setDefaultProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.UpdateProfile","name":"args","type":"tuple"}],"name":"updateProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"organizationAddress","type":"address"},{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createOrganization(string)":"6427acca","createProfile((string))":"d16d22f5","emitPendingMemberApproved(address,uint256)":"16b726e5","emitPendingMemberRejected(address,uint256)":"ed94a4d5","emitProjectCreated(address,uint256)":"5421eed8","emitProjectMemberAdded(address,uint256,uint256)":"3c819124","emitProjectMemberRemoved(address,uint256,uint256)":"927aa63c","emitProjectUpdated(address,uint256)":"96937b43","emitTaskCreated(address,uint256,uint256)":"a8d91b02","emitTaskMemberAdded(address,uint256,uint256)":"2f6da008","emitTaskMemberRemoved(address,uint256,uint256)":"538be3a4","emitTaskUpdated(address,uint256)":"6d30ec62","getDefaultProfile(address)":"ed535d9d","getOrganization(uint256)":"4526f690","getOrganizationCount()":"5734e5e3","getProfile(uint256)":"f08f4f64","getProfileAccount(uint256)":"df50c5d7","giveEnergyTo(uint256,uint256)":"3214a18e","hasWithdrawn(address,uint256,uint256)":"2d5d8f67","issueCertificate(address,uint256,string)":"0ce51f56","issueCertificate(uint256,string)":"0c816de4","joinOrganization(address)":"beef9895","leaveOrganization(address)":"4ee2ad7c","logTime(address,uint256,uint256)":"7f521ebe","registerOrganization(address)":"90be003c","removeEnergyFrom(uint256,uint256)":"9e88381a","setDefaultProfile(uint256)":"f1b2f8bc","updateProfile(uint256,(string))":"75f44a3b","withdraw(address,uint256)":"f3fef3a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"createOrganization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateProfile\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitPendingMemberApproved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitPendingMemberRejected\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"emitProjectCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitProjectMemberAdded\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitProjectMemberRemoved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"emitProjectUpdated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"emitTaskCreated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitTaskMemberAdded\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"emitTaskMemberRemoved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"emitTaskUpdated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDefaultProfile\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.ProfileView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getOrganization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOrganizationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getProfile\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.ProfileView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getProfileAccount\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"giveEnergyTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"hasWithdrawn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"issueCertificate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"issueCertificate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"}],\"name\":\"joinOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"}],\"name\":\"leaveOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"logTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"}],\"name\":\"registerOrganization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"removeEnergyFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"setDefaultProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.UpdateProfile\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"organizationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/IMy3SecHub.sol\":\"IMy3SecHub\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/interfaces/IMy3SecHub.sol\":{\"keccak256\":\"0x1b543b136330ede3d6560c6e2c786c1797918b89d7bee06a427fd9f1b0e7a555\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73365639c6951757949d4a0ddf4d82aa67d1ffce4b925a7c4802fef7327558aa\",\"dweb:/ipfs/QmZS91FvD64aMuqek4rZCwqZrxZcUAr1DKNA6JfYHVu5wZ\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IMy3SecProfiles.sol":{"IMy3SecProfiles":{"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":"address","name":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"createProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDefaultProfileId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"account","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"setDefaultProfile","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":"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"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"updateProfile","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","createProfile(address,string)":"7765eba1","getApproved(uint256)":"081812fc","getDefaultProfileId(address)":"05b186b6","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setDefaultProfile(address,uint256)":"e93a724a","supportsInterface(bytes4)":"01ffc9a7","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","updateProfile(uint256,string)":"89c7e0a0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"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\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDefaultProfileId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"setDefaultProfile\",\"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\":\"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\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"updateProfile\",\"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/common/interfaces/IMy3SecProfiles.sol\":\"IMy3SecProfiles\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"contracts/common/interfaces/IMy3SecProfiles.sol\":{\"keccak256\":\"0xfa6535266711ac1af8b978ac089022698c55aa4c245f08ec6eb79b1b1ffcf92c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec61a9c7c4b89da2b5bf20574705b9fe1daf6a6033a91bf7d0f34efd9959399\",\"dweb:/ipfs/QmdVEf9mqgsRe9uEkQ5CHyLewqjhzKLs4MdvxC6SvvvMW1\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IMy3SecToken.sol":{"IMy3SecToken":{"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.17+commit.8df45f5f\"},\"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\":{\"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/common/interfaces/IMy3SecToken.sol\":\"IMy3SecToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/common/interfaces/IMy3SecToken.sol\":{\"keccak256\":\"0x9fd9df018eae2cc4b7a154bd58f962310aff4eb96aab98c6ca9377f90e7ec51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7982f7aa182f37967051c99d409216783e16f4289cfe631aa24ed5d8373842fd\",\"dweb:/ipfs/QmZQaLPtoUpMHUgA9UEiRbGvGnJTHphyR3XUq4tMjNzmiv\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IOrganization.sol":{"IOrganization":{"abi":[{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"addProjectMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"addTaskMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"approvePendingMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateProject","name":"args","type":"tuple"}],"name":"createProject","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.CreateTask","name":"args","type":"tuple"}],"name":"createTask","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMetadataURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getPendingMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getProject","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.ProjectStatus","name":"status","type":"uint8"},{"internalType":"uint256","name":"taskCount","type":"uint256"}],"internalType":"struct DataTypes.ProjectView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProjectCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getProjectMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"getProjectMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTask","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.TaskView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTask","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.TaskView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"getTaskCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTaskLoggedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTaskLoggedTimeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getTaskLoggedTimeOfProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTaskMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTaskMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWhitelistCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getWhitelistMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isPendingMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isProjectMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isTaskMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"join","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"leave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"rejectPendingMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"removeProjectMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"removeTaskMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"metadataURI","type":"string"}],"name":"setMetadataURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.ProjectStatus","name":"status","type":"uint8"}],"internalType":"struct DataTypes.UpdateProject","name":"args","type":"tuple"}],"name":"updateProject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.UpdateTask","name":"args","type":"tuple"}],"name":"updateTask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateTaskTime","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addProjectMember(uint256,uint256)":"c7ea81fc","addTaskMember(uint256,uint256)":"1599bea5","addToWhitelist(address)":"e43252d7","approvePendingMember(uint256)":"06e30412","createProject((string))":"41aafef7","createTask(uint256,(string,uint256[]))":"afcefa71","getMember(uint256)":"ab3545e5","getMemberCount()":"997072f7","getMetadataURI()":"86a92af7","getPendingMember(uint256)":"c591493f","getPendingMemberCount()":"bd9d867c","getProject(uint256)":"f0f3f2c8","getProjectCount()":"3bcff3b0","getProjectMember(uint256,uint256)":"49386c56","getProjectMemberCount(uint256)":"254c290d","getTask(uint256)":"1d65e77e","getTask(uint256,uint256)":"52dd4eb1","getTaskCount(uint256)":"76a79dcc","getTaskLoggedTime(uint256,uint256)":"07450adc","getTaskLoggedTimeCount(uint256)":"ad91a095","getTaskLoggedTimeOfProfile(uint256,uint256)":"0e1e20a2","getTaskMember(uint256,uint256)":"daf91ffc","getTaskMemberCount(uint256)":"2825ee48","getWhitelistCount()":"3edff20f","getWhitelistMember(uint256)":"d7511957","isMember(uint256)":"d50c7377","isPendingMember(uint256)":"c763bbf4","isProjectMember(uint256,uint256)":"fad001a2","isTaskMember(uint256,uint256)":"ab4fbac3","isWhitelisted(address)":"3af32abf","join(uint256)":"049878f3","leave(uint256)":"67dfd4c9","rejectPendingMember(uint256)":"c59db1af","removeFromWhitelist(address)":"8ab1d681","removeProjectMember(uint256,uint256)":"7d542a4f","removeTaskMember(uint256,uint256)":"3e2de334","setMetadataURI(string)":"750521f5","transferOwnership(address)":"f2fde38b","updateProject(uint256,(string,uint8))":"2565d6c5","updateTask(uint256,(string,uint8,uint256[]))":"2a10fb85","updateTaskTime(uint256,uint256,uint256)":"6989fd6b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"addProjectMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"addTaskMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"approvePendingMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateProject\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createProject\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.CreateTask\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createTask\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMetadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getPendingMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getProject\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.ProjectStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"taskCount\",\"type\":\"uint256\"}],\"internalType\":\"struct DataTypes.ProjectView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProjectCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getProjectMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"getProjectMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.TaskView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.TaskView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"getTaskCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTimeCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTimeOfProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTaskMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTaskMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhitelistCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getWhitelistMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isPendingMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isProjectMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isTaskMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"rejectPendingMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeFromWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"removeProjectMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"removeTaskMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"setMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.ProjectStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct DataTypes.UpdateProject\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.UpdateTask\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"updateTaskTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/IOrganization.sol\":\"IOrganization\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/interfaces/IOrganization.sol\":{\"keccak256\":\"0x4a96b08a8f7f75a29a5f4f6eda73dfa2583187de578a822ca9eb7eef1a206905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02db94ed3a665e79d621226b0b5a49dc955564fd64e4f52821de893d9d72148f\",\"dweb:/ipfs/QmerdWzdMHujppA6jQ6KPt7uFGm1feGWAywcNfeKz2idaL\"]},\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/ISkillRegistry.sol":{"ISkillRegistry":{"abi":[{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateSkill","name":"args","type":"tuple"}],"name":"createSkill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBaseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getSkill","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.SkillView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSkillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.UpdateSkill","name":"args","type":"tuple"}],"name":"updateSkill","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createSkill((string))":"3fa9b1e4","getBaseURI()":"714c5398","getSkill(uint256)":"bd880fae","getSkillCount()":"05f53b29","setBaseURI(string)":"55f804b3","updateSkill(uint256,(string))":"8c2576b2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateSkill\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createSkill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSkill\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.SkillView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSkillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.UpdateSkill\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateSkill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/ISkillRegistry.sol\":\"ISkillRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/interfaces/ISkillRegistry.sol\":{\"keccak256\":\"0x659399d8e4f8baab94ad26657789ee0e69290d36f98994eb2bada9d79bfe7bdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c8e674d3767a0192eccc1a5e5606e318bbbb92af19eac232cc9ab0c57cc1d2\",\"dweb:/ipfs/QmZgkPipJhx6Ka2ero285Ro4XRgqPkXsiGvBpq3vEnz8cF\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/ISkillWallet.sol":{"ISkillWallet":{"abi":[{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getSkill","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"}],"name":"getSkillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"},{"internalType":"uint256","name":"skillID","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recordExperience","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getSkill(uint256,uint256)":"b74044bc","getSkillCount(uint256)":"a59acb85","recordExperience(uint256,uint256,uint256)":"95933f88"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSkill\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"}],\"name\":\"getSkillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"skillID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recordExperience\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/ISkillWallet.sol\":\"ISkillWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/interfaces/ISkillWallet.sol\":{\"keccak256\":\"0x063f7dced9ce9a76c0789e28aa40cde50f756067afb291bd83bade684927e7b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b91449255aa5ff75217b36203ac6536d34502b5003e3105bdc7ae99cd5ea98de\",\"dweb:/ipfs/QmPBkZjh2ASv97gZSVuRgtcNRFkXvp3gdWEFZhvgEabmU7\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/ITimeWallet.sol":{"ITimeWallet":{"abi":[{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"spendTimeFor","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"spendTimeFor(uint256,uint256)":"581823bd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"spendTimeFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/ITimeWallet.sol\":\"ITimeWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/interfaces/ITimeWallet.sol\":{\"keccak256\":\"0x6c5b31022bb13684126bbc7497497184f991d81c8ee1934bee85a3379bd7ed96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96309831dea93fc771a73bddb63c1ff46bdc54cb76ee62a7719e41b5ce4db449\",\"dweb:/ipfs/QmP9R6mphTqnT7HVjpuerR5kzc9yfJrUC1imH1WtcyPC1T\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/interfaces/IWhitelistable.sol":{"IWhitelistable":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getWhitelistCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getWhitelistMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addToWhitelist(address)":"e43252d7","getWhitelistCount()":"3edff20f","getWhitelistMember(uint256)":"d7511957","isWhitelisted(address)":"3af32abf","removeFromWhitelist(address)":"8ab1d681"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhitelistCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getWhitelistMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeFromWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/interfaces/IWhitelistable.sol\":\"IWhitelistable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/libraries/Constants.sol":{"Constants":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf67fd1349c67990248ec67a3877108a8ea32e0e15f8da21870c7cdce08ef74564736f6c63430008110033","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 0xBF PUSH8 0xFD1349C67990248E 0xC6 PUSH27 0x3877108A8EA32E0E15F8DA21870C7CDCE08EF74564736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"57:419:74:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:419:74;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf67fd1349c67990248ec67a3877108a8ea32e0e15f8da21870c7cdce08ef74564736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH8 0xFD1349C67990248E 0xC6 PUSH27 0x3877108A8EA32E0E15F8DA21870C7CDCE08EF74564736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"57:419:74:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/libraries/Constants.sol\":\"Constants\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/libraries/Constants.sol\":{\"keccak256\":\"0x1c22a5150d72c2ef9baef07a7b1e74c3e30ba8ebb2cbfa339b3392c662ac6239\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3303822a495220b88d79244edcfdbf851c3fc26cdc056bf4e8e4f04f5331807\",\"dweb:/ipfs/QmXpkrctAvQ3dXerWEFu79Qy8jcGFaUZK3QLW1XK2hFCsG\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/libraries/DataTypes.sol":{"DataTypes":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220863a013297827423f9ef41b2cca4ed53a37bf6a18abbc01a4bf220f8b917bcd564736f6c63430008110033","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 DUP7 GASPRICE ADD ORIGIN SWAP8 DUP3 PUSH21 0x23F9EF41B2CCA4ED53A37BF6A18ABBC01A4BF220F8 0xB9 OR 0xBC 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"190:1640:75:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;190:1640:75;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220863a013297827423f9ef41b2cca4ed53a37bf6a18abbc01a4bf220f8b917bcd564736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP7 GASPRICE ADD ORIGIN SWAP8 DUP3 PUSH21 0x23F9EF41B2CCA4ED53A37BF6A18ABBC01A4BF220F8 0xB9 OR 0xBC 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"190:1640:75:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/libraries/DataTypes.sol\":\"DataTypes\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/libraries/Errors.sol":{"Errors":{"abi":[{"inputs":[],"name":"AlreadyCompleted","type":"error"},{"inputs":[],"name":"AlreadyMember","type":"error"},{"inputs":[],"name":"AlreadyRegistered","type":"error"},{"inputs":[],"name":"AlreadyWithdrawn","type":"error"},{"inputs":[],"name":"CallerNotOrganization","type":"error"},{"inputs":[],"name":"ExceededLoggableTime","type":"error"},{"inputs":[],"name":"IndexOutOfBounds","type":"error"},{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"InvalidContract","type":"error"},{"inputs":[],"name":"NotCompleted","type":"error"},{"inputs":[],"name":"NotGovernance","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"inputs":[],"name":"NotMember","type":"error"},{"inputs":[],"name":"NotPendingMember","type":"error"},{"inputs":[],"name":"NotProfileOwner","type":"error"},{"inputs":[],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"inputs":[],"name":"SkillNotFound","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0887ccc709af9f7d78a1ba8ae528b9a5d057e317752ef0fd872c4e21652598d64736f6c63430008110033","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 0xB0 DUP9 PUSH29 0xCC709AF9F7D78A1BA8AE528B9A5D057E317752EF0FD872C4E21652598D PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"57:532:76:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:532:76;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0887ccc709af9f7d78a1ba8ae528b9a5d057e317752ef0fd872c4e21652598d64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 DUP9 PUSH29 0xCC709AF9F7D78A1BA8AE528B9A5D057E317752EF0FD872C4E21652598D PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"57:532:76:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyWithdrawn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotOrganization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExceededLoggableTime\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotGovernance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPendingMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotProfileOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SkillNotFound\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/libraries/Errors.sol\":\"Errors\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/common/libraries/Events.sol":{"Events":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"certificateId","type":"uint256"}],"name":"CertificateIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromProfileId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toProfileId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EnergyGiven","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromProfileId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"toProfileId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EnergyRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"ExperienceWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"OrganizationJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"OrganizationLeft","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"}],"name":"OrganizationRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"PendingMemberApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"PendingMemberRejected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ProfileCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"ProjectCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"ProjectMemberAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"ProjectMemberRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"ProjectUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"skillId","type":"uint256"}],"name":"SkillCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"projectId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"TaskCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"TaskMemberAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"TaskMemberRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"organization","type":"address"},{"indexed":true,"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"TaskUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"profileId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TimeLogged","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022d7b9bf7e6cb75f4be17c594d32364e4539f9442fc25ecb08649ba7dccf36ee64736f6c63430008110033","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 0x22 0xD7 0xB9 0xBF PUSH31 0x6CB75F4BE17C594D32364E4539F9442FC25ECB08649BA7DCCF36EE64736F6C PUSH4 0x43000811 STOP CALLER ","sourceMap":"57:1830:77:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;57:1830:77;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022d7b9bf7e6cb75f4be17c594d32364e4539f9442fc25ecb08649ba7dccf36ee64736f6c63430008110033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xD7 0xB9 0xBF PUSH31 0x6CB75F4BE17C594D32364E4539F9442FC25ECB08649BA7DCCF36EE64736F6C PUSH4 0x43000811 STOP CALLER ","sourceMap":"57:1830:77:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"certificateId\",\"type\":\"uint256\"}],\"name\":\"CertificateIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromProfileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toProfileId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EnergyGiven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromProfileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toProfileId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EnergyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"ExperienceWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"OrganizationJoined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"OrganizationLeft\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"}],\"name\":\"OrganizationRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"PendingMemberApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"PendingMemberRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"ProjectCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"ProjectMemberAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"ProjectMemberRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"ProjectUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"skillId\",\"type\":\"uint256\"}],\"name\":\"SkillCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"TaskCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"TaskMemberAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"TaskMemberRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"TaskUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"TimeLogged\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/common/libraries/Events.sol\":\"Events\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/common/libraries/Events.sol\":{\"keccak256\":\"0xf94eef9e2c5a858a588565f639b15930f7f3aa70f52710c697f98cf11676dd8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cecefefa1e1df6b7a37cf2f1141c6f9e2f04d425b0c5066ad0e06083b45d1c\",\"dweb:/ipfs/Qmeetc3HCLA3HLySwHJrr73srfa5wG51hTSRcHAu2yCyax\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/governance/My3SecGovernance.sol":{"My3SecGovernance":{"abi":[{"inputs":[{"internalType":"contract IVotes","name":"_token","type":"address"},{"internalType":"contract TimelockController","name":"_timelock","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Empty","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldQuorumNumerator","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"name":"QuorumNumeratorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTimelock","type":"address"},{"indexed":false,"internalType":"address","name":"newTimelock","type":"address"}],"name":"TimelockChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"weight","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"},{"indexed":false,"internalType":"bytes","name":"params","type":"bytes"}],"name":"VoteCastWithParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COUNTING_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"EXTENDED_BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"castVoteWithReasonAndParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteWithReasonAndParamsBySig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"getVotesWithParams","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"hasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"hashProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalEta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalSnapshot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"bytes32","name":"descriptionHash","type":"bytes32"}],"name":"queue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IVotes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"name":"updateQuorumNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract TimelockController","name":"newTimelock","type":"address"}],"name":"updateTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_15229":{"entryPoint":null,"id":15229,"parameterSlots":2,"returnSlots":0},"@_22351":{"entryPoint":null,"id":22351,"parameterSlots":2,"returnSlots":0},"@_5761":{"entryPoint":null,"id":5761,"parameterSlots":1,"returnSlots":0},"@_8438":{"entryPoint":null,"id":8438,"parameterSlots":3,"returnSlots":0},"@_8599":{"entryPoint":null,"id":8599,"parameterSlots":1,"returnSlots":0},"@_8961":{"entryPoint":null,"id":8961,"parameterSlots":1,"returnSlots":0},"@_9016":{"entryPoint":null,"id":9016,"parameterSlots":1,"returnSlots":0},"@_buildDomainSeparator_15285":{"entryPoint":null,"id":15285,"parameterSlots":3,"returnSlots":1},"@_insert_13348":{"entryPoint":1603,"id":13348,"parameterSlots":3,"returnSlots":2},"@_setProposalThreshold_8562":{"entryPoint":626,"id":8562,"parameterSlots":1,"returnSlots":0},"@_setVotingDelay_8523":{"entryPoint":394,"id":8523,"parameterSlots":1,"returnSlots":0},"@_setVotingPeriod_8546":{"entryPoint":459,"id":8546,"parameterSlots":1,"returnSlots":0},"@_unsafeAccess_13467":{"entryPoint":null,"id":13467,"parameterSlots":2,"returnSlots":1},"@_updateQuorumNumerator_9184":{"entryPoint":691,"id":9184,"parameterSlots":1,"returnSlots":0},"@_updateTimelock_8939":{"entryPoint":1067,"id":8939,"parameterSlots":1,"returnSlots":0},"@latest_13195":{"entryPoint":1422,"id":13195,"parameterSlots":1,"returnSlots":1},"@push_13131":{"entryPoint":1339,"id":13131,"parameterSlots":2,"returnSlots":2},"@quorumDenominator_9091":{"entryPoint":null,"id":9091,"parameterSlots":0,"returnSlots":1},"@quorumNumerator_9034":{"entryPoint":1172,"id":9034,"parameterSlots":0,"returnSlots":1},"@toUint224_16306":{"entryPoint":1228,"id":16306,"parameterSlots":1,"returnSlots":1},"@toUint32_16906":{"entryPoint":1500,"id":16906,"parameterSlots":1,"returnSlots":1},"@version_5847":{"entryPoint":367,"id":5847,"parameterSlots":0,"returnSlots":1},"abi_decode_tuple_t_contract$_IVotes_$9304t_contract$_TimelockController_$8159_fromMemory":{"entryPoint":2063,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"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_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__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_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__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_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_sub_t_uint256":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":2208,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":2291,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2148,"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":2126,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_contract_IVotes":{"entryPoint":2038,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6661:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"67:86:89","statements":[{"body":{"nodeType":"YulBlock","src":"131:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"140:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"143:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"133:6:89"},"nodeType":"YulFunctionCall","src":"133:12:89"},"nodeType":"YulExpressionStatement","src":"133:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"90:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"101:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"116:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"121:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"112:3:89"},"nodeType":"YulFunctionCall","src":"112:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"125:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"108:3:89"},"nodeType":"YulFunctionCall","src":"108:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"97:3:89"},"nodeType":"YulFunctionCall","src":"97:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"87:2:89"},"nodeType":"YulFunctionCall","src":"87:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"80:6:89"},"nodeType":"YulFunctionCall","src":"80:50:89"},"nodeType":"YulIf","src":"77:70:89"}]},"name":"validator_revert_contract_IVotes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56:5:89","type":""}],"src":"14:139:89"},{"body":{"nodeType":"YulBlock","src":"298:303:89","statements":[{"body":{"nodeType":"YulBlock","src":"344:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"353:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"356:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"346:6:89"},"nodeType":"YulFunctionCall","src":"346:12:89"},"nodeType":"YulExpressionStatement","src":"346:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"319:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"328:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"315:3:89"},"nodeType":"YulFunctionCall","src":"315:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"340:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"311:3:89"},"nodeType":"YulFunctionCall","src":"311:32:89"},"nodeType":"YulIf","src":"308:52:89"},{"nodeType":"YulVariableDeclaration","src":"369:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"388:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"382:5:89"},"nodeType":"YulFunctionCall","src":"382:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"373:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"440:5:89"}],"functionName":{"name":"validator_revert_contract_IVotes","nodeType":"YulIdentifier","src":"407:32:89"},"nodeType":"YulFunctionCall","src":"407:39:89"},"nodeType":"YulExpressionStatement","src":"407:39:89"},{"nodeType":"YulAssignment","src":"455:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"465:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"455:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"479:40:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"504:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"515:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"500:3:89"},"nodeType":"YulFunctionCall","src":"500:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"494:5:89"},"nodeType":"YulFunctionCall","src":"494:25:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"483:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"561:7:89"}],"functionName":{"name":"validator_revert_contract_IVotes","nodeType":"YulIdentifier","src":"528:32:89"},"nodeType":"YulFunctionCall","src":"528:41:89"},"nodeType":"YulExpressionStatement","src":"528:41:89"},{"nodeType":"YulAssignment","src":"578:17:89","value":{"name":"value_1","nodeType":"YulIdentifier","src":"588:7:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"578:6:89"}]}]},"name":"abi_decode_tuple_t_contract$_IVotes_$9304t_contract$_TimelockController_$8159_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"256:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"267:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"279:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"287:6:89","type":""}],"src":"158:443:89"},{"body":{"nodeType":"YulBlock","src":"638:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"655:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"662:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"667:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"658:3:89"},"nodeType":"YulFunctionCall","src":"658:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:89"},"nodeType":"YulFunctionCall","src":"648:31:89"},"nodeType":"YulExpressionStatement","src":"648:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"695:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"698:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"688:6:89"},"nodeType":"YulFunctionCall","src":"688:15:89"},"nodeType":"YulExpressionStatement","src":"688:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"719:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"722:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"712:6:89"},"nodeType":"YulFunctionCall","src":"712:15:89"},"nodeType":"YulExpressionStatement","src":"712:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"606:127:89"},{"body":{"nodeType":"YulBlock","src":"793:325:89","statements":[{"nodeType":"YulAssignment","src":"803:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"817:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"820:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"813:3:89"},"nodeType":"YulFunctionCall","src":"813:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"803:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"834:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"864:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"870:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"860:3:89"},"nodeType":"YulFunctionCall","src":"860:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"838:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"911:31:89","statements":[{"nodeType":"YulAssignment","src":"913:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"927:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"923:3:89"},"nodeType":"YulFunctionCall","src":"923:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"913:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"891:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"884:6:89"},"nodeType":"YulFunctionCall","src":"884:26:89"},"nodeType":"YulIf","src":"881:61:89"},{"body":{"nodeType":"YulBlock","src":"1001:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1022:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1029:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1034:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1025:3:89"},"nodeType":"YulFunctionCall","src":"1025:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1015:6:89"},"nodeType":"YulFunctionCall","src":"1015:31:89"},"nodeType":"YulExpressionStatement","src":"1015:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1066:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1069:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1059:6:89"},"nodeType":"YulFunctionCall","src":"1059:15:89"},"nodeType":"YulExpressionStatement","src":"1059:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1094:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1097:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1087:6:89"},"nodeType":"YulFunctionCall","src":"1087:15:89"},"nodeType":"YulExpressionStatement","src":"1087:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"957:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"980:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"988:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"977:2:89"},"nodeType":"YulFunctionCall","src":"977:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"954:2:89"},"nodeType":"YulFunctionCall","src":"954:38:89"},"nodeType":"YulIf","src":"951:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"773:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"782:6:89","type":""}],"src":"738:380:89"},{"body":{"nodeType":"YulBlock","src":"1179:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1196:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"1199:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1189:6:89"},"nodeType":"YulFunctionCall","src":"1189:14:89"},"nodeType":"YulExpressionStatement","src":"1189:14:89"},{"nodeType":"YulAssignment","src":"1212:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1230:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1233:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1220:9:89"},"nodeType":"YulFunctionCall","src":"1220:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"1212:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1162:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1170:4:89","type":""}],"src":"1123:121:89"},{"body":{"nodeType":"YulBlock","src":"1330:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"1363:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1377:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1387:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1381:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1408:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"1412:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1401:6:89"},"nodeType":"YulFunctionCall","src":"1401:17:89"},"nodeType":"YulExpressionStatement","src":"1401:17:89"},{"nodeType":"YulVariableDeclaration","src":"1431:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1453:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1457:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1443:9:89"},"nodeType":"YulFunctionCall","src":"1443:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1435:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1475:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1498:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1508:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1515:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1527:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1511:3:89"},"nodeType":"YulFunctionCall","src":"1511:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1504:3:89"},"nodeType":"YulFunctionCall","src":"1504:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1494:3:89"},"nodeType":"YulFunctionCall","src":"1494:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1479:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1569:23:89","statements":[{"nodeType":"YulAssignment","src":"1571:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"1586:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"1571:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1551:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1563:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1548:2:89"},"nodeType":"YulFunctionCall","src":"1548:20:89"},"nodeType":"YulIf","src":"1545:47:89"},{"nodeType":"YulVariableDeclaration","src":"1605:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1619:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1629:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1636:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1641:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1632:3:89"},"nodeType":"YulFunctionCall","src":"1632:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1625:3:89"},"nodeType":"YulFunctionCall","src":"1625:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1615:3:89"},"nodeType":"YulFunctionCall","src":"1615:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1609:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1659:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1672:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1663:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1757:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1766:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1773:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1759:6:89"},"nodeType":"YulFunctionCall","src":"1759:17:89"},"nodeType":"YulExpressionStatement","src":"1759:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1707:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1714:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1704:2:89"},"nodeType":"YulFunctionCall","src":"1704:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1718:26:89","statements":[{"nodeType":"YulAssignment","src":"1720:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1733:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1740:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1729:3:89"},"nodeType":"YulFunctionCall","src":"1729:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1720:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1700:3:89","statements":[]},"src":"1696:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1346:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1351:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1343:2:89"},"nodeType":"YulFunctionCall","src":"1343:11:89"},"nodeType":"YulIf","src":"1340:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1302:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1309:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1314:10:89","type":""}],"src":"1249:545:89"},{"body":{"nodeType":"YulBlock","src":"1884:81:89","statements":[{"nodeType":"YulAssignment","src":"1894:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1909:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1927:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1930:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1923:3:89"},"nodeType":"YulFunctionCall","src":"1923:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1940:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1936:3:89"},"nodeType":"YulFunctionCall","src":"1936:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1919:3:89"},"nodeType":"YulFunctionCall","src":"1919:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1915:3:89"},"nodeType":"YulFunctionCall","src":"1915:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1905:3:89"},"nodeType":"YulFunctionCall","src":"1905:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1951:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1954:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1947:3:89"},"nodeType":"YulFunctionCall","src":"1947:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1902:2:89"},"nodeType":"YulFunctionCall","src":"1902:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1894:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1861:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1867:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1875:4:89","type":""}],"src":"1799:166:89"},{"body":{"nodeType":"YulBlock","src":"2066:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2076:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2096:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2090:5:89"},"nodeType":"YulFunctionCall","src":"2090:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2080:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2143:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2145:16:89"},"nodeType":"YulFunctionCall","src":"2145:18:89"},"nodeType":"YulExpressionStatement","src":"2145:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2115:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2131:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2135:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2127:3:89"},"nodeType":"YulFunctionCall","src":"2127:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2139:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2123:3:89"},"nodeType":"YulFunctionCall","src":"2123:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2112:2:89"},"nodeType":"YulFunctionCall","src":"2112:30:89"},"nodeType":"YulIf","src":"2109:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2218:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2256:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2250:5:89"},"nodeType":"YulFunctionCall","src":"2250:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"2224:25:89"},"nodeType":"YulFunctionCall","src":"2224:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2264:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2174:43:89"},"nodeType":"YulFunctionCall","src":"2174:97:89"},"nodeType":"YulExpressionStatement","src":"2174:97:89"},{"nodeType":"YulVariableDeclaration","src":"2280:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2297:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"2284:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2307:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2326:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2311:11:89","type":""}]},{"nodeType":"YulAssignment","src":"2339:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2352:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2339:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2409:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2423:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2442:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2454:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2450:3:89"},"nodeType":"YulFunctionCall","src":"2450:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2438:3:89"},"nodeType":"YulFunctionCall","src":"2438:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2427:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2471:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2515:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2485:29:89"},"nodeType":"YulFunctionCall","src":"2485:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2475:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2533:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2542:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2537:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2620:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2645:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2663:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2668:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2659:3:89"},"nodeType":"YulFunctionCall","src":"2659:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2653:5:89"},"nodeType":"YulFunctionCall","src":"2653:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2638:6:89"},"nodeType":"YulFunctionCall","src":"2638:42:89"},"nodeType":"YulExpressionStatement","src":"2638:42:89"},{"nodeType":"YulAssignment","src":"2697:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2711:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2719:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2707:3:89"},"nodeType":"YulFunctionCall","src":"2707:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2697:6:89"}]},{"nodeType":"YulAssignment","src":"2738:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2755:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2766:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2751:3:89"},"nodeType":"YulFunctionCall","src":"2751:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2738:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2567:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"2570:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2564:2:89"},"nodeType":"YulFunctionCall","src":"2564:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2579:28:89","statements":[{"nodeType":"YulAssignment","src":"2581:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2590:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2593:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:89"},"nodeType":"YulFunctionCall","src":"2586:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2581:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2560:3:89","statements":[]},"src":"2556:236:89"},{"body":{"nodeType":"YulBlock","src":"2840:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2858:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2885:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2890:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2881:3:89"},"nodeType":"YulFunctionCall","src":"2881:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2875:5:89"},"nodeType":"YulFunctionCall","src":"2875:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2862:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2925:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2937:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2964:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2967:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2960:3:89"},"nodeType":"YulFunctionCall","src":"2960:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"2976:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2956:3:89"},"nodeType":"YulFunctionCall","src":"2956:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2986:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2982:3:89"},"nodeType":"YulFunctionCall","src":"2982:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2952:3:89"},"nodeType":"YulFunctionCall","src":"2952:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2948:3:89"},"nodeType":"YulFunctionCall","src":"2948:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2933:3:89"},"nodeType":"YulFunctionCall","src":"2933:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2918:6:89"},"nodeType":"YulFunctionCall","src":"2918:74:89"},"nodeType":"YulExpressionStatement","src":"2918:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2811:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2820:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2808:2:89"},"nodeType":"YulFunctionCall","src":"2808:19:89"},"nodeType":"YulIf","src":"2805:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3026:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3040:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3043:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3036:3:89"},"nodeType":"YulFunctionCall","src":"3036:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3052:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3032:3:89"},"nodeType":"YulFunctionCall","src":"3032:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3019:6:89"},"nodeType":"YulFunctionCall","src":"3019:36:89"},"nodeType":"YulExpressionStatement","src":"3019:36:89"}]},"nodeType":"YulCase","src":"2402:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2407:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3082:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3096:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3109:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3100:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3145:67:89","statements":[{"nodeType":"YulAssignment","src":"3163:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3182:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3187:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3178:3:89"},"nodeType":"YulFunctionCall","src":"3178:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3172:5:89"},"nodeType":"YulFunctionCall","src":"3172:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3163:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3126:6:89"},"nodeType":"YulIf","src":"3123:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3232:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3291:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3298:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"3238:52:89"},"nodeType":"YulFunctionCall","src":"3238:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3225:6:89"},"nodeType":"YulFunctionCall","src":"3225:81:89"},"nodeType":"YulExpressionStatement","src":"3225:81:89"}]},"nodeType":"YulCase","src":"3074:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2382:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2390:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2379:2:89"},"nodeType":"YulFunctionCall","src":"2379:14:89"},"nodeType":"YulSwitch","src":"2372:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2051:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"2057:3:89","type":""}],"src":"1970:1352:89"},{"body":{"nodeType":"YulBlock","src":"3540:276:89","statements":[{"nodeType":"YulAssignment","src":"3550:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3562:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3573:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3558:3:89"},"nodeType":"YulFunctionCall","src":"3558:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3550:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3593:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"3604:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3586:6:89"},"nodeType":"YulFunctionCall","src":"3586:25:89"},"nodeType":"YulExpressionStatement","src":"3586:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3631:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3642:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3627:3:89"},"nodeType":"YulFunctionCall","src":"3627:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"3647:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3620:6:89"},"nodeType":"YulFunctionCall","src":"3620:34:89"},"nodeType":"YulExpressionStatement","src":"3620:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3674:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3685:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3670:3:89"},"nodeType":"YulFunctionCall","src":"3670:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"3690:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3663:6:89"},"nodeType":"YulFunctionCall","src":"3663:34:89"},"nodeType":"YulExpressionStatement","src":"3663:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3717:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3728:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3713:3:89"},"nodeType":"YulFunctionCall","src":"3713:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"3733:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3706:6:89"},"nodeType":"YulFunctionCall","src":"3706:34:89"},"nodeType":"YulExpressionStatement","src":"3706:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3760:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3771:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3756:3:89"},"nodeType":"YulFunctionCall","src":"3756:19:89"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3781:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3797:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3802:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3793:3:89"},"nodeType":"YulFunctionCall","src":"3793:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"3806:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3789:3:89"},"nodeType":"YulFunctionCall","src":"3789:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3777:3:89"},"nodeType":"YulFunctionCall","src":"3777:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3749:6:89"},"nodeType":"YulFunctionCall","src":"3749:61:89"},"nodeType":"YulExpressionStatement","src":"3749:61:89"}]},"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":"3477:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3488:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3496:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3504:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3512:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3520:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3531:4:89","type":""}],"src":"3327:489:89"},{"body":{"nodeType":"YulBlock","src":"3950:119:89","statements":[{"nodeType":"YulAssignment","src":"3960:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3972:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3983:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3968:3:89"},"nodeType":"YulFunctionCall","src":"3968:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3960:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4002:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"4013:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3995:6:89"},"nodeType":"YulFunctionCall","src":"3995:25:89"},"nodeType":"YulExpressionStatement","src":"3995:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4040:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4051:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4036:3:89"},"nodeType":"YulFunctionCall","src":"4036:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"4056:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4029:6:89"},"nodeType":"YulFunctionCall","src":"4029:34:89"},"nodeType":"YulExpressionStatement","src":"4029:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3911:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3922:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3930:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3941:4:89","type":""}],"src":"3821:248:89"},{"body":{"nodeType":"YulBlock","src":"4248:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4265:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4276:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4258:6:89"},"nodeType":"YulFunctionCall","src":"4258:21:89"},"nodeType":"YulExpressionStatement","src":"4258:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4299:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4310:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4295:3:89"},"nodeType":"YulFunctionCall","src":"4295:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4315:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4288:6:89"},"nodeType":"YulFunctionCall","src":"4288:30:89"},"nodeType":"YulExpressionStatement","src":"4288:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4338:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4349:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4334:3:89"},"nodeType":"YulFunctionCall","src":"4334:18:89"},{"hexValue":"476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420","kind":"string","nodeType":"YulLiteral","src":"4354:34:89","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4327:6:89"},"nodeType":"YulFunctionCall","src":"4327:62:89"},"nodeType":"YulExpressionStatement","src":"4327:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4409:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4420:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4405:3:89"},"nodeType":"YulFunctionCall","src":"4405:18:89"},{"hexValue":"746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"4425:9:89","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4398:6:89"},"nodeType":"YulFunctionCall","src":"4398:37:89"},"nodeType":"YulExpressionStatement","src":"4398:37:89"},{"nodeType":"YulAssignment","src":"4444:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4456:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4467:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4452:3:89"},"nodeType":"YulFunctionCall","src":"4452:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4444:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4225:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4239:4:89","type":""}],"src":"4074:403:89"},{"body":{"nodeType":"YulBlock","src":"4656:297:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4673:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4684:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4666:6:89"},"nodeType":"YulFunctionCall","src":"4666:21:89"},"nodeType":"YulExpressionStatement","src":"4666:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4707:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4718:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4703:3:89"},"nodeType":"YulFunctionCall","src":"4703:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4723:2:89","type":"","value":"67"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4696:6:89"},"nodeType":"YulFunctionCall","src":"4696:30:89"},"nodeType":"YulExpressionStatement","src":"4696:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4746:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4757:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4742:3:89"},"nodeType":"YulFunctionCall","src":"4742:18:89"},{"hexValue":"476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f","kind":"string","nodeType":"YulLiteral","src":"4762:34:89","type":"","value":"GovernorVotesQuorumFraction: quo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4735:6:89"},"nodeType":"YulFunctionCall","src":"4735:62:89"},"nodeType":"YulExpressionStatement","src":"4735:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4817:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4828:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4813:3:89"},"nodeType":"YulFunctionCall","src":"4813:18:89"},{"hexValue":"72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e61","kind":"string","nodeType":"YulLiteral","src":"4833:34:89","type":"","value":"rumNumerator over quorumDenomina"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4806:6:89"},"nodeType":"YulFunctionCall","src":"4806:62:89"},"nodeType":"YulExpressionStatement","src":"4806:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4888:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4899:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4884:3:89"},"nodeType":"YulFunctionCall","src":"4884:19:89"},{"hexValue":"746f72","kind":"string","nodeType":"YulLiteral","src":"4905:5:89","type":"","value":"tor"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4877:6:89"},"nodeType":"YulFunctionCall","src":"4877:34:89"},"nodeType":"YulExpressionStatement","src":"4877:34:89"},{"nodeType":"YulAssignment","src":"4920:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4932:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4943:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4928:3:89"},"nodeType":"YulFunctionCall","src":"4928:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4920:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4633:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4647:4:89","type":""}],"src":"4482:471:89"},{"body":{"nodeType":"YulBlock","src":"5087:175:89","statements":[{"nodeType":"YulAssignment","src":"5097:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5109:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5120:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5105:3:89"},"nodeType":"YulFunctionCall","src":"5105:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5097:4:89"}]},{"nodeType":"YulVariableDeclaration","src":"5132:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5150:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5155:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5146:3:89"},"nodeType":"YulFunctionCall","src":"5146:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"5159:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5142:3:89"},"nodeType":"YulFunctionCall","src":"5142:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5136:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5177:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5192:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5200:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5188:3:89"},"nodeType":"YulFunctionCall","src":"5188:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5170:6:89"},"nodeType":"YulFunctionCall","src":"5170:34:89"},"nodeType":"YulExpressionStatement","src":"5170:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5224:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5235:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5220:3:89"},"nodeType":"YulFunctionCall","src":"5220:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5244:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5252:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5240:3:89"},"nodeType":"YulFunctionCall","src":"5240:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5213:6:89"},"nodeType":"YulFunctionCall","src":"5213:43:89"},"nodeType":"YulExpressionStatement","src":"5213:43:89"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5048:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5059:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5067:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5078:4:89","type":""}],"src":"4958:304:89"},{"body":{"nodeType":"YulBlock","src":"5441:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5458:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5469:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5451:6:89"},"nodeType":"YulFunctionCall","src":"5451:21:89"},"nodeType":"YulExpressionStatement","src":"5451:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5492:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5503:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5488:3:89"},"nodeType":"YulFunctionCall","src":"5488:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5508:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5481:6:89"},"nodeType":"YulFunctionCall","src":"5481:30:89"},"nodeType":"YulExpressionStatement","src":"5481:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5531:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5542:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5527:3:89"},"nodeType":"YulFunctionCall","src":"5527:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"5547:34:89","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5520:6:89"},"nodeType":"YulFunctionCall","src":"5520:62:89"},"nodeType":"YulExpressionStatement","src":"5520:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5602:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5613:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5598:3:89"},"nodeType":"YulFunctionCall","src":"5598:18:89"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"5618:9:89","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5591:6:89"},"nodeType":"YulFunctionCall","src":"5591:37:89"},"nodeType":"YulExpressionStatement","src":"5591:37:89"},{"nodeType":"YulAssignment","src":"5637:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5649:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5660:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5645:3:89"},"nodeType":"YulFunctionCall","src":"5645:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5637:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5418:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5432:4:89","type":""}],"src":"5267:403:89"},{"body":{"nodeType":"YulBlock","src":"5724:176:89","statements":[{"nodeType":"YulAssignment","src":"5734:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5746:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"5749:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5742:3:89"},"nodeType":"YulFunctionCall","src":"5742:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5734:4:89"}]},{"body":{"nodeType":"YulBlock","src":"5783:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5804:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5811:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5816:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5807:3:89"},"nodeType":"YulFunctionCall","src":"5807:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5797:6:89"},"nodeType":"YulFunctionCall","src":"5797:31:89"},"nodeType":"YulExpressionStatement","src":"5797:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5848:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5851:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5841:6:89"},"nodeType":"YulFunctionCall","src":"5841:15:89"},"nodeType":"YulExpressionStatement","src":"5841:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5876:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5879:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5869:6:89"},"nodeType":"YulFunctionCall","src":"5869:15:89"},"nodeType":"YulExpressionStatement","src":"5869:15:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5766:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"5772:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5763:2:89"},"nodeType":"YulFunctionCall","src":"5763:11:89"},"nodeType":"YulIf","src":"5760:134:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5706:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"5709:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5715:4:89","type":""}],"src":"5675:225:89"},{"body":{"nodeType":"YulBlock","src":"6079:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6096:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6107:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6089:6:89"},"nodeType":"YulFunctionCall","src":"6089:21:89"},"nodeType":"YulExpressionStatement","src":"6089:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6130:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6141:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6126:3:89"},"nodeType":"YulFunctionCall","src":"6126:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6146:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6119:6:89"},"nodeType":"YulFunctionCall","src":"6119:30:89"},"nodeType":"YulExpressionStatement","src":"6119:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6169:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6180:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6165:3:89"},"nodeType":"YulFunctionCall","src":"6165:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"6185:34:89","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6158:6:89"},"nodeType":"YulFunctionCall","src":"6158:62:89"},"nodeType":"YulExpressionStatement","src":"6158:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6240:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6251:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6236:3:89"},"nodeType":"YulFunctionCall","src":"6236:18:89"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"6256:8:89","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6229:6:89"},"nodeType":"YulFunctionCall","src":"6229:36:89"},"nodeType":"YulExpressionStatement","src":"6229:36:89"},{"nodeType":"YulAssignment","src":"6274:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6286:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6297:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6282:3:89"},"nodeType":"YulFunctionCall","src":"6282:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6274:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6056:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6070:4:89","type":""}],"src":"5905:402:89"},{"body":{"nodeType":"YulBlock","src":"6486:173:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6503:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6514:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6496:6:89"},"nodeType":"YulFunctionCall","src":"6496:21:89"},"nodeType":"YulExpressionStatement","src":"6496:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6537:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6548:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6533:3:89"},"nodeType":"YulFunctionCall","src":"6533:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:89","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6526:6:89"},"nodeType":"YulFunctionCall","src":"6526:30:89"},"nodeType":"YulExpressionStatement","src":"6526:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6576:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6587:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6572:3:89"},"nodeType":"YulFunctionCall","src":"6572:18:89"},{"hexValue":"436865636b706f696e743a20696e76616c6964206b6579","kind":"string","nodeType":"YulLiteral","src":"6592:25:89","type":"","value":"Checkpoint: invalid key"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6565:6:89"},"nodeType":"YulFunctionCall","src":"6565:53:89"},"nodeType":"YulExpressionStatement","src":"6565:53:89"},{"nodeType":"YulAssignment","src":"6627:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6639:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6650:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6635:3:89"},"nodeType":"YulFunctionCall","src":"6635:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6627:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6463:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6477:4:89","type":""}],"src":"6312:347:89"}]},"contents":"{\n    { }\n    function validator_revert_contract_IVotes(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IVotes_$9304t_contract$_TimelockController_$8159_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_contract_IVotes(value)\n        value0 := value\n        let value_1 := mload(add(headStart, 32))\n        validator_revert_contract_IVotes(value_1)\n        value1 := value_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function 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_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_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 67)\n        mstore(add(headStart, 64), \"GovernorVotesQuorumFraction: quo\")\n        mstore(add(headStart, 96), \"rumNumerator over quorumDenomina\")\n        mstore(add(headStart, 128), \"tor\")\n        tail := add(headStart, 160)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\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_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__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), \"Checkpoint: invalid key\")\n        tail := add(headStart, 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b50604051620045153803806200451583398101604081905262000035916200080f565b806004836201518062093a806000604051806040016040528060118152602001704d793353656320476f7665726e616e636560781b815250806200007e6200016f60201b60201c565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c0948501909152815191909501209052919091526101205260006200011b8282620008f3565b50620001299050836200018a565b6200013482620001cb565b6200013f8162000272565b5050506001600160a01b0316610140526200015a81620002b3565b5062000166816200042b565b505050620009e7565b6040805180820190915260018152603160f81b602082015290565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60008111620002315760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b6064811115620003385760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40162000228565b60006200034462000494565b90508015801590620003565750600954155b15620003d15760096000016040518060400160405280600063ffffffff1681526020016200038f84620004cc60201b620014a61760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b620003ec8260096200053b60201b620015131790919060201c565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60095460009015620004c557620004b760096200058e60201b620015491760201c565b6001600160e01b0316905090565b5060085490565b60006001600160e01b03821115620005375760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000228565b5090565b60008062000578846000016200055c43620005dc60201b620015871760201c565b6200057286620004cc60201b620014a61760201c565b62000643565b6001600160e01b03918216969116945092505050565b80546000908015620005d257620005ba83620005ac600184620009bf565b600091825260209091200190565b5464010000000090046001600160e01b0316620005d5565b60005b9392505050565b600063ffffffff821115620005375760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000228565b825460009081908015620007985760006200066587620005ac600185620009bf565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b031660208401529192509087161015620006e95760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b6579000000000000000000604482015260640162000228565b805163ffffffff8088169116036200073757846200070e88620005ac600186620009bf565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000787565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b602001519250839150620007ee9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a8152918220955192519093166401000000000291909316179201919091559050815b935093915050565b6001600160a01b03811681146200080c57600080fd5b50565b600080604083850312156200082357600080fd5b82516200083081620007f6565b60208401519092506200084381620007f6565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200087957607f821691505b6020821081036200089a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008ee57600081815260208120601f850160051c81016020861015620008c95750805b601f850160051c820191505b81811015620008ea57828155600101620008d5565b5050505b505050565b81516001600160401b038111156200090f576200090f6200084e565b620009278162000920845462000864565b84620008a0565b602080601f8311600181146200095f5760008415620009465750858301515b600019600386901b1c1916600185901b178555620008ea565b600085815260208120601f198616915b8281101562000990578886015182559484019460019091019084016200096f565b5085821015620009af5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115620009e157634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05160e051610100516101205161014051613ac562000a506000396000818161086901528181611fe101526121d5015260006124f4015260006125430152600061251e01526000612477015260006124a1015260006124cb0152613ac56000f3fe60806040526004361061024a5760003560e01c80637b3c71d311610139578063c28bc2fa116100b6578063ea0217cf1161007a578063ea0217cf146107ab578063eb9019d4146107cb578063ece40cc1146107eb578063f23a6e611461080b578063f8ce560a14610837578063fc0c546a1461085757600080fd5b8063c28bc2fa146106cc578063c59057e4146106df578063d33219b4146106ff578063dd4e2ba514610731578063deaaa7cc1461077757600080fd5b8063a890c910116100fd578063a890c9101461062b578063ab58fb8e1461064b578063b58131b01461066b578063bc197c8114610680578063c01f9e37146106ac57600080fd5b80637b3c71d3146105a25780637d5e81e2146105c257806397c3d334146105e25780639a802a6d146105f6578063a7713a701461061657600080fd5b80633932abb1116101c757806354fd4d501161018b57806354fd4d50146104f857806356781388146105225780635f398a141461054257806360c4247f1461056257806370b0f6601461058257600080fd5b80633932abb1146103f75780633bccf4fd1461040c5780633e4f49e61461042c5780634385963214610459578063544ffc9c146104a357600080fd5b8063150b7a021161020e578063150b7a021461032c578063160cbed7146103705780632656227d146103905780632d63f693146103a35780632fe3e261146103c357600080fd5b806301ffc9a71461027257806302a251a3146102a757806303420181146102ca57806306f3f9e6146102ea57806306fdde031461030a57600080fd5b3661026d573061025861088b565b6001600160a01b03161461026b57600080fd5b005b600080fd5b34801561027e57600080fd5b5061029261028d366004612c1a565b6108a4565b60405190151581526020015b60405180910390f35b3480156102b357600080fd5b506102bc6108b5565b60405190815260200161029e565b3480156102d657600080fd5b506102bc6102e5366004612d58565b6108c0565b3480156102f657600080fd5b5061026b610305366004612dfe565b6109b8565b34801561031657600080fd5b5061031f610a4b565b60405161029e9190612e5d565b34801561033857600080fd5b50610357610347366004612e85565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161029e565b34801561037c57600080fd5b506102bc61038b366004613061565b610add565b6102bc61039e366004613061565b610cdd565b3480156103af57600080fd5b506102bc6103be366004612dfe565b610dca565b3480156103cf57600080fd5b506102bc7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561040357600080fd5b506102bc610e01565b34801561041857600080fd5b506102bc6104273660046130f0565b610e0c565b34801561043857600080fd5b5061044c610447366004612dfe565b610e82565b60405161029e9190613154565b34801561046557600080fd5b5061029261047436600461317c565b60008281526007602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156104af57600080fd5b506104dd6104be366004612dfe565b6000908152600760205260409020805460018201546002909201549092565b6040805193845260208401929092529082015260600161029e565b34801561050457600080fd5b506040805180820190915260018152603160f81b602082015261031f565b34801561052e57600080fd5b506102bc61053d3660046131ac565b610e8d565b34801561054e57600080fd5b506102bc61055d3660046131d8565b610eb6565b34801561056e57600080fd5b506102bc61057d366004612dfe565b610f00565b34801561058e57600080fd5b5061026b61059d366004612dfe565b610f97565b3480156105ae57600080fd5b506102bc6105bd36600461325b565b61101e565b3480156105ce57600080fd5b506102bc6105dd3660046132b4565b611070565b3480156105ee57600080fd5b5060646102bc565b34801561060257600080fd5b506102bc610611366004613368565b611087565b34801561062257600080fd5b506102bc61109e565b34801561063757600080fd5b5061026b6106463660046133c0565b6110c8565b34801561065757600080fd5b506102bc610666366004612dfe565b61114f565b34801561067757600080fd5b506102bc6111e9565b34801561068c57600080fd5b5061035761069b3660046133dd565b63bc197c8160e01b95945050505050565b3480156106b857600080fd5b506102bc6106c7366004612dfe565b6111f4565b61026b6106da366004613470565b611223565b3480156106eb57600080fd5b506102bc6106fa366004613061565b611332565b34801561070b57600080fd5b50600a546001600160a01b03165b6040516001600160a01b03909116815260200161029e565b34801561073d57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e9082015261031f565b34801561078357600080fd5b506102bc7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156107b757600080fd5b5061026b6107c6366004612dfe565b61136c565b3480156107d757600080fd5b506102bc6107e63660046134b3565b6113f3565b3480156107f757600080fd5b5061026b610806366004612dfe565b611414565b34801561081757600080fd5b506103576108263660046134df565b63f23a6e6160e01b95945050505050565b34801561084357600080fd5b506102bc610852366004612dfe565b61149b565b34801561086357600080fd5b506107197f000000000000000000000000000000000000000000000000000000000000000081565b600061089f600a546001600160a01b031690565b905090565b60006108af826115ec565b92915050565b600061089f60055490565b60008061096461095c7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516108fc929190613547565b60405180910390208b80519060200120604051602001610941959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120611611565b86868661165f565b90506109aa8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d925061167d915050565b9a9950505050505050505050565b6109c061088b565b6001600160a01b0316336001600160a01b0316146109f95760405162461bcd60e51b81526004016109f090613557565b60405180910390fd5b30610a0261088b565b6001600160a01b031614610a3f5760008036604051610a22929190613547565b604051809103902090505b80610a3860026117e2565b03610a2d57505b610a4881611861565b50565b606060008054610a5a9061358e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a869061358e565b8015610ad35780601f10610aa857610100808354040283529160200191610ad3565b820191906000526020600020905b815481529060010190602001808311610ab657829003601f168201915b5050505050905090565b600080610aec86868686611332565b90506004610af982610e82565b6007811115610b0a57610b0a61313e565b14610b275760405162461bcd60e51b81526004016109f0906135c8565b600a546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190613609565b600a5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610bcf908a908a908a906000908b906004016136eb565b602060405180830381865afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190613609565b6000838152600b602052604080822092909255600a5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610c5b918b918b918b91908b908990600401613739565b600060405180830381600087803b158015610c7557600080fd5b505af1158015610c89573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610cbb91906137a7565b6040805192835260208301919091520160405180910390a15095945050505050565b600080610cec86868686611332565b90506000610cf982610e82565b90506004816007811115610d0f57610d0f61313e565b1480610d2c57506005816007811115610d2a57610d2a61313e565b145b610d485760405162461bcd60e51b81526004016109f0906135c8565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610da682888888886119ad565b610db38288888888611a4f565b610dc08288888888611a5c565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061089f60045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610e5a9061095c90608001610941565b9050610e7787828860405180602001604052806000815250611a95565b979650505050505050565b60006108af82611ab8565b600080339050610eae84828560405180602001604052806000815250611a95565b949350505050565b600080339050610e7787828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061167d915050565b600954600090808203610f17575050600854919050565b60006009610f266001846137ba565b81548110610f3657610f366137cd565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410610f8c57602001516001600160e01b03169392505050565b610eae600985611c02565b610f9f61088b565b6001600160a01b0316336001600160a01b031614610fcf5760405162461bcd60e51b81526004016109f090613557565b30610fd861088b565b6001600160a01b0316146110155760008036604051610ff8929190613547565b604051809103902090505b8061100e60026117e2565b0361100357505b610a4881611cb4565b60008033905061106686828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a9592505050565b9695505050505050565b600061107e85858585611cf5565b95945050505050565b6000611094848484611fb8565b90505b9392505050565b600954600090156110c1576110b36009611549565b6001600160e01b0316905090565b5060085490565b6110d061088b565b6001600160a01b0316336001600160a01b0316146111005760405162461bcd60e51b81526004016109f090613557565b3061110961088b565b6001600160a01b0316146111465760008036604051611129929190613547565b604051809103902090505b8061113f60026117e2565b0361113457505b610a488161204e565b600a546000828152600b602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa1580156111ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d09190613609565b9050806001146111e05780611097565b60009392505050565b600061089f60065490565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610df2565b61122b61088b565b6001600160a01b0316336001600160a01b03161461125b5760405162461bcd60e51b81526004016109f090613557565b3061126461088b565b6001600160a01b0316146112a15760008036604051611284929190613547565b604051809103902090505b8061129a60026117e2565b0361128f57505b600080856001600160a01b03168585856040516112bf929190613547565b60006040518083038185875af1925050503d80600081146112fc576040519150601f19603f3d011682016040523d82523d6000602084013e611301565b606091505b50915091506113298282604051806060016040528060288152602001613a68602891396120b7565b50505050505050565b60008484848460405160200161134b94939291906137e3565b60408051601f19818403018152919052805160209091012095945050505050565b61137461088b565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b81526004016109f090613557565b306113ad61088b565b6001600160a01b0316146113ea57600080366040516113cd929190613547565b604051809103902090505b806113e360026117e2565b036113d857505b610a48816120d0565b6000611097838361140f60408051602081019091526000815290565b611fb8565b61141c61088b565b6001600160a01b0316336001600160a01b03161461144c5760405162461bcd60e51b81526004016109f090613557565b3061145561088b565b6001600160a01b0316146114925760008036604051611475929190613547565b604051809103902090505b8061148b60026117e2565b0361148057505b610a4881612171565b60006108af826121b2565b60006001600160e01b0382111561150f5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016109f0565b5090565b6000806115318461152343611587565b61152c866114a6565b61225c565b6001600160e01b0391821693501690505b9250929050565b805460009080156111e057611571836115636001846137ba565b600091825260209091200190565b54600160201b90046001600160e01b0316611097565b600063ffffffff82111561150f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016109f0565b60006001600160e01b03198216636e665ced60e01b14806108af57506108af826123ff565b60006108af61161e61246a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061167087878787612591565b91509150610dc081612655565b600085815260016020819052604082209061169788610e82565b60078111156116a8576116a861313e565b146117015760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016109f0565b604080516020810190915281546001600160401b03169081905260009061172a90889086611fb8565b9050611739888888848861279f565b835160000361178e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611781949392919061382e565b60405180910390a2610e77565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516117cf959493929190613856565b60405180910390a2979650505050505050565b60006117fd8254600f81810b600160801b909204900b131590565b1561181b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60648111156118e45760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4016109f0565b60006118ee61109e565b905080158015906118ff5750600954155b1561196357604080518082019091526000815260099060208101611922846114a6565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b61196e600983611513565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b306119b661088b565b6001600160a01b031614611a485760005b8451811015611a4657306001600160a01b03168582815181106119ec576119ec6137cd565b60200260200101516001600160a01b031603611a3657611a36838281518110611a1757611a176137cd565b602002602001015180519060200120600261291990919063ffffffff16565b611a3f8161389c565b90506119c7565b505b5050505050565b611a488585858585612955565b30611a6561088b565b6001600160a01b031614611a4857600254600f81810b600160801b909204900b1315611a48576000600255611a48565b600061107e85858585611ab360408051602081019091526000815290565b61167d565b600080611ac4836129c9565b90506004816007811115611ada57611ada61313e565b14611ae55792915050565b6000838152600b602052604090205480611b00575092915050565b600a54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015611b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6d91906138b5565b15611b7c575060079392505050565b600a54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015611bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be991906138b5565b15611bf8575060059392505050565b5060029392505050565b6000438210611c535760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e656460448201526064016109f0565b6000611c5e83611587565b84549091506000611c7186848385612ad8565b90508015611c9e57611c88866115636001846137ba565b54600160201b90046001600160e01b0316611ca1565b60005b6001600160e01b03169695505050505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b6000611cff6111e9565b611d0e336107e66001436137ba565b1015611d765760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b60648201526084016109f0565b6000611d8b8686868680519060200120611332565b90508451865114611dae5760405162461bcd60e51b81526004016109f0906138d7565b8351865114611dcf5760405162461bcd60e51b81526004016109f0906138d7565b6000865111611e205760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016109f0565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215611ea05760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016109f0565b6000611eb2611ead610e01565b612b36565b611ebb43612b36565b611ec59190613918565b90506000611ed4611ead6108b5565b611ede9083613918565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611f5657611f56612c9b565b604051908082528060200260200182016040528015611f8957816020015b6060815260200190600190039081611f745790505b508c88888e604051611fa39998979695949392919061393f565b60405180910390a15091979650505050505050565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa15801561202a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110949190613609565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b606083156120c6575081611097565b6110978383612b9e565b600081116121305760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016109f0565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b600060646121bf83610f00565b604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190613609565b6122529190613a2e565b6108af9190613a45565b8254600090819080156123a257600061227a876115636001856137ba565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156122fb5760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b657900000000000000000060448201526064016109f0565b805163ffffffff808816911603612343578461231c886115636001866137ba565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055612392565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506123f79050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b0291909316179201919091559050815b935093915050565b60006001600160e01b0319821663bf26d89760e01b148061243057506001600160e01b031982166379dd796f60e01b145b8061244b57506001600160e01b03198216630271189760e51b145b806108af57506301ffc9a760e01b6001600160e01b03198316146108af565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156124c357507f000000000000000000000000000000000000000000000000000000000000000046145b156124ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156125c8575060009050600361264c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561261c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126455760006001925092505061264c565b9150600090505b94509492505050565b60008160048111156126695761266961313e565b036126715750565b60018160048111156126855761268561313e565b036126d25760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109f0565b60028160048111156126e6576126e661313e565b036127335760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f0565b60038160048111156127475761274761313e565b03610a485760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f0565b60008581526007602090815260408083206001600160a01b0388168452600381019092529091205460ff16156128275760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016109f0565b6001600160a01b03851660009081526003820160205260409020805460ff1916600117905560ff8416612873578281600001600082825461286891906137a7565b90915550611a469050565b60001960ff851601612893578281600101600082825461286891906137a7565b60011960ff8516016128b3578281600201600082825461286891906137a7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016109f0565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b600a5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906129909088908890889060009089906004016136eb565b6000604051808303818588803b1580156129a957600080fd5b505af11580156129bd573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156129ed5750600792915050565b6002810154610100900460ff1615612a085750600292915050565b6000612a1384610dca565b905080600003612a655760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016109f0565b438110612a76575060009392505050565b6000612a81856111f4565b9050438110612a9557506001949350505050565b612a9e85612bc8565b8015612abd575060008581526007602052604090208054600190910154115b15612acd57506004949350505050565b506003949350505050565b60005b81831015612b2e576000612aef8484612bff565b60008781526020902090915063ffffffff86169082015463ffffffff161115612b1a57809250612b28565b612b258160016137a7565b93505b50612adb565b509392505050565b60006001600160401b0382111561150f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016109f0565b815115612bae5781518083602001fd5b8060405162461bcd60e51b81526004016109f09190612e5d565b600081815260076020526040812060028101546001820154612bea91906137a7565b612bf661085285610dca565b11159392505050565b6000612c0e6002848418613a45565b611097908484166137a7565b600060208284031215612c2c57600080fd5b81356001600160e01b03198116811461109757600080fd5b803560ff81168114612c5557600080fd5b919050565b60008083601f840112612c6c57600080fd5b5081356001600160401b03811115612c8357600080fd5b60208301915083602082850101111561154257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612cd957612cd9612c9b565b604052919050565b60006001600160401b03831115612cfa57612cfa612c9b565b612d0d601f8401601f1916602001612cb1565b9050828152838383011115612d2157600080fd5b828260208301376000602084830101529392505050565b600082601f830112612d4957600080fd5b61109783833560208501612ce1565b60008060008060008060008060e0898b031215612d7457600080fd5b88359750612d8460208a01612c44565b965060408901356001600160401b0380821115612da057600080fd5b612dac8c838d01612c5a565b909850965060608b0135915080821115612dc557600080fd5b50612dd28b828c01612d38565b945050612de160808a01612c44565b925060a0890135915060c089013590509295985092959890939650565b600060208284031215612e1057600080fd5b5035919050565b6000815180845260005b81811015612e3d57602081850181015186830182015201612e21565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006110976020830184612e17565b6001600160a01b0381168114610a4857600080fd5b60008060008060808587031215612e9b57600080fd5b8435612ea681612e70565b93506020850135612eb681612e70565b92506040850135915060608501356001600160401b03811115612ed857600080fd5b612ee487828801612d38565b91505092959194509250565b60006001600160401b03821115612f0957612f09612c9b565b5060051b60200190565b600082601f830112612f2457600080fd5b81356020612f39612f3483612ef0565b612cb1565b82815260059290921b84018101918181019086841115612f5857600080fd5b8286015b84811015612f7c578035612f6f81612e70565b8352918301918301612f5c565b509695505050505050565b600082601f830112612f9857600080fd5b81356020612fa8612f3483612ef0565b82815260059290921b84018101918181019086841115612fc757600080fd5b8286015b84811015612f7c5780358352918301918301612fcb565b600082601f830112612ff357600080fd5b81356020613003612f3483612ef0565b82815260059290921b8401810191818101908684111561302257600080fd5b8286015b84811015612f7c5780356001600160401b038111156130455760008081fd5b6130538986838b0101612d38565b845250918301918301613026565b6000806000806080858703121561307757600080fd5b84356001600160401b038082111561308e57600080fd5b61309a88838901612f13565b955060208701359150808211156130b057600080fd5b6130bc88838901612f87565b945060408701359150808211156130d257600080fd5b506130df87828801612fe2565b949793965093946060013593505050565b600080600080600060a0868803121561310857600080fd5b8535945061311860208701612c44565b935061312660408701612c44565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061317657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561318f57600080fd5b8235915060208301356131a181612e70565b809150509250929050565b600080604083850312156131bf57600080fd5b823591506131cf60208401612c44565b90509250929050565b6000806000806000608086880312156131f057600080fd5b8535945061320060208701612c44565b935060408601356001600160401b038082111561321c57600080fd5b61322889838a01612c5a565b9095509350606088013591508082111561324157600080fd5b5061324e88828901612d38565b9150509295509295909350565b6000806000806060858703121561327157600080fd5b8435935061328160208601612c44565b925060408501356001600160401b0381111561329c57600080fd5b6132a887828801612c5a565b95989497509550505050565b600080600080608085870312156132ca57600080fd5b84356001600160401b03808211156132e157600080fd5b6132ed88838901612f13565b9550602087013591508082111561330357600080fd5b61330f88838901612f87565b9450604087013591508082111561332557600080fd5b61333188838901612fe2565b9350606087013591508082111561334757600080fd5b508501601f8101871361335957600080fd5b612ee487823560208401612ce1565b60008060006060848603121561337d57600080fd5b833561338881612e70565b92506020840135915060408401356001600160401b038111156133aa57600080fd5b6133b686828701612d38565b9150509250925092565b6000602082840312156133d257600080fd5b813561109781612e70565b600080600080600060a086880312156133f557600080fd5b853561340081612e70565b9450602086013561341081612e70565b935060408601356001600160401b038082111561342c57600080fd5b61343889838a01612f87565b9450606088013591508082111561344e57600080fd5b61345a89838a01612f87565b9350608088013591508082111561324157600080fd5b6000806000806060858703121561348657600080fd5b843561349181612e70565b93506020850135925060408501356001600160401b0381111561329c57600080fd5b600080604083850312156134c657600080fd5b82356134d181612e70565b946020939093013593505050565b600080600080600060a086880312156134f757600080fd5b853561350281612e70565b9450602086013561351281612e70565b9350604086013592506060860135915060808601356001600160401b0381111561353b57600080fd5b61324e88828901612d38565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806135a257607f821691505b6020821081036135c257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561361b57600080fd5b5051919050565b600081518084526020808501945080840160005b8381101561365b5781516001600160a01b031687529582019590820190600101613636565b509495945050505050565b600081518084526020808501945080840160005b8381101561365b5781518752958201959082019060010161367a565b600081518084526020808501808196508360051b8101915082860160005b858110156136de5782840389526136cc848351612e17565b988501989350908401906001016136b4565b5091979650505050505050565b60a0815260006136fe60a0830188613622565b82810360208401526137108188613666565b905082810360408401526137248187613696565b60608401959095525050608001529392505050565b60c08152600061374c60c0830189613622565b828103602084015261375e8189613666565b905082810360408401526137728188613696565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108af576108af613791565b818103818111156108af576108af613791565b634e487b7160e01b600052603260045260246000fd5b6080815260006137f66080830187613622565b82810360208401526138088187613666565b9050828103604084015261381c8186613696565b91505082606083015295945050505050565b84815260ff841660208201528260408201526080606082015260006110666080830184612e17565b85815260ff8516602082015283604082015260a06060820152600061387e60a0830185612e17565b82810360808401526138908185612e17565b98975050505050505050565b6000600182016138ae576138ae613791565b5060010190565b6000602082840312156138c757600080fd5b8151801515811461109757600080fd5b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b6001600160401b0381811683821601908082111561393857613938613791565b5092915050565b60006101208b8352602060018060a01b038c16818501528160408501526139688285018c613622565b9150838203606085015261397c828b613666565b915083820360808501528189518084528284019150828160051b850101838c0160005b838110156139cd57601f198784030185526139bb838351612e17565b9486019492509085019060010161399f565b505086810360a08801526139e1818c613696565b9450505050506139fc60c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152613a1e8185612e17565b9c9b505050505050505050505050565b80820281158282048414176108af576108af613791565b600082613a6257634e487b7160e01b600052601260045260246000fd5b50049056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a2646970667358221220b7868223f336aeceeb5eda71a20b3db6dc3209d9f5903099c982dcba6dbaa71564736f6c63430008110033","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4515 CODESIZE SUB DUP1 PUSH3 0x4515 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x80F JUMP JUMPDEST DUP1 PUSH1 0x4 DUP4 PUSH3 0x15180 PUSH3 0x93A80 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x11 DUP2 MSTORE PUSH1 0x20 ADD PUSH17 0x4D793353656320476F7665726E616E6365 PUSH1 0x78 SHL DUP2 MSTORE POP DUP1 PUSH3 0x7E PUSH3 0x16F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 DUP2 MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 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 SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP1 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS DUP5 DUP4 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 SWAP5 DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP6 ADD KECCAK256 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x120 MSTORE PUSH1 0x0 PUSH3 0x11B DUP3 DUP3 PUSH3 0x8F3 JUMP JUMPDEST POP PUSH3 0x129 SWAP1 POP DUP4 PUSH3 0x18A JUMP JUMPDEST PUSH3 0x134 DUP3 PUSH3 0x1CB JUMP JUMPDEST PUSH3 0x13F DUP2 PUSH3 0x272 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x140 MSTORE PUSH3 0x15A DUP2 PUSH3 0x2B3 JUMP JUMPDEST POP PUSH3 0x166 DUP2 PUSH3 0x42B JUMP JUMPDEST POP POP POP PUSH3 0x9E7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH3 0x231 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x64 DUP2 GT ISZERO PUSH3 0x338 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x43 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74657351756F72756D4672616374696F6E3A2071756F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72756D4E756D657261746F72206F7665722071756F72756D44656E6F6D696E61 PUSH1 0x64 DUP3 ADD MSTORE PUSH3 0x3A37B9 PUSH1 0xE9 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH3 0x228 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x344 PUSH3 0x494 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH3 0x356 JUMPI POP PUSH1 0x9 SLOAD ISZERO JUMPDEST ISZERO PUSH3 0x3D1 JUMPI PUSH1 0x9 PUSH1 0x0 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x38F DUP5 PUSH3 0x4CC PUSH1 0x20 SHL PUSH3 0x14A6 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 PUSH3 0x3EC DUP3 PUSH1 0x9 PUSH3 0x53B PUSH1 0x20 SHL PUSH3 0x1513 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x553476BF02EF2726E8CE5CED78D63E26E602E4A2257B1F559418E24B4633997 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 ISZERO PUSH3 0x4C5 JUMPI PUSH3 0x4B7 PUSH1 0x9 PUSH3 0x58E PUSH1 0x20 SHL PUSH3 0x1549 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH3 0x537 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 0x228 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH3 0x578 DUP5 PUSH1 0x0 ADD PUSH3 0x55C NUMBER PUSH3 0x5DC PUSH1 0x20 SHL PUSH3 0x1587 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x572 DUP7 PUSH3 0x4CC PUSH1 0x20 SHL PUSH3 0x14A6 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x643 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP7 SWAP2 AND SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO PUSH3 0x5D2 JUMPI PUSH3 0x5BA DUP4 PUSH3 0x5AC PUSH1 0x1 DUP5 PUSH3 0x9BF 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 PUSH3 0x5D5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH3 0x537 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 0x228 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP1 ISZERO PUSH3 0x798 JUMPI PUSH1 0x0 PUSH3 0x665 DUP8 PUSH3 0x5AC PUSH1 0x1 DUP6 PUSH3 0x9BF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP1 DUP3 AND DUP1 DUP5 MSTORE PUSH5 0x100000000 SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP5 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 AND LT ISZERO PUSH3 0x6E9 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 0x436865636B706F696E743A20696E76616C6964206B6579000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x228 JUMP JUMPDEST DUP1 MLOAD PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP2 AND SUB PUSH3 0x737 JUMPI DUP5 PUSH3 0x70E DUP9 PUSH3 0x5AC PUSH1 0x1 DUP7 PUSH3 0x9BF 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 0x787 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP9 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP9 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP12 SLOAD PUSH1 0x1 DUP2 ADD DUP14 SSTORE PUSH1 0x0 DUP14 DUP2 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP5 MLOAD SWAP2 MLOAD SWAP1 SWAP3 AND PUSH5 0x100000000 MUL SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 ADD SSTORE JUMPDEST PUSH1 0x20 ADD MLOAD SWAP3 POP DUP4 SWAP2 POP PUSH3 0x7EE SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP6 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP6 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP9 SLOAD PUSH1 0x1 DUP2 ADD DUP11 SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE SWAP2 DUP3 KECCAK256 SWAP6 MLOAD SWAP3 MLOAD SWAP1 SWAP4 AND PUSH5 0x100000000 MUL SWAP2 SWAP1 SWAP4 AND OR SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP DUP2 JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x80C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH3 0x830 DUP2 PUSH3 0x7F6 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x843 DUP2 PUSH3 0x7F6 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 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 0x879 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x89A 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 0x8EE 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 0x8C9 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x8EA JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x8D5 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 0x90F JUMPI PUSH3 0x90F PUSH3 0x84E JUMP JUMPDEST PUSH3 0x927 DUP2 PUSH3 0x920 DUP5 SLOAD PUSH3 0x864 JUMP JUMPDEST DUP5 PUSH3 0x8A0 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x95F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x946 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 0x8EA JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x990 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x96F JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x9AF 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 DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH3 0x9E1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x3AC5 PUSH3 0xA50 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x869 ADD MSTORE DUP2 DUP2 PUSH2 0x1FE1 ADD MSTORE PUSH2 0x21D5 ADD MSTORE PUSH1 0x0 PUSH2 0x24F4 ADD MSTORE PUSH1 0x0 PUSH2 0x2543 ADD MSTORE PUSH1 0x0 PUSH2 0x251E ADD MSTORE PUSH1 0x0 PUSH2 0x2477 ADD MSTORE PUSH1 0x0 PUSH2 0x24A1 ADD MSTORE PUSH1 0x0 PUSH2 0x24CB ADD MSTORE PUSH2 0x3AC5 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x24A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B3C71D3 GT PUSH2 0x139 JUMPI DUP1 PUSH4 0xC28BC2FA GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xEA0217CF GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x7CB JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x80B JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x837 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x6CC JUMPI DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x6DF JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x6FF JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA890C910 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xA890C910 EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0xAB58FB8E EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x66B JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x680 JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0x97C3D334 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xA7713A70 EQ PUSH2 0x616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x54FD4D50 GT PUSH2 0x18B JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x522 JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0x60C4247F EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x3F7 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x150B7A02 GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x160CBED7 EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x390 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x6F3F9E6 EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x26D JUMPI ADDRESS PUSH2 0x258 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1A JUMP JUMPDEST PUSH2 0x8A4 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 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x2E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D58 JUMP JUMPDEST PUSH2 0x8C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x305 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31F PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2E5D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x347 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E85 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0xADD JUMP JUMPDEST PUSH2 0x2BC PUSH2 0x39E CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x3BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0xE01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x30F0 JUMP JUMPDEST PUSH2 0xE0C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x3154 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x317C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x31F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x53D CALLDATASIZE PUSH1 0x4 PUSH2 0x31AC JUMP JUMPDEST PUSH2 0xE8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x55D CALLDATASIZE PUSH1 0x4 PUSH2 0x31D8 JUMP JUMPDEST PUSH2 0xEB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x57D CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xF00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xF97 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x5BD CALLDATASIZE PUSH1 0x4 PUSH2 0x325B JUMP JUMPDEST PUSH2 0x101E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x5DD CALLDATASIZE PUSH1 0x4 PUSH2 0x32B4 JUMP JUMPDEST PUSH2 0x1070 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x64 PUSH2 0x2BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x611 CALLDATASIZE PUSH1 0x4 PUSH2 0x3368 JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x109E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x33C0 JUMP JUMPDEST PUSH2 0x10C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x666 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x114F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x11E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x33DD JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x6C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x11F4 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x6DA CALLDATASIZE PUSH1 0x4 PUSH2 0x3470 JUMP JUMPDEST PUSH2 0x1223 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0x1332 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x31F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x7C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x136C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x7E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B3 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x806 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x1414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x826 CALLDATASIZE PUSH1 0x4 PUSH2 0x34DF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x852 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x149B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x719 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x15EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x964 PUSH2 0x95C PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x8FC SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x941 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1611 JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x165F JUMP JUMPDEST SWAP1 POP PUSH2 0x9AA DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x167D SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9C0 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST ADDRESS PUSH2 0xA02 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xA22 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xA38 PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0xA2D JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x1861 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xA5A SWAP1 PUSH2 0x358E 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 0xA86 SWAP1 PUSH2 0x358E JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAD3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAA8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAD3 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 0xAB6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAEC DUP7 DUP7 DUP7 DUP7 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH2 0xAF9 DUP3 PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xB0A JUMPI PUSH2 0xB0A PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0xB27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x35C8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x793D0649 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF27A0C92 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB95 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xB1C5F427 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB1C5F427 SWAP1 PUSH2 0xBCF SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x36EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC10 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xA SLOAD SWAP2 MLOAD PUSH4 0x8F2A0BB PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8F2A0BB0 SWAP2 PUSH2 0xC5B SWAP2 DUP12 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3739 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP3 DUP3 TIMESTAMP PUSH2 0xCBB SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCEC DUP7 DUP7 DUP7 DUP7 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCF9 DUP3 PUSH2 0xE82 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xD0F JUMPI PUSH2 0xD0F PUSH2 0x313E JUMP JUMPDEST EQ DUP1 PUSH2 0xD2C JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD2A PUSH2 0x313E JUMP JUMPDEST EQ JUMPDEST PUSH2 0xD48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x35C8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xDA6 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xDB3 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0xDC0 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1A5C JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xE5A SWAP1 PUSH2 0x95C SWAP1 PUSH1 0x80 ADD PUSH2 0x941 JUMP JUMPDEST SWAP1 POP PUSH2 0xE77 DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1A95 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xEAE DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1A95 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xE77 DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x167D SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP1 DUP3 SUB PUSH2 0xF17 JUMPI POP POP PUSH1 0x8 SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH2 0xF26 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF36 JUMPI PUSH2 0xF36 PUSH2 0x37CD 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 DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 POP DUP5 LT PUSH2 0xF8C JUMPI PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEAE PUSH1 0x9 DUP6 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0xF9F PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0xFD8 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1015 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xFF8 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x100E PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1003 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x1CB4 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1066 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A95 SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107E DUP6 DUP6 DUP6 DUP6 PUSH2 0x1CF5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1094 DUP5 DUP5 DUP5 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x10C1 JUMPI PUSH2 0x10B3 PUSH1 0x9 PUSH2 0x1549 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x10D0 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1109 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1146 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1129 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x113F PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1134 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x204E JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xD45C4435 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD45C4435 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11AC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11D0 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 EQ PUSH2 0x11E0 JUMPI DUP1 PUSH2 0x1097 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x122B PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x125B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1264 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12A1 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1284 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x129A PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x128F JUMPI POP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x12BF SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x12FC 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 0x1301 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1329 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A68 PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x20B7 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x134B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x37E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1374 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x13AD PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x13CD SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x13E3 PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x13D8 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1097 DUP4 DUP4 PUSH2 0x140F PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1FB8 JUMP JUMPDEST PUSH2 0x141C PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x144C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1455 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1492 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1475 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x148B PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1480 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x2171 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x21B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1531 DUP5 PUSH2 0x1523 NUMBER PUSH2 0x1587 JUMP JUMPDEST PUSH2 0x152C DUP7 PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO PUSH2 0x11E0 JUMPI PUSH2 0x1571 DUP4 PUSH2 0x1563 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SWAP1 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1097 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x6E665CED PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8AF JUMPI POP PUSH2 0x8AF DUP3 PUSH2 0x23FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF PUSH2 0x161E PUSH2 0x246A JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1670 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2591 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xDC0 DUP2 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x1697 DUP9 PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x16A8 JUMPI PUSH2 0x16A8 PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0x1701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x172A SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH2 0x1739 DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x279F JUMP JUMPDEST DUP4 MLOAD PUSH1 0x0 SUB PUSH2 0x178E JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x1781 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x382E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xE77 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x17CF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP4 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x64 DUP2 GT ISZERO PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x43 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74657351756F72756D4672616374696F6E3A2071756F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72756D4E756D657261746F72206F7665722071756F72756D44656E6F6D696E61 PUSH1 0x64 DUP3 ADD MSTORE PUSH3 0x3A37B9 PUSH1 0xE9 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18EE PUSH2 0x109E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x18FF JUMPI POP PUSH1 0x9 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x1963 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x9 SWAP1 PUSH1 0x20 DUP2 ADD PUSH2 0x1922 DUP5 PUSH2 0x14A6 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 PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST PUSH2 0x196E PUSH1 0x9 DUP4 PUSH2 0x1513 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x553476BF02EF2726E8CE5CED78D63E26E602E4A2257B1F559418E24B4633997 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST ADDRESS PUSH2 0x19B6 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A48 JUMPI PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1A46 JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19EC JUMPI PUSH2 0x19EC PUSH2 0x37CD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1A36 JUMPI PUSH2 0x1A36 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A17 JUMPI PUSH2 0x1A17 PUSH2 0x37CD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x2919 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A3F DUP2 PUSH2 0x389C JUMP JUMPDEST SWAP1 POP PUSH2 0x19C7 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A48 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2955 JUMP JUMPDEST ADDRESS PUSH2 0x1A65 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A48 JUMPI PUSH1 0x2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 PUSH1 0x2 SSTORE PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107E DUP6 DUP6 DUP6 DUP6 PUSH2 0x1AB3 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x167D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1AC4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1ADA JUMPI PUSH2 0x1ADA PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0x1AE5 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x1B00 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2AB0F529 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2AB0F529 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B49 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B6D SWAP2 SWAP1 PUSH2 0x38B5 JUMP JUMPDEST ISZERO PUSH2 0x1B7C JUMPI POP PUSH1 0x7 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2C258A9F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x584B153E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE9 SWAP2 SWAP1 PUSH2 0x38B5 JUMP JUMPDEST ISZERO PUSH2 0x1BF8 JUMPI POP PUSH1 0x5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP PUSH1 0x2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x1C53 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B706F696E74733A20626C6F636B206E6F7420796574206D696E6564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5E DUP4 PUSH2 0x1587 JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x1C71 DUP7 DUP5 DUP4 DUP6 PUSH2 0x2AD8 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1C9E JUMPI PUSH2 0x1C88 DUP7 PUSH2 0x1563 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1CA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CFF PUSH2 0x11E9 JUMP JUMPDEST PUSH2 0x1D0E CALLER PUSH2 0x7E6 PUSH1 0x1 NUMBER PUSH2 0x37BA JUMP JUMPDEST LT ISZERO PUSH2 0x1D76 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D8B DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0x1DAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x38D7 JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0x1DCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x38D7 JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0x1E20 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 0x476F7665726E6F723A20656D7074792070726F706F73616C0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0x1EA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB2 PUSH2 0x1EAD PUSH2 0xE01 JUMP JUMPDEST PUSH2 0x2B36 JUMP JUMPDEST PUSH2 0x1EBB NUMBER PUSH2 0x2B36 JUMP JUMPDEST PUSH2 0x1EC5 SWAP2 SWAP1 PUSH2 0x3918 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1ED4 PUSH2 0x1EAD PUSH2 0x8B5 JUMP JUMPDEST PUSH2 0x1EDE SWAP1 DUP4 PUSH2 0x3918 JUMP JUMPDEST DUP4 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND OR DUP5 SSTORE SWAP1 POP PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F56 JUMPI PUSH2 0x1F56 PUSH2 0x2C9B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F89 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1F74 JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1FA3 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x393F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x202A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1094 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x20C6 JUMPI POP DUP2 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0x1097 DUP4 DUP4 PUSH2 0x2B9E JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x64 PUSH2 0x21BF DUP4 PUSH2 0xF00 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2394E7A3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8E539E8C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2224 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2248 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH2 0x2252 SWAP2 SWAP1 PUSH2 0x3A2E JUMP JUMPDEST PUSH2 0x8AF SWAP2 SWAP1 PUSH2 0x3A45 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP1 ISZERO PUSH2 0x23A2 JUMPI PUSH1 0x0 PUSH2 0x227A DUP8 PUSH2 0x1563 PUSH1 0x1 DUP6 PUSH2 0x37BA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP1 DUP3 AND DUP1 DUP5 MSTORE PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP5 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 AND LT ISZERO PUSH2 0x22FB 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 0x436865636B706F696E743A20696E76616C6964206B6579000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP1 MLOAD PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP2 AND SUB PUSH2 0x2343 JUMPI DUP5 PUSH2 0x231C DUP9 PUSH2 0x1563 PUSH1 0x1 DUP7 PUSH2 0x37BA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2392 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP9 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP9 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP12 SLOAD PUSH1 0x1 DUP2 ADD DUP14 SSTORE PUSH1 0x0 DUP14 DUP2 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP5 MLOAD SWAP2 MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 ADD SSTORE JUMPDEST PUSH1 0x20 ADD MLOAD SWAP3 POP DUP4 SWAP2 POP PUSH2 0x23F7 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP6 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP6 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP9 SLOAD PUSH1 0x1 DUP2 ADD DUP11 SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE SWAP2 DUP3 KECCAK256 SWAP6 MLOAD SWAP3 MLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP2 SWAP1 SWAP4 AND OR SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP DUP2 JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2430 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x244B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x8AF JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x24C3 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x24ED JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x25C8 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x264C 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 0x261C 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 0x2645 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x264C 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 0x2669 JUMPI PUSH2 0x2669 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x2671 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2685 JUMPI PUSH2 0x2685 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x26D2 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 0x9F0 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x26E6 JUMPI PUSH2 0x26E6 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x2733 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 0x9F0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2747 JUMPI PUSH2 0x2747 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0xA48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF DUP5 AND PUSH2 0x2873 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1A46 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP6 AND ADD PUSH2 0x2893 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x1 NOT PUSH1 0xFF DUP6 AND ADD PUSH2 0x28B3 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP4 SWAP1 SWAP2 ADD AND MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE38335E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE38335E5 SWAP1 CALLVALUE SWAP1 PUSH2 0x2990 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x36EB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x29BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x29ED JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2A08 JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP5 PUSH2 0xDCA JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x2A65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0x2A76 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A81 DUP6 PUSH2 0x11F4 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0x2A95 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2A9E DUP6 PUSH2 0x2BC8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2ABD JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x2ACD JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2B2E JUMPI PUSH1 0x0 PUSH2 0x2AEF DUP5 DUP5 PUSH2 0x2BFF JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH4 0xFFFFFFFF DUP7 AND SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x2B1A JUMPI DUP1 SWAP3 POP PUSH2 0x2B28 JUMP JUMPDEST PUSH2 0x2B25 DUP2 PUSH1 0x1 PUSH2 0x37A7 JUMP JUMPDEST SWAP4 POP JUMPDEST POP PUSH2 0x2ADB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x2BAE JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP2 SWAP1 PUSH2 0x2E5D JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x2BEA SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH2 0x2BF6 PUSH2 0x852 DUP6 PUSH2 0xDCA JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0E PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x3A45 JUMP JUMPDEST PUSH2 0x1097 SWAP1 DUP5 DUP5 AND PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2C6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1542 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 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2CD9 JUMPI PUSH2 0x2CD9 PUSH2 0x2C9B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x2CFA JUMPI PUSH2 0x2CFA PUSH2 0x2C9B JUMP JUMPDEST PUSH2 0x2D0D PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2CB1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D21 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 0x2D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1097 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2CE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x2D84 PUSH1 0x20 DUP11 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DAC DUP13 DUP4 DUP14 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD2 DUP12 DUP3 DUP13 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP5 POP POP PUSH2 0x2DE1 PUSH1 0x80 DUP11 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E3D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2E21 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1097 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2EA6 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2EB6 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2ED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EE4 DUP8 DUP3 DUP9 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2F09 JUMPI PUSH2 0x2F09 PUSH2 0x2C9B JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2F39 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 JUMP JUMPDEST PUSH2 0x2CB1 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 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD PUSH2 0x2F6F DUP2 PUSH2 0x2E70 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F5C JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2FA8 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 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 0x2FC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FCB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x3003 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 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 0x3022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3053 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2D38 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3026 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3077 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x308E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x309A DUP9 DUP4 DUP10 ADD PUSH2 0x2F13 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30BC DUP9 DUP4 DUP10 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30DF DUP8 DUP3 DUP9 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3118 PUSH1 0x20 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP4 POP PUSH2 0x3126 PUSH1 0x40 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST 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 0x3176 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 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x31A1 DUP2 PUSH2 0x2E70 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x31CF PUSH1 0x20 DUP5 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x31F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3200 PUSH1 0x20 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x321C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3228 DUP10 DUP4 DUP11 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x324E DUP9 DUP3 DUP10 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x3281 PUSH1 0x20 DUP7 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x329C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x32A8 DUP8 DUP3 DUP9 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x32CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x32E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x32ED DUP9 DUP4 DUP10 ADD PUSH2 0x2F13 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x330F DUP9 DUP4 DUP10 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3331 DUP9 DUP4 DUP10 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x3359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EE4 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2CE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x337D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3388 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x33AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33B6 DUP7 DUP3 DUP8 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1097 DUP2 PUSH2 0x2E70 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x33F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3400 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3410 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x342C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3438 DUP10 DUP4 DUP11 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x344E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x345A DUP10 DUP4 DUP11 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3491 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x329C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x34C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x34D1 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x34F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3502 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3512 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324E DUP9 DUP3 DUP10 ADD PUSH2 0x2D38 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A206F6E6C79476F7665726E616E63650000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x35A2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x35C2 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x361B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 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 0x365B 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 0x3636 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365B JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x367A 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 0x36DE JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x36CC DUP5 DUP4 MLOAD PUSH2 0x2E17 JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36B4 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x36FE PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3710 DUP2 DUP9 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3724 DUP2 DUP8 PUSH2 0x3696 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x374C PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x375E DUP2 DUP10 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3772 DUP2 DUP9 PUSH2 0x3696 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x37F6 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3808 DUP2 DUP8 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x381C DUP2 DUP7 PUSH2 0x3696 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1066 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x387E PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2E17 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3890 DUP2 DUP6 PUSH2 0x2E17 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x38AE JUMPI PUSH2 0x38AE PUSH2 0x3791 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH2 0x3938 PUSH2 0x3791 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x3968 DUP3 DUP6 ADD DUP13 PUSH2 0x3622 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x397C DUP3 DUP12 PUSH2 0x3666 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x39CD JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x39BB DUP4 DUP4 MLOAD PUSH2 0x2E17 JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x399F JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x39E1 DUP2 DUP13 PUSH2 0x3696 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x39FC PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x3A1E DUP2 DUP6 PUSH2 0x2E17 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3A62 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F723A2072656C6179207265 PUSH23 0x657274656420776974686F7574206D657373616765A264 PUSH10 0x70667358221220B78682 0x23 RETURN CALLDATASIZE 0xAE 0xCE 0xEB 0x5E 0xDA PUSH18 0xA20B3DB6DC3209D9F5903099C982DCBA6DBA 0xA7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"567:2694:78:-:0;;;746:370;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1099:9;413:1:74;1001:6:78;246::74;304;367:1;3441:88:20;;;;;;;;;;;;;-1:-1:-1;;;3441:88:20;;;3481:5;3488:9;:7;;;:9;;:::i;:::-;2550:22:52;;;;;;;2606:25;;;;;;;;;2787;;;;2822:31;;;;2882:13;2863:32;;;;-1:-1:-1;3642:73:52;;2660:117;3642:73;;;3586:25:89;;;3627:18;;;3620:34;;;;-1:-1:-1;3670:18:89;;3663:34;;;;3713:18;;;;3706:34;;;;3709:4:52;3756:19:89;;;3749:61;;;3642:73:52;;;;;;;;;;3558:19:89;;;;3642:73:52;;;3632:84;;;;;;;2905:85;;3000:28;;;;3038:21;;-1:-1:-1;3509:13:20::1;3517:5:::0;-1:-1:-1;3509:13:20::1;:::i;:::-;-1:-1:-1::0;892:35:24;;-1:-1:-1;908:18:24;892:15;:35::i;:::-;937:37;954:19;937:16;:37::i;:::-;984:47;1006:24;984:21;:47::i;:::-;-1:-1:-1;;;;;;;;499:20:26;;;1209:44:27;1232:20;1209:22;:44::i;:::-;-1:-1:-1;1780:32:25;1796:15;1780;:32::i;:::-;1722:97;746:370:78;;567:2694;;4780:99:20;4862:10;;;;;;;;;;;;-1:-1:-1;;;4862:10:20;;;;;4780:99::o;2622:171:24:-;2718:12;;2703:44;;;3995:25:89;;;4051:2;4036:18;;4029:34;;;2703:44:24;;3968:18:89;2703:44:24;;;;;;;2757:12;:29;2622:171::o;2913:316::-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:24;;4276:2:89;3048:71:24;;;4258:21:89;4315:2;4295:18;;;4288:30;4354:34;4334:18;;;4327:62;-1:-1:-1;;;4405:18:89;;;4398:37;4452:19;;3048:71:24;;;;;;;;;3150:13;;3134:47;;;3995:25:89;;;4051:2;4036:18;;4029:34;;;3134:47:24;;3968:18:89;3134:47:24;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;3995:25:89;;;4051:2;4036:18;;4029:34;;;3452:62:24;;3968:18:89;3452:62:24;;;;;;;3524:18;:41;3359:213::o;3498:887:27:-;2503:3;3606:18;:41;;3585:155;;;;-1:-1:-1;;;3585:155:27;;4684:2:89;3585:155:27;;;4666:21:89;4723:2;4703:18;;;4696:30;4762:34;4742:18;;;4735:62;4833:34;4813:18;;;4806:62;-1:-1:-1;;;4884:19:89;;;4877:34;4928:19;;3585:155:27;4482:471:89;3585:155:27;3751:26;3780:17;:15;:17::i;:::-;3751:46;-1:-1:-1;3931:23:27;;;;;:75;;-1:-1:-1;3958:23:27;:43;:48;3931:75;3927:268;;;4022:23;:36;;4081:89;;;;;;;;4119:1;4081:89;;;;;;4130:38;4149:18;4130;;;;;:38;;:::i;:::-;-1:-1:-1;;;;;4081:89:27;;;;;;4022:162;;;;;;;-1:-1:-1;4022:162:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:268;4252:48;4281:18;4252:23;:28;;;;;;:48;;;;:::i;:::-;-1:-1:-1;;4316:62:27;;;3995:25:89;;;4051:2;4036:18;;4029:34;;;4316:62:27;;3968:18:89;4316:62:27;;;;;;;3575:810;3498:887;:::o;6386:176:25:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:25;;;5170:34:89;;5240:15;;;5235:2;5220:18;;5213:43;6466:56:25;;5105:18:89;6466:56:25;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:25;-1:-1:-1;;;;;6532:23:25;;;;;;;;;;6386:176::o;1357:191:27:-;1439:23;:43;1413:7;;1439:48;:102;;1509:32;:23;:30;;;;;:32;;:::i;:::-;-1:-1:-1;;;;;1439:102:27;1432:109;;1357:191;:::o;1439:102::-;-1:-1:-1;1490:16:27;;;1357:191::o;2836:192:56:-;2893:7;-1:-1:-1;;;;;2920:26:56;;;2912:78;;;;-1:-1:-1;;;2912:78:56;;5469:2:89;2912:78:56;;;5451:21:89;5508:2;5488:18;;;5481:30;5547:34;5527:18;;;5520:62;-1:-1:-1;;;5598:18:89;;;5591:37;5645:19;;2912:78:56;5267:403:89;2912:78:56;-1:-1:-1;3015:5:56;2836:192::o;3000:197:46:-;3069:7;3078;3104:86;3112:4;:17;;3131:31;3149:12;3131:17;;;;;:31;;:::i;:::-;3164:25;3183:5;3164:18;;;;;:25;;:::i;:::-;3104:7;:86::i;:::-;-1:-1:-1;;;;;3097:93:46;;;;;;;-1:-1:-1;3000:197:46;-1:-1:-1;;;3000:197:46:o;3779:205::-;3873:24;;3840:7;;3914:8;;:63;;3929:41;3943:4;3962:7;3968:1;3962:3;:7;:::i;:::-;7653:25;7713:20;;;7778:4;7765:18;;;7761:28;;7568:237;3929:41;:48;;;;-1:-1:-1;;;;;3929:48:46;3914:63;;;3925:1;3914:63;3907:70;3779:205;-1:-1:-1;;;3779:205:46:o;15264:187:56:-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:56;;6107:2:89;15338:76:56;;;6089:21:89;6146:2;6126:18;;;6119:30;6185:34;6165:18;;;6158:62;-1:-1:-1;;;6236:18:89;;;6229:36;6282:19;;15338:76:56;5905:402:89;4999:879:46;5159:11;;5117:7;;;;5185;;5181:691;;5260:22;5285:28;5299:4;5305:7;5311:1;5305:3;:7;:::i;5285:28::-;5260:53;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5260:53:46;;;;;;;-1:-1:-1;5388:24:46;;;-1:-1:-1;5388:24:46;5380:60;;;;-1:-1:-1;;;5380:60:46;;6514:2:89;5380:60:46;;;6496:21:89;6553:2;6533:18;;;6526:30;6592:25;6572:18;;;6565:53;6635:18;;5380:60:46;6312:347:89;5380:60:46;5504:17;;:24;;;;;;;5500:202;;5586:5;5548:28;5562:4;5568:7;5574:1;5568:3;:7;:::i;5548:28::-;:43;;-1:-1:-1;;;;;5548:43:46;;;;;;;;;;;;;;;;5500:202;;;5640:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;5640:46:46;;;;;;;;;;5630:57;;;;;;;-1:-1:-1;5630:57:46;;;;;;;;;;;;;;;;;;;;;;;;;5500:202;5723:11;;;;-1:-1:-1;5736:5:46;;-1:-1:-1;5715:27:46;;-1:-1:-1;5715:27:46;5181:691;-1:-1:-1;;5783:46:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;5783:46:46;;;;;;;;;;5773:57;;;;;;;-1:-1:-1;5773:57:46;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5822:5:46;4999:879;;;;;;;:::o;14:139:89:-;-1:-1:-1;;;;;97:31:89;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:443::-;279:6;287;340:2;328:9;319:7;315:23;311:32;308:52;;;356:1;353;346:12;308:52;388:9;382:16;407:39;440:5;407:39;:::i;:::-;515:2;500:18;;494:25;465:5;;-1:-1:-1;528:41:89;494:25;528:41;:::i;:::-;588:7;578:17;;;158:443;;;;;:::o;606:127::-;667:10;662:3;658:20;655:1;648:31;698:4;695:1;688:15;722:4;719:1;712:15;738:380;817:1;813:12;;;;860;;;881:61;;935:4;927:6;923:17;913:27;;881:61;988:2;980:6;977:14;957:18;954:38;951:161;;1034:10;1029:3;1025:20;1022:1;1015:31;1069:4;1066:1;1059:15;1097:4;1094:1;1087:15;951:161;;738:380;;;:::o;1249:545::-;1351:2;1346:3;1343:11;1340:448;;;1387:1;1412:5;1408:2;1401:17;1457:4;1453:2;1443:19;1527:2;1515:10;1511:19;1508:1;1504:27;1498:4;1494:38;1563:4;1551:10;1548:20;1545:47;;;-1:-1:-1;1586:4:89;1545:47;1641:2;1636:3;1632:12;1629:1;1625:20;1619:4;1615:31;1605:41;;1696:82;1714:2;1707:5;1704:13;1696:82;;;1759:17;;;1740:1;1729:13;1696:82;;;1700:3;;;1340:448;1249:545;;;:::o;1970:1352::-;2090:10;;-1:-1:-1;;;;;2112:30:89;;2109:56;;;2145:18;;:::i;:::-;2174:97;2264:6;2224:38;2256:4;2250:11;2224:38;:::i;:::-;2218:4;2174:97;:::i;:::-;2326:4;;2390:2;2379:14;;2407:1;2402:663;;;;3109:1;3126:6;3123:89;;;-1:-1:-1;3178:19:89;;;3172:26;3123:89;-1:-1:-1;;1927:1:89;1923:11;;;1919:24;1915:29;1905:40;1951:1;1947:11;;;1902:57;3225:81;;2372:944;;2402:663;1196:1;1189:14;;;1233:4;1220:18;;-1:-1:-1;;2438:20:89;;;2556:236;2570:7;2567:1;2564:14;2556:236;;;2659:19;;;2653:26;2638:42;;2751:27;;;;2719:1;2707:14;;;;2586:19;;2556:236;;;2560:3;2820:6;2811:7;2808:19;2805:201;;;2881:19;;;2875:26;-1:-1:-1;;2964:1:89;2960:14;;;2976:3;2956:24;2952:37;2948:42;2933:58;2918:74;;2805:201;-1:-1:-1;;;;;3052:1:89;3036:14;;;3032:22;3019:36;;-1:-1:-1;1970:1352:89:o;5675:225::-;5742:9;;;5763:11;;;5760:134;;;5816:10;5811:3;5807:20;5804:1;5797:31;5851:4;5848:1;5841:15;5879:4;5876:1;5869:15;5760:134;5675:225;;;;:::o;6312:347::-;567:2694:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@BALLOT_TYPEHASH_5682":{"entryPoint":null,"id":5682,"parameterSlots":0,"returnSlots":0},"@COUNTING_MODE_8195":{"entryPoint":null,"id":8195,"parameterSlots":0,"returnSlots":1},"@EXTENDED_BALLOT_TYPEHASH_5687":{"entryPoint":null,"id":5687,"parameterSlots":0,"returnSlots":0},"@_5776":{"entryPoint":null,"id":5776,"parameterSlots":0,"returnSlots":0},"@_afterExecute_6449":{"entryPoint":6748,"id":6449,"parameterSlots":5,"returnSlots":0},"@_beforeExecute_6411":{"entryPoint":6573,"id":6411,"parameterSlots":5,"returnSlots":0},"@_buildDomainSeparator_15285":{"entryPoint":null,"id":15285,"parameterSlots":3,"returnSlots":1},"@_castVote_6758":{"entryPoint":6805,"id":6758,"parameterSlots":4,"returnSlots":1},"@_castVote_6837":{"entryPoint":5757,"id":6837,"parameterSlots":5,"returnSlots":1},"@_countVote_8384":{"entryPoint":10143,"id":8384,"parameterSlots":5,"returnSlots":0},"@_defaultParams_6060":{"entryPoint":null,"id":6060,"parameterSlots":0,"returnSlots":1},"@_domainSeparatorV4_15258":{"entryPoint":9322,"id":15258,"parameterSlots":0,"returnSlots":1},"@_execute_22481":{"entryPoint":6735,"id":22481,"parameterSlots":5,"returnSlots":0},"@_execute_8839":{"entryPoint":10581,"id":8839,"parameterSlots":5,"returnSlots":0},"@_executor_22522":{"entryPoint":2187,"id":22522,"parameterSlots":0,"returnSlots":1},"@_executor_8903":{"entryPoint":null,"id":8903,"parameterSlots":0,"returnSlots":1},"@_getVotes_8981":{"entryPoint":8120,"id":8981,"parameterSlots":3,"returnSlots":1},"@_hashTypedDataV4_15301":{"entryPoint":5649,"id":15301,"parameterSlots":1,"returnSlots":1},"@_insert_13348":{"entryPoint":8796,"id":13348,"parameterSlots":3,"returnSlots":2},"@_msgData_14323":{"entryPoint":null,"id":14323,"parameterSlots":0,"returnSlots":2},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_quorumReached_8271":{"entryPoint":11208,"id":8271,"parameterSlots":1,"returnSlots":1},"@_revert_12930":{"entryPoint":11166,"id":12930,"parameterSlots":2,"returnSlots":0},"@_setProposalThreshold_8562":{"entryPoint":8561,"id":8562,"parameterSlots":1,"returnSlots":0},"@_setVotingDelay_8523":{"entryPoint":7348,"id":8523,"parameterSlots":1,"returnSlots":0},"@_setVotingPeriod_8546":{"entryPoint":8400,"id":8546,"parameterSlots":1,"returnSlots":0},"@_throwError_14841":{"entryPoint":9813,"id":14841,"parameterSlots":1,"returnSlots":0},"@_unsafeAccess_13467":{"entryPoint":null,"id":13467,"parameterSlots":2,"returnSlots":1},"@_updateQuorumNumerator_9184":{"entryPoint":6241,"id":9184,"parameterSlots":1,"returnSlots":0},"@_updateTimelock_8939":{"entryPoint":8270,"id":8939,"parameterSlots":1,"returnSlots":0},"@_upperBinaryLookup_13400":{"entryPoint":10968,"id":13400,"parameterSlots":4,"returnSlots":1},"@_voteSucceeded_8294":{"entryPoint":null,"id":8294,"parameterSlots":1,"returnSlots":1},"@average_15404":{"entryPoint":11263,"id":15404,"parameterSlots":2,"returnSlots":1},"@castVoteBySig_6676":{"entryPoint":3596,"id":6676,"parameterSlots":5,"returnSlots":1},"@castVoteWithReasonAndParamsBySig_6734":{"entryPoint":2240,"id":6734,"parameterSlots":8,"returnSlots":1},"@castVoteWithReasonAndParams_6632":{"entryPoint":3766,"id":6632,"parameterSlots":5,"returnSlots":1},"@castVoteWithReason_6603":{"entryPoint":4126,"id":6603,"parameterSlots":4,"returnSlots":1},"@castVote_6577":{"entryPoint":3725,"id":6577,"parameterSlots":2,"returnSlots":1},"@clear_18042":{"entryPoint":null,"id":18042,"parameterSlots":1,"returnSlots":0},"@empty_18084":{"entryPoint":null,"id":18084,"parameterSlots":1,"returnSlots":1},"@execute_6291":{"entryPoint":3293,"id":6291,"parameterSlots":4,"returnSlots":1},"@getAtBlock_13003":{"entryPoint":7170,"id":13003,"parameterSlots":2,"returnSlots":1},"@getDeadline_14696":{"entryPoint":null,"id":14696,"parameterSlots":1,"returnSlots":1},"@getVotesWithParams_6553":{"entryPoint":4231,"id":6553,"parameterSlots":3,"returnSlots":1},"@getVotes_6533":{"entryPoint":5107,"id":6533,"parameterSlots":2,"returnSlots":1},"@hasVoted_8214":{"entryPoint":null,"id":8214,"parameterSlots":2,"returnSlots":1},"@hashProposal_5879":{"entryPoint":4914,"id":5879,"parameterSlots":4,"returnSlots":1},"@isUnset_14738":{"entryPoint":null,"id":14738,"parameterSlots":1,"returnSlots":1},"@latest_13195":{"entryPoint":5449,"id":13195,"parameterSlots":1,"returnSlots":1},"@name_5837":{"entryPoint":2635,"id":5837,"parameterSlots":0,"returnSlots":1},"@onERC1155BatchReceived_6947":{"entryPoint":null,"id":6947,"parameterSlots":5,"returnSlots":1},"@onERC1155Received_6923":{"entryPoint":null,"id":6923,"parameterSlots":5,"returnSlots":1},"@onERC721Received_6901":{"entryPoint":null,"id":6901,"parameterSlots":4,"returnSlots":1},"@popFront_17921":{"entryPoint":6114,"id":17921,"parameterSlots":1,"returnSlots":1},"@proposalDeadline_6000":{"entryPoint":4596,"id":6000,"parameterSlots":1,"returnSlots":1},"@proposalEta_8729":{"entryPoint":4431,"id":8729,"parameterSlots":1,"returnSlots":1},"@proposalSnapshot_5983":{"entryPoint":3530,"id":5983,"parameterSlots":1,"returnSlots":1},"@proposalThreshold_22451":{"entryPoint":4585,"id":22451,"parameterSlots":0,"returnSlots":1},"@proposalThreshold_8468":{"entryPoint":null,"id":8468,"parameterSlots":0,"returnSlots":1},"@proposalVotes_8242":{"entryPoint":null,"id":8242,"parameterSlots":1,"returnSlots":3},"@propose_22438":{"entryPoint":4208,"id":22438,"parameterSlots":4,"returnSlots":1},"@propose_6206":{"entryPoint":7413,"id":6206,"parameterSlots":4,"returnSlots":1},"@pushBack_17795":{"entryPoint":10521,"id":17795,"parameterSlots":2,"returnSlots":0},"@push_13131":{"entryPoint":5395,"id":13131,"parameterSlots":2,"returnSlots":2},"@queue_8807":{"entryPoint":2781,"id":8807,"parameterSlots":4,"returnSlots":1},"@quorumDenominator_9091":{"entryPoint":null,"id":9091,"parameterSlots":0,"returnSlots":1},"@quorumNumerator_9034":{"entryPoint":4254,"id":9034,"parameterSlots":0,"returnSlots":1},"@quorumNumerator_9082":{"entryPoint":3840,"id":9082,"parameterSlots":1,"returnSlots":1},"@quorum_22393":{"entryPoint":5275,"id":22393,"parameterSlots":1,"returnSlots":1},"@quorum_9114":{"entryPoint":8626,"id":9114,"parameterSlots":1,"returnSlots":1},"@recover_15088":{"entryPoint":5727,"id":15088,"parameterSlots":4,"returnSlots":1},"@relay_6869":{"entryPoint":4643,"id":6869,"parameterSlots":4,"returnSlots":0},"@setDeadline_14711":{"entryPoint":null,"id":14711,"parameterSlots":2,"returnSlots":0},"@setProposalThreshold_8507":{"entryPoint":5140,"id":8507,"parameterSlots":1,"returnSlots":0},"@setVotingDelay_8481":{"entryPoint":3991,"id":8481,"parameterSlots":1,"returnSlots":0},"@setVotingPeriod_8494":{"entryPoint":4972,"id":8494,"parameterSlots":1,"returnSlots":0},"@state_22410":{"entryPoint":3714,"id":22410,"parameterSlots":1,"returnSlots":1},"@state_5966":{"entryPoint":10697,"id":5966,"parameterSlots":1,"returnSlots":1},"@state_8690":{"entryPoint":6840,"id":8690,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15325":{"entryPoint":null,"id":15325,"parameterSlots":1,"returnSlots":1},"@supportsInterface_22538":{"entryPoint":2212,"id":22538,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5827":{"entryPoint":9215,"id":5827,"parameterSlots":1,"returnSlots":1},"@supportsInterface_8623":{"entryPoint":5612,"id":8623,"parameterSlots":1,"returnSlots":1},"@timelock_8703":{"entryPoint":null,"id":8703,"parameterSlots":0,"returnSlots":1},"@toTypedDataHash_15147":{"entryPoint":null,"id":15147,"parameterSlots":2,"returnSlots":1},"@toUint224_16306":{"entryPoint":5286,"id":16306,"parameterSlots":1,"returnSlots":1},"@toUint32_16906":{"entryPoint":5511,"id":16906,"parameterSlots":1,"returnSlots":1},"@toUint64_16806":{"entryPoint":11062,"id":16806,"parameterSlots":1,"returnSlots":1},"@token_8950":{"entryPoint":null,"id":8950,"parameterSlots":0,"returnSlots":0},"@tryRecover_15055":{"entryPoint":9617,"id":15055,"parameterSlots":4,"returnSlots":2},"@updateQuorumNumerator_9127":{"entryPoint":2488,"id":9127,"parameterSlots":1,"returnSlots":0},"@updateTimelock_8917":{"entryPoint":4296,"id":8917,"parameterSlots":1,"returnSlots":0},"@verifyCallResult_12910":{"entryPoint":8375,"id":12910,"parameterSlots":3,"returnSlots":1},"@version_5847":{"entryPoint":null,"id":5847,"parameterSlots":0,"returnSlots":1},"@votingDelay_22364":{"entryPoint":3585,"id":22364,"parameterSlots":0,"returnSlots":1},"@votingDelay_8448":{"entryPoint":null,"id":8448,"parameterSlots":0,"returnSlots":1},"@votingPeriod_22377":{"entryPoint":2229,"id":22377,"parameterSlots":0,"returnSlots":1},"@votingPeriod_8458":{"entryPoint":null,"id":8458,"parameterSlots":0,"returnSlots":1},"abi_decode_array_address_dyn":{"entryPoint":12051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_bytes_dyn":{"entryPoint":12258,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_array_uint256_dyn":{"entryPoint":12167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":11489,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_bytes":{"entryPoint":11576,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_string_calldata":{"entryPoint":11354,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr":{"entryPoint":13277,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":11909,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":13535,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":13491,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":13424,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr":{"entryPoint":13160,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32":{"entryPoint":12385,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr":{"entryPoint":12980,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":14517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":11290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_TimelockController_$8159":{"entryPoint":13248,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":11774,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":13833,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_address":{"entryPoint":12668,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint8":{"entryPoint":12716,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr":{"entryPoint":12891,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr":{"entryPoint":12760,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32":{"entryPoint":11608,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32":{"entryPoint":12528,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_uint8":{"entryPoint":11332,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_array_address_dyn":{"entryPoint":13858,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_bytes_dyn":{"entryPoint":13974,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_uint256_dyn":{"entryPoint":13926,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":11799,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":13639,"id":null,"parameterSlots":3,"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_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_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed":{"entryPoint":14307,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":14059,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32_t_uint256__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint256__fromStack_reversed":{"entryPoint":14137,"id":null,"parameterSlots":7,"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_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_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"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_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVotes_$9304__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_ProposalState_$6963__to_t_uint8__fromStack_reversed":{"entryPoint":12628,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11869,"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_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13655,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__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_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14551,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__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_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__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_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":13768,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__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_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__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_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14655,"id":null,"parameterSlots":10,"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_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed":{"entryPoint":14382,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":14422,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_uint64":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"allocate_memory":{"entryPoint":11441,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_array_address_dyn":{"entryPoint":12016,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":14247,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":14616,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":14917,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":14894,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":14266,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":13710,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":14492,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":14225,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":12606,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":14285,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":11419,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":11888,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:37435:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"83:217:89","statements":[{"body":{"nodeType":"YulBlock","src":"129:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"138:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"141:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"131:6:89"},"nodeType":"YulFunctionCall","src":"131:12:89"},"nodeType":"YulExpressionStatement","src":"131:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"104:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"113:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:89"},"nodeType":"YulFunctionCall","src":"100:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"125:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"96:3:89"},"nodeType":"YulFunctionCall","src":"96:32:89"},"nodeType":"YulIf","src":"93:52:89"},{"nodeType":"YulVariableDeclaration","src":"154:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"180:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"167:12:89"},"nodeType":"YulFunctionCall","src":"167:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"158:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:89"},"nodeType":"YulFunctionCall","src":"256:12:89"},"nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"212:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"234:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"239:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"230:3:89"},"nodeType":"YulFunctionCall","src":"230:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"219:3:89"},"nodeType":"YulFunctionCall","src":"219:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"209:2:89"},"nodeType":"YulFunctionCall","src":"209:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"202:6:89"},"nodeType":"YulFunctionCall","src":"202:51:89"},"nodeType":"YulIf","src":"199:71:89"},{"nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"60:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"72:6:89","type":""}],"src":"14:286:89"},{"body":{"nodeType":"YulBlock","src":"400:92:89","statements":[{"nodeType":"YulAssignment","src":"410:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"422:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"433:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"418:3:89"},"nodeType":"YulFunctionCall","src":"418:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"410:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"452:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"477:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"470:6:89"},"nodeType":"YulFunctionCall","src":"470:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"463:6:89"},"nodeType":"YulFunctionCall","src":"463:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"445:6:89"},"nodeType":"YulFunctionCall","src":"445:41:89"},"nodeType":"YulExpressionStatement","src":"445:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"369:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"380:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"391:4:89","type":""}],"src":"305:187:89"},{"body":{"nodeType":"YulBlock","src":"598:76:89","statements":[{"nodeType":"YulAssignment","src":"608:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"620:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"631:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"616:3:89"},"nodeType":"YulFunctionCall","src":"616:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"608:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"661:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"643:6:89"},"nodeType":"YulFunctionCall","src":"643:25:89"},"nodeType":"YulExpressionStatement","src":"643:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"567:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"578:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"589:4:89","type":""}],"src":"497:177:89"},{"body":{"nodeType":"YulBlock","src":"726:109:89","statements":[{"nodeType":"YulAssignment","src":"736:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"758:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"745:12:89"},"nodeType":"YulFunctionCall","src":"745:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"736:5:89"}]},{"body":{"nodeType":"YulBlock","src":"813:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"822:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"825:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"815:6:89"},"nodeType":"YulFunctionCall","src":"815:12:89"},"nodeType":"YulExpressionStatement","src":"815:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"787:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"798:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"805:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"794:3:89"},"nodeType":"YulFunctionCall","src":"794:16:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"784:2:89"},"nodeType":"YulFunctionCall","src":"784:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"777:6:89"},"nodeType":"YulFunctionCall","src":"777:35:89"},"nodeType":"YulIf","src":"774:55:89"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"705:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"716:5:89","type":""}],"src":"679:156:89"},{"body":{"nodeType":"YulBlock","src":"913:275:89","statements":[{"body":{"nodeType":"YulBlock","src":"962:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"974:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"964:6:89"},"nodeType":"YulFunctionCall","src":"964:12:89"},"nodeType":"YulExpressionStatement","src":"964:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"941:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"949:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"937:3:89"},"nodeType":"YulFunctionCall","src":"937:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"956:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"933:3:89"},"nodeType":"YulFunctionCall","src":"933:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"926:6:89"},"nodeType":"YulFunctionCall","src":"926:35:89"},"nodeType":"YulIf","src":"923:55:89"},{"nodeType":"YulAssignment","src":"987:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1010:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"997:12:89"},"nodeType":"YulFunctionCall","src":"997:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"987:6:89"}]},{"body":{"nodeType":"YulBlock","src":"1060:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1069:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1072:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1062:6:89"},"nodeType":"YulFunctionCall","src":"1062:12:89"},"nodeType":"YulExpressionStatement","src":"1062:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1040:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1029:2:89"},"nodeType":"YulFunctionCall","src":"1029:30:89"},"nodeType":"YulIf","src":"1026:50:89"},{"nodeType":"YulAssignment","src":"1085:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1101:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1109:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1097:3:89"},"nodeType":"YulFunctionCall","src":"1097:17:89"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"1085:8:89"}]},{"body":{"nodeType":"YulBlock","src":"1166:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1175:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1178:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1168:6:89"},"nodeType":"YulFunctionCall","src":"1168:12:89"},"nodeType":"YulExpressionStatement","src":"1168:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1137:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"1145:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:89"},"nodeType":"YulFunctionCall","src":"1133:19:89"},{"kind":"number","nodeType":"YulLiteral","src":"1154:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:89"},"nodeType":"YulFunctionCall","src":"1129:30:89"},{"name":"end","nodeType":"YulIdentifier","src":"1161:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1126:2:89"},"nodeType":"YulFunctionCall","src":"1126:39:89"},"nodeType":"YulIf","src":"1123:59:89"}]},"name":"abi_decode_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"876:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"884:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"892:8:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"902:6:89","type":""}],"src":"840:348:89"},{"body":{"nodeType":"YulBlock","src":"1225:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1242:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1249:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1254:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1245:3:89"},"nodeType":"YulFunctionCall","src":"1245:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1235:6:89"},"nodeType":"YulFunctionCall","src":"1235:31:89"},"nodeType":"YulExpressionStatement","src":"1235:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1282:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1285:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1275:6:89"},"nodeType":"YulFunctionCall","src":"1275:15:89"},"nodeType":"YulExpressionStatement","src":"1275:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1306:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1309:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1299:6:89"},"nodeType":"YulFunctionCall","src":"1299:15:89"},"nodeType":"YulExpressionStatement","src":"1299:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1193:127:89"},{"body":{"nodeType":"YulBlock","src":"1370:230:89","statements":[{"nodeType":"YulAssignment","src":"1380:19:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1396:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1390:5:89"},"nodeType":"YulFunctionCall","src":"1390:9:89"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1380:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1408:58:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1430:6:89"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1446:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"1452:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1442:3:89"},"nodeType":"YulFunctionCall","src":"1442:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1461:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1457:3:89"},"nodeType":"YulFunctionCall","src":"1457:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1438:3:89"},"nodeType":"YulFunctionCall","src":"1438:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1426:3:89"},"nodeType":"YulFunctionCall","src":"1426:40:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1412:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1541:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1543:16:89"},"nodeType":"YulFunctionCall","src":"1543:18:89"},"nodeType":"YulExpressionStatement","src":"1543:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1484:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1496:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1481:2:89"},"nodeType":"YulFunctionCall","src":"1481:34:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1520:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1532:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1517:2:89"},"nodeType":"YulFunctionCall","src":"1517:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1478:2:89"},"nodeType":"YulFunctionCall","src":"1478:62:89"},"nodeType":"YulIf","src":"1475:88:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1579:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1583:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1572:6:89"},"nodeType":"YulFunctionCall","src":"1572:22:89"},"nodeType":"YulExpressionStatement","src":"1572:22:89"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1350:4:89","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1359:6:89","type":""}],"src":"1325:275:89"},{"body":{"nodeType":"YulBlock","src":"1679:332:89","statements":[{"body":{"nodeType":"YulBlock","src":"1723:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1725:16:89"},"nodeType":"YulFunctionCall","src":"1725:18:89"},"nodeType":"YulExpressionStatement","src":"1725:18:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1695:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1703:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1692:2:89"},"nodeType":"YulFunctionCall","src":"1692:30:89"},"nodeType":"YulIf","src":"1689:56:89"},{"nodeType":"YulAssignment","src":"1754:66:89","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1791:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1799:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1787:3:89"},"nodeType":"YulFunctionCall","src":"1787:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1808:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1804:3:89"},"nodeType":"YulFunctionCall","src":"1804:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1783:3:89"},"nodeType":"YulFunctionCall","src":"1783:29:89"},{"kind":"number","nodeType":"YulLiteral","src":"1814:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1779:3:89"},"nodeType":"YulFunctionCall","src":"1779:40:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1763:15:89"},"nodeType":"YulFunctionCall","src":"1763:57:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1754:5:89"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1836:5:89"},{"name":"length","nodeType":"YulIdentifier","src":"1843:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1829:6:89"},"nodeType":"YulFunctionCall","src":"1829:21:89"},"nodeType":"YulExpressionStatement","src":"1829:21:89"},{"body":{"nodeType":"YulBlock","src":"1888:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1897:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1900:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1890:6:89"},"nodeType":"YulFunctionCall","src":"1890:12:89"},"nodeType":"YulExpressionStatement","src":"1890:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1869:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"1874:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1865:3:89"},"nodeType":"YulFunctionCall","src":"1865:16:89"},{"name":"end","nodeType":"YulIdentifier","src":"1883:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1862:2:89"},"nodeType":"YulFunctionCall","src":"1862:25:89"},"nodeType":"YulIf","src":"1859:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1930:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1937:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1926:3:89"},"nodeType":"YulFunctionCall","src":"1926:16:89"},{"name":"src","nodeType":"YulIdentifier","src":"1944:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"1949:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1913:12:89"},"nodeType":"YulFunctionCall","src":"1913:43:89"},"nodeType":"YulExpressionStatement","src":"1913:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1980:5:89"},{"name":"length","nodeType":"YulIdentifier","src":"1987:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:89"},"nodeType":"YulFunctionCall","src":"1976:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"1996:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1972:3:89"},"nodeType":"YulFunctionCall","src":"1972:29:89"},{"kind":"number","nodeType":"YulLiteral","src":"2003:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1965:6:89"},"nodeType":"YulFunctionCall","src":"1965:40:89"},"nodeType":"YulExpressionStatement","src":"1965:40:89"}]},"name":"abi_decode_available_length_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1648:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"1653:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"1661:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1669:5:89","type":""}],"src":"1605:406:89"},{"body":{"nodeType":"YulBlock","src":"2068:168:89","statements":[{"body":{"nodeType":"YulBlock","src":"2117:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2126:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2129:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2119:6:89"},"nodeType":"YulFunctionCall","src":"2119:12:89"},"nodeType":"YulExpressionStatement","src":"2119:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2096:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2104:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2092:3:89"},"nodeType":"YulFunctionCall","src":"2092:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"2111:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2088:3:89"},"nodeType":"YulFunctionCall","src":"2088:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2081:6:89"},"nodeType":"YulFunctionCall","src":"2081:35:89"},"nodeType":"YulIf","src":"2078:55:89"},{"nodeType":"YulAssignment","src":"2142:88:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2189:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2197:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2185:3:89"},"nodeType":"YulFunctionCall","src":"2185:17:89"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2217:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2204:12:89"},"nodeType":"YulFunctionCall","src":"2204:20:89"},{"name":"end","nodeType":"YulIdentifier","src":"2226:3:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"2151:33:89"},"nodeType":"YulFunctionCall","src":"2151:79:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2142:5:89"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2042:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"2050:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"2058:5:89","type":""}],"src":"2016:220:89"},{"body":{"nodeType":"YulBlock","src":"2438:781:89","statements":[{"body":{"nodeType":"YulBlock","src":"2485:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2494:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2497:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2487:6:89"},"nodeType":"YulFunctionCall","src":"2487:12:89"},"nodeType":"YulExpressionStatement","src":"2487:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2459:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2468:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2455:3:89"},"nodeType":"YulFunctionCall","src":"2455:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2480:3:89","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2451:3:89"},"nodeType":"YulFunctionCall","src":"2451:33:89"},"nodeType":"YulIf","src":"2448:53:89"},{"nodeType":"YulAssignment","src":"2510:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2533:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2520:12:89"},"nodeType":"YulFunctionCall","src":"2520:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2510:6:89"}]},{"nodeType":"YulAssignment","src":"2552:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2583:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2594:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2579:3:89"},"nodeType":"YulFunctionCall","src":"2579:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"2562:16:89"},"nodeType":"YulFunctionCall","src":"2562:36:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2552:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2607:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:89"},"nodeType":"YulFunctionCall","src":"2634:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2621:12:89"},"nodeType":"YulFunctionCall","src":"2621:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2611:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2662:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2672:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2666:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2717:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2726:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2729:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2719:6:89"},"nodeType":"YulFunctionCall","src":"2719:12:89"},"nodeType":"YulExpressionStatement","src":"2719:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2705:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2713:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2702:2:89"},"nodeType":"YulFunctionCall","src":"2702:14:89"},"nodeType":"YulIf","src":"2699:34:89"},{"nodeType":"YulVariableDeclaration","src":"2742:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2799:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2810:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2795:3:89"},"nodeType":"YulFunctionCall","src":"2795:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2819:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"2768:26:89"},"nodeType":"YulFunctionCall","src":"2768:59:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2746:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2756:8:89","type":""}]},{"nodeType":"YulAssignment","src":"2836:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2846:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2836:6:89"}]},{"nodeType":"YulAssignment","src":"2863:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2873:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2863:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2890:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2923:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2934:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2919:3:89"},"nodeType":"YulFunctionCall","src":"2919:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2906:12:89"},"nodeType":"YulFunctionCall","src":"2906:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2894:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2967:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2976:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2979:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2969:6:89"},"nodeType":"YulFunctionCall","src":"2969:12:89"},"nodeType":"YulExpressionStatement","src":"2969:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2953:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2963:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2950:2:89"},"nodeType":"YulFunctionCall","src":"2950:16:89"},"nodeType":"YulIf","src":"2947:36:89"},{"nodeType":"YulAssignment","src":"2992:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3023:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3034:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3019:3:89"},"nodeType":"YulFunctionCall","src":"3019:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3045:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3002:16:89"},"nodeType":"YulFunctionCall","src":"3002:51:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2992:6:89"}]},{"nodeType":"YulAssignment","src":"3062:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3093:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3104:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3089:3:89"},"nodeType":"YulFunctionCall","src":"3089:19:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3072:16:89"},"nodeType":"YulFunctionCall","src":"3072:37:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"3062:6:89"}]},{"nodeType":"YulAssignment","src":"3118:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3145:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3156:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3141:3:89"},"nodeType":"YulFunctionCall","src":"3141:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3128:12:89"},"nodeType":"YulFunctionCall","src":"3128:33:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"3118:6:89"}]},{"nodeType":"YulAssignment","src":"3170:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3197:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3208:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3193:3:89"},"nodeType":"YulFunctionCall","src":"3193:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3180:12:89"},"nodeType":"YulFunctionCall","src":"3180:33:89"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"3170:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2348:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2359:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2371:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2379:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2387:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2395:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2403:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2411:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"2419:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"2427:6:89","type":""}],"src":"2241:978:89"},{"body":{"nodeType":"YulBlock","src":"3294:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"3340:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:89"},"nodeType":"YulFunctionCall","src":"3342:12:89"},"nodeType":"YulExpressionStatement","src":"3342:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3315:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3324:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3311:3:89"},"nodeType":"YulFunctionCall","src":"3311:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3336:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3307:3:89"},"nodeType":"YulFunctionCall","src":"3307:32:89"},"nodeType":"YulIf","src":"3304:52:89"},{"nodeType":"YulAssignment","src":"3365:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3388:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3375:12:89"},"nodeType":"YulFunctionCall","src":"3375:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3365:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3260:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3271:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3283:6:89","type":""}],"src":"3224:180:89"},{"body":{"nodeType":"YulBlock","src":"3459:373:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3469:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3489:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3483:5:89"},"nodeType":"YulFunctionCall","src":"3483:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3473:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3511:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3516:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3504:6:89"},"nodeType":"YulFunctionCall","src":"3504:19:89"},"nodeType":"YulExpressionStatement","src":"3504:19:89"},{"nodeType":"YulVariableDeclaration","src":"3532:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3541:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3536:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3603:110:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3617:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3627:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3621:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3659:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"3664:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3655:3:89"},"nodeType":"YulFunctionCall","src":"3655:11:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3668:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3651:3:89"},"nodeType":"YulFunctionCall","src":"3651:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3687:5:89"},{"name":"i","nodeType":"YulIdentifier","src":"3694:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3683:3:89"},"nodeType":"YulFunctionCall","src":"3683:13:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3698:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3679:3:89"},"nodeType":"YulFunctionCall","src":"3679:22:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3673:5:89"},"nodeType":"YulFunctionCall","src":"3673:29:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3644:6:89"},"nodeType":"YulFunctionCall","src":"3644:59:89"},"nodeType":"YulExpressionStatement","src":"3644:59:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3562:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"3565:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3559:2:89"},"nodeType":"YulFunctionCall","src":"3559:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3573:21:89","statements":[{"nodeType":"YulAssignment","src":"3575:17:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3584:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"3587:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3580:3:89"},"nodeType":"YulFunctionCall","src":"3580:12:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3575:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"3555:3:89","statements":[]},"src":"3551:162:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3737:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3742:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3733:3:89"},"nodeType":"YulFunctionCall","src":"3733:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"3751:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3729:3:89"},"nodeType":"YulFunctionCall","src":"3729:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"3758:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3722:6:89"},"nodeType":"YulFunctionCall","src":"3722:38:89"},"nodeType":"YulExpressionStatement","src":"3722:38:89"},{"nodeType":"YulAssignment","src":"3769:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3784:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3797:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3805:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3793:3:89"},"nodeType":"YulFunctionCall","src":"3793:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3814:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3810:3:89"},"nodeType":"YulFunctionCall","src":"3810:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3789:3:89"},"nodeType":"YulFunctionCall","src":"3789:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3780:3:89"},"nodeType":"YulFunctionCall","src":"3780:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"3821:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3776:3:89"},"nodeType":"YulFunctionCall","src":"3776:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3769:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3436:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3443:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3451:3:89","type":""}],"src":"3409:423:89"},{"body":{"nodeType":"YulBlock","src":"3958:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3975:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3986:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3968:6:89"},"nodeType":"YulFunctionCall","src":"3968:21:89"},"nodeType":"YulExpressionStatement","src":"3968:21:89"},{"nodeType":"YulAssignment","src":"3998:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4024:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4036:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4047:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4032:3:89"},"nodeType":"YulFunctionCall","src":"4032:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"4006:17:89"},"nodeType":"YulFunctionCall","src":"4006:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3998:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3927:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3938:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3949:4:89","type":""}],"src":"3837:220:89"},{"body":{"nodeType":"YulBlock","src":"4107:86:89","statements":[{"body":{"nodeType":"YulBlock","src":"4171:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4180:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4183:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4173:6:89"},"nodeType":"YulFunctionCall","src":"4173:12:89"},"nodeType":"YulExpressionStatement","src":"4173:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4130:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4141:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4156:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4161:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4152:3:89"},"nodeType":"YulFunctionCall","src":"4152:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"4165:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4148:3:89"},"nodeType":"YulFunctionCall","src":"4148:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4137:3:89"},"nodeType":"YulFunctionCall","src":"4137:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4127:2:89"},"nodeType":"YulFunctionCall","src":"4127:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4120:6:89"},"nodeType":"YulFunctionCall","src":"4120:50:89"},"nodeType":"YulIf","src":"4117:70:89"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4096:5:89","type":""}],"src":"4062:131:89"},{"body":{"nodeType":"YulBlock","src":"4328:535:89","statements":[{"body":{"nodeType":"YulBlock","src":"4375:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4384:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4387:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4377:6:89"},"nodeType":"YulFunctionCall","src":"4377:12:89"},"nodeType":"YulExpressionStatement","src":"4377:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4349:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4358:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4345:3:89"},"nodeType":"YulFunctionCall","src":"4345:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4370:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4341:3:89"},"nodeType":"YulFunctionCall","src":"4341:33:89"},"nodeType":"YulIf","src":"4338:53:89"},{"nodeType":"YulVariableDeclaration","src":"4400:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4426:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4413:12:89"},"nodeType":"YulFunctionCall","src":"4413:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4404:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4470:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4445:24:89"},"nodeType":"YulFunctionCall","src":"4445:31:89"},"nodeType":"YulExpressionStatement","src":"4445:31:89"},{"nodeType":"YulAssignment","src":"4485:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"4495:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4485:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4509:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4541:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4552:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4537:3:89"},"nodeType":"YulFunctionCall","src":"4537:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4524:12:89"},"nodeType":"YulFunctionCall","src":"4524:32:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4513:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4590:7:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4565:24:89"},"nodeType":"YulFunctionCall","src":"4565:33:89"},"nodeType":"YulExpressionStatement","src":"4565:33:89"},{"nodeType":"YulAssignment","src":"4607:17:89","value":{"name":"value_1","nodeType":"YulIdentifier","src":"4617:7:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4607:6:89"}]},{"nodeType":"YulAssignment","src":"4633:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4660:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4671:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4656:3:89"},"nodeType":"YulFunctionCall","src":"4656:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4643:12:89"},"nodeType":"YulFunctionCall","src":"4643:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4633:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4684:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4715:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4726:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4711:3:89"},"nodeType":"YulFunctionCall","src":"4711:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4698:12:89"},"nodeType":"YulFunctionCall","src":"4698:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4688:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4773:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4782:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4785:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4775:6:89"},"nodeType":"YulFunctionCall","src":"4775:12:89"},"nodeType":"YulExpressionStatement","src":"4775:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4745:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4753:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4742:2:89"},"nodeType":"YulFunctionCall","src":"4742:30:89"},"nodeType":"YulIf","src":"4739:50:89"},{"nodeType":"YulAssignment","src":"4798:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4829:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4840:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4825:3:89"},"nodeType":"YulFunctionCall","src":"4825:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4849:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4808:16:89"},"nodeType":"YulFunctionCall","src":"4808:49:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4798:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4270:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4281:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4293:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4301:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4309:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4317:6:89","type":""}],"src":"4198:665:89"},{"body":{"nodeType":"YulBlock","src":"4967:103:89","statements":[{"nodeType":"YulAssignment","src":"4977:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4989:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5000:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:89"},"nodeType":"YulFunctionCall","src":"4985:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4977:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5019:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5034:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5046:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5051:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5042:3:89"},"nodeType":"YulFunctionCall","src":"5042:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5030:3:89"},"nodeType":"YulFunctionCall","src":"5030:33:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5012:6:89"},"nodeType":"YulFunctionCall","src":"5012:52:89"},"nodeType":"YulExpressionStatement","src":"5012:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4936:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4947:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4958:4:89","type":""}],"src":"4868:202:89"},{"body":{"nodeType":"YulBlock","src":"5144:114:89","statements":[{"body":{"nodeType":"YulBlock","src":"5188:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5190:16:89"},"nodeType":"YulFunctionCall","src":"5190:18:89"},"nodeType":"YulExpressionStatement","src":"5190:18:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5160:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5168:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5157:2:89"},"nodeType":"YulFunctionCall","src":"5157:30:89"},"nodeType":"YulIf","src":"5154:56:89"},{"nodeType":"YulAssignment","src":"5219:33:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5235:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"5238:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5231:3:89"},"nodeType":"YulFunctionCall","src":"5231:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"5247:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5227:3:89"},"nodeType":"YulFunctionCall","src":"5227:25:89"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"5219:4:89"}]}]},"name":"array_allocation_size_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"5124:6:89","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"5135:4:89","type":""}],"src":"5075:183:89"},{"body":{"nodeType":"YulBlock","src":"5327:673:89","statements":[{"body":{"nodeType":"YulBlock","src":"5376:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5385:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5388:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5378:6:89"},"nodeType":"YulFunctionCall","src":"5378:12:89"},"nodeType":"YulExpressionStatement","src":"5378:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5355:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5363:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5351:3:89"},"nodeType":"YulFunctionCall","src":"5351:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"5370:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5347:3:89"},"nodeType":"YulFunctionCall","src":"5347:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5340:6:89"},"nodeType":"YulFunctionCall","src":"5340:35:89"},"nodeType":"YulIf","src":"5337:55:89"},{"nodeType":"YulVariableDeclaration","src":"5401:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5424:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5411:12:89"},"nodeType":"YulFunctionCall","src":"5411:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5405:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5440:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"5450:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5444:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5463:71:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5530:2:89"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"5490:39:89"},"nodeType":"YulFunctionCall","src":"5490:43:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5474:15:89"},"nodeType":"YulFunctionCall","src":"5474:60:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"5467:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5543:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"5556:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"5547:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5575:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5580:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5568:6:89"},"nodeType":"YulFunctionCall","src":"5568:15:89"},"nodeType":"YulExpressionStatement","src":"5568:15:89"},{"nodeType":"YulAssignment","src":"5592:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5603:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5608:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5599:3:89"},"nodeType":"YulFunctionCall","src":"5599:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5592:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"5620:46:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5642:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5654:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"5657:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5650:3:89"},"nodeType":"YulFunctionCall","src":"5650:10:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5638:3:89"},"nodeType":"YulFunctionCall","src":"5638:23:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5663:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:89"},"nodeType":"YulFunctionCall","src":"5634:32:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"5624:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5694:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5703:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5706:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5696:6:89"},"nodeType":"YulFunctionCall","src":"5696:12:89"},"nodeType":"YulExpressionStatement","src":"5696:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"5681:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"5689:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5678:2:89"},"nodeType":"YulFunctionCall","src":"5678:15:89"},"nodeType":"YulIf","src":"5675:35:89"},{"nodeType":"YulVariableDeclaration","src":"5719:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5734:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5742:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5730:3:89"},"nodeType":"YulFunctionCall","src":"5730:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"5723:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5810:161:89","statements":[{"nodeType":"YulVariableDeclaration","src":"5824:30:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5850:3:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5837:12:89"},"nodeType":"YulFunctionCall","src":"5837:17:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5828:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5892:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5867:24:89"},"nodeType":"YulFunctionCall","src":"5867:31:89"},"nodeType":"YulExpressionStatement","src":"5867:31:89"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5918:3:89"},{"name":"value","nodeType":"YulIdentifier","src":"5923:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5911:6:89"},"nodeType":"YulFunctionCall","src":"5911:18:89"},"nodeType":"YulExpressionStatement","src":"5911:18:89"},{"nodeType":"YulAssignment","src":"5942:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5953:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5958:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5949:3:89"},"nodeType":"YulFunctionCall","src":"5949:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"5942:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5765:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"5770:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5762:2:89"},"nodeType":"YulFunctionCall","src":"5762:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5778:23:89","statements":[{"nodeType":"YulAssignment","src":"5780:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5791:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5796:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5787:3:89"},"nodeType":"YulFunctionCall","src":"5787:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"5780:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"5758:3:89","statements":[]},"src":"5754:217:89"},{"nodeType":"YulAssignment","src":"5980:14:89","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"5989:5:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"5980:5:89"}]}]},"name":"abi_decode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5301:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"5309:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"5317:5:89","type":""}],"src":"5263:737:89"},{"body":{"nodeType":"YulBlock","src":"6069:598:89","statements":[{"body":{"nodeType":"YulBlock","src":"6118:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6130:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6120:6:89"},"nodeType":"YulFunctionCall","src":"6120:12:89"},"nodeType":"YulExpressionStatement","src":"6120:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6097:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6105:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6093:3:89"},"nodeType":"YulFunctionCall","src":"6093:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"6112:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6089:3:89"},"nodeType":"YulFunctionCall","src":"6089:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6082:6:89"},"nodeType":"YulFunctionCall","src":"6082:35:89"},"nodeType":"YulIf","src":"6079:55:89"},{"nodeType":"YulVariableDeclaration","src":"6143:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6166:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6153:12:89"},"nodeType":"YulFunctionCall","src":"6153:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6147:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6182:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6192:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6186:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6205:71:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6272:2:89"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"6232:39:89"},"nodeType":"YulFunctionCall","src":"6232:43:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6216:15:89"},"nodeType":"YulFunctionCall","src":"6216:60:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"6209:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6285:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"6298:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"6289:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6317:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6322:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6310:6:89"},"nodeType":"YulFunctionCall","src":"6310:15:89"},"nodeType":"YulExpressionStatement","src":"6310:15:89"},{"nodeType":"YulAssignment","src":"6334:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6345:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"6350:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6341:3:89"},"nodeType":"YulFunctionCall","src":"6341:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"6334:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"6362:46:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6384:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6396:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"6399:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6392:3:89"},"nodeType":"YulFunctionCall","src":"6392:10:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6380:3:89"},"nodeType":"YulFunctionCall","src":"6380:23:89"},{"name":"_2","nodeType":"YulIdentifier","src":"6405:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6376:3:89"},"nodeType":"YulFunctionCall","src":"6376:32:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"6366:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6436:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6445:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6448:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6438:6:89"},"nodeType":"YulFunctionCall","src":"6438:12:89"},"nodeType":"YulExpressionStatement","src":"6438:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"6423:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"6431:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6420:2:89"},"nodeType":"YulFunctionCall","src":"6420:15:89"},"nodeType":"YulIf","src":"6417:35:89"},{"nodeType":"YulVariableDeclaration","src":"6461:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6476:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"6484:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6472:3:89"},"nodeType":"YulFunctionCall","src":"6472:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"6465:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6552:86:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6573:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6591:3:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6578:12:89"},"nodeType":"YulFunctionCall","src":"6578:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6566:6:89"},"nodeType":"YulFunctionCall","src":"6566:30:89"},"nodeType":"YulExpressionStatement","src":"6566:30:89"},{"nodeType":"YulAssignment","src":"6609:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6620:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"6625:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6616:3:89"},"nodeType":"YulFunctionCall","src":"6616:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"6609:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6507:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"6512:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6504:2:89"},"nodeType":"YulFunctionCall","src":"6504:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6520:23:89","statements":[{"nodeType":"YulAssignment","src":"6522:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6533:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"6538:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6529:3:89"},"nodeType":"YulFunctionCall","src":"6529:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"6522:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"6500:3:89","statements":[]},"src":"6496:142:89"},{"nodeType":"YulAssignment","src":"6647:14:89","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"6656:5:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"6647:5:89"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"6043:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"6051:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6059:5:89","type":""}],"src":"6005:662:89"},{"body":{"nodeType":"YulBlock","src":"6734:824:89","statements":[{"body":{"nodeType":"YulBlock","src":"6783:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6792:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6795:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6785:6:89"},"nodeType":"YulFunctionCall","src":"6785:12:89"},"nodeType":"YulExpressionStatement","src":"6785:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6762:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6770:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6758:3:89"},"nodeType":"YulFunctionCall","src":"6758:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"6777:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6754:3:89"},"nodeType":"YulFunctionCall","src":"6754:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6747:6:89"},"nodeType":"YulFunctionCall","src":"6747:35:89"},"nodeType":"YulIf","src":"6744:55:89"},{"nodeType":"YulVariableDeclaration","src":"6808:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6831:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6818:12:89"},"nodeType":"YulFunctionCall","src":"6818:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6812:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6847:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6857:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6851:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6870:71:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6937:2:89"}],"functionName":{"name":"array_allocation_size_array_address_dyn","nodeType":"YulIdentifier","src":"6897:39:89"},"nodeType":"YulFunctionCall","src":"6897:43:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6881:15:89"},"nodeType":"YulFunctionCall","src":"6881:60:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"6874:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6950:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"6963:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"6954:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"6982:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6987:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6975:6:89"},"nodeType":"YulFunctionCall","src":"6975:15:89"},"nodeType":"YulExpressionStatement","src":"6975:15:89"},{"nodeType":"YulAssignment","src":"6999:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7010:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7015:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7006:3:89"},"nodeType":"YulFunctionCall","src":"7006:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"6999:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"7027:46:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7049:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7061:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"7064:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7057:3:89"},"nodeType":"YulFunctionCall","src":"7057:10:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7045:3:89"},"nodeType":"YulFunctionCall","src":"7045:23:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7070:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7041:3:89"},"nodeType":"YulFunctionCall","src":"7041:32:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"7031:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7101:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7110:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7113:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7103:6:89"},"nodeType":"YulFunctionCall","src":"7103:12:89"},"nodeType":"YulExpressionStatement","src":"7103:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"7088:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"7096:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7085:2:89"},"nodeType":"YulFunctionCall","src":"7085:15:89"},"nodeType":"YulIf","src":"7082:35:89"},{"nodeType":"YulVariableDeclaration","src":"7126:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7141:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7149:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7137:3:89"},"nodeType":"YulFunctionCall","src":"7137:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"7130:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7217:312:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7231:36:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7263:3:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7250:12:89"},"nodeType":"YulFunctionCall","src":"7250:17:89"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"7235:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7331:74:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7349:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7359:1:89","type":"","value":"0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7353:2:89","type":""}]},{"expression":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7384:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"7388:2:89"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7377:6:89"},"nodeType":"YulFunctionCall","src":"7377:14:89"},"nodeType":"YulExpressionStatement","src":"7377:14:89"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"7286:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"7299:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7283:2:89"},"nodeType":"YulFunctionCall","src":"7283:35:89"},"nodeType":"YulIf","src":"7280:125:89"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7425:3:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7455:6:89"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"7463:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7451:3:89"},"nodeType":"YulFunctionCall","src":"7451:24:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7477:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7447:3:89"},"nodeType":"YulFunctionCall","src":"7447:33:89"},{"name":"end","nodeType":"YulIdentifier","src":"7482:3:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7430:16:89"},"nodeType":"YulFunctionCall","src":"7430:56:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7418:6:89"},"nodeType":"YulFunctionCall","src":"7418:69:89"},"nodeType":"YulExpressionStatement","src":"7418:69:89"},{"nodeType":"YulAssignment","src":"7500:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7511:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7516:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7507:3:89"},"nodeType":"YulFunctionCall","src":"7507:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"7500:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7172:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"7177:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7169:2:89"},"nodeType":"YulFunctionCall","src":"7169:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7185:23:89","statements":[{"nodeType":"YulAssignment","src":"7187:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7198:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"7203:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7194:3:89"},"nodeType":"YulFunctionCall","src":"7194:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"7187:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"7165:3:89","statements":[]},"src":"7161:368:89"},{"nodeType":"YulAssignment","src":"7538:14:89","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"7547:5:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7538:5:89"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"6708:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"6716:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"6724:5:89","type":""}],"src":"6672:886:89"},{"body":{"nodeType":"YulBlock","src":"7768:692:89","statements":[{"body":{"nodeType":"YulBlock","src":"7815:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7824:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7827:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7817:6:89"},"nodeType":"YulFunctionCall","src":"7817:12:89"},"nodeType":"YulExpressionStatement","src":"7817:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7789:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"7798:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7785:3:89"},"nodeType":"YulFunctionCall","src":"7785:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"7810:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7781:3:89"},"nodeType":"YulFunctionCall","src":"7781:33:89"},"nodeType":"YulIf","src":"7778:53:89"},{"nodeType":"YulVariableDeclaration","src":"7840:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7867:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7854:12:89"},"nodeType":"YulFunctionCall","src":"7854:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7844:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7886:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7896:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7890:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7941:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7950:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7953:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7943:6:89"},"nodeType":"YulFunctionCall","src":"7943:12:89"},"nodeType":"YulExpressionStatement","src":"7943:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7929:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7937:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7926:2:89"},"nodeType":"YulFunctionCall","src":"7926:14:89"},"nodeType":"YulIf","src":"7923:34:89"},{"nodeType":"YulAssignment","src":"7966:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8009:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"8020:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8005:3:89"},"nodeType":"YulFunctionCall","src":"8005:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8029:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"7976:28:89"},"nodeType":"YulFunctionCall","src":"7976:61:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7966:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"8046:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8079:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8090:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8075:3:89"},"nodeType":"YulFunctionCall","src":"8075:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8062:12:89"},"nodeType":"YulFunctionCall","src":"8062:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8050:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8125:6:89"},"nodeType":"YulFunctionCall","src":"8125:12:89"},"nodeType":"YulExpressionStatement","src":"8125:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8109:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8119:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8106:2:89"},"nodeType":"YulFunctionCall","src":"8106:16:89"},"nodeType":"YulIf","src":"8103:36:89"},{"nodeType":"YulAssignment","src":"8148:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8191:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8202:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8187:3:89"},"nodeType":"YulFunctionCall","src":"8187:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8213:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"8158:28:89"},"nodeType":"YulFunctionCall","src":"8158:63:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8148:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"8230:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8263:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8274:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8259:3:89"},"nodeType":"YulFunctionCall","src":"8259:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8246:12:89"},"nodeType":"YulFunctionCall","src":"8246:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"8234:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8307:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8316:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8319:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8309:6:89"},"nodeType":"YulFunctionCall","src":"8309:12:89"},"nodeType":"YulExpressionStatement","src":"8309:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8293:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8303:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8290:2:89"},"nodeType":"YulFunctionCall","src":"8290:16:89"},"nodeType":"YulIf","src":"8287:36:89"},{"nodeType":"YulAssignment","src":"8332:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8373:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8384:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8369:3:89"},"nodeType":"YulFunctionCall","src":"8369:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8395:7:89"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"8342:26:89"},"nodeType":"YulFunctionCall","src":"8342:61:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8332:6:89"}]},{"nodeType":"YulAssignment","src":"8412:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8439:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8450:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8435:3:89"},"nodeType":"YulFunctionCall","src":"8435:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8422:12:89"},"nodeType":"YulFunctionCall","src":"8422:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8412:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7710:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7721:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7733:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7741:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7749:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7757:6:89","type":""}],"src":"7563:897:89"},{"body":{"nodeType":"YulBlock","src":"8566:76:89","statements":[{"nodeType":"YulAssignment","src":"8576:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8588:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8599:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8584:3:89"},"nodeType":"YulFunctionCall","src":"8584:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8576:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8618:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"8629:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8611:6:89"},"nodeType":"YulFunctionCall","src":"8611:25:89"},"nodeType":"YulExpressionStatement","src":"8611:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8535:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8546:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8557:4:89","type":""}],"src":"8465:177:89"},{"body":{"nodeType":"YulBlock","src":"8781:324:89","statements":[{"body":{"nodeType":"YulBlock","src":"8828:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8837:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8840:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8830:6:89"},"nodeType":"YulFunctionCall","src":"8830:12:89"},"nodeType":"YulExpressionStatement","src":"8830:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8802:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"8811:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8798:3:89"},"nodeType":"YulFunctionCall","src":"8798:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"8823:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8794:3:89"},"nodeType":"YulFunctionCall","src":"8794:33:89"},"nodeType":"YulIf","src":"8791:53:89"},{"nodeType":"YulAssignment","src":"8853:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8876:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8863:12:89"},"nodeType":"YulFunctionCall","src":"8863:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8853:6:89"}]},{"nodeType":"YulAssignment","src":"8895:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8926:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8937:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8922:3:89"},"nodeType":"YulFunctionCall","src":"8922:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8905:16:89"},"nodeType":"YulFunctionCall","src":"8905:36:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8895:6:89"}]},{"nodeType":"YulAssignment","src":"8950:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8981:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8992:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8977:3:89"},"nodeType":"YulFunctionCall","src":"8977:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"8960:16:89"},"nodeType":"YulFunctionCall","src":"8960:36:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8950:6:89"}]},{"nodeType":"YulAssignment","src":"9005:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9032:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9043:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9028:3:89"},"nodeType":"YulFunctionCall","src":"9028:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9015:12:89"},"nodeType":"YulFunctionCall","src":"9015:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9005:6:89"}]},{"nodeType":"YulAssignment","src":"9056:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9083:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9094:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9079:3:89"},"nodeType":"YulFunctionCall","src":"9079:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9066:12:89"},"nodeType":"YulFunctionCall","src":"9066:33:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9056:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8715:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8726:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8738:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8746:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8754:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8762:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8770:6:89","type":""}],"src":"8647:458:89"},{"body":{"nodeType":"YulBlock","src":"9142:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9159:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9166:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9171:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9162:3:89"},"nodeType":"YulFunctionCall","src":"9162:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9152:6:89"},"nodeType":"YulFunctionCall","src":"9152:31:89"},"nodeType":"YulExpressionStatement","src":"9152:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9199:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9202:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9192:6:89"},"nodeType":"YulFunctionCall","src":"9192:15:89"},"nodeType":"YulExpressionStatement","src":"9192:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9223:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9226:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9216:6:89"},"nodeType":"YulFunctionCall","src":"9216:15:89"},"nodeType":"YulExpressionStatement","src":"9216:15:89"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"9110:127:89"},{"body":{"nodeType":"YulBlock","src":"9359:229:89","statements":[{"nodeType":"YulAssignment","src":"9369:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9381:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9392:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9377:3:89"},"nodeType":"YulFunctionCall","src":"9377:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9369:4:89"}]},{"body":{"nodeType":"YulBlock","src":"9437:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9458:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9465:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9470:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9461:3:89"},"nodeType":"YulFunctionCall","src":"9461:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9451:6:89"},"nodeType":"YulFunctionCall","src":"9451:31:89"},"nodeType":"YulExpressionStatement","src":"9451:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9502:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9505:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9495:6:89"},"nodeType":"YulFunctionCall","src":"9495:15:89"},"nodeType":"YulExpressionStatement","src":"9495:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9530:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9533:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9523:6:89"},"nodeType":"YulFunctionCall","src":"9523:15:89"},"nodeType":"YulExpressionStatement","src":"9523:15:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9417:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9425:1:89","type":"","value":"8"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9414:2:89"},"nodeType":"YulFunctionCall","src":"9414:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9407:6:89"},"nodeType":"YulFunctionCall","src":"9407:21:89"},"nodeType":"YulIf","src":"9404:144:89"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9564:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"9575:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9557:6:89"},"nodeType":"YulFunctionCall","src":"9557:25:89"},"nodeType":"YulExpressionStatement","src":"9557:25:89"}]},"name":"abi_encode_tuple_t_enum$_ProposalState_$6963__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9328:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9339:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9350:4:89","type":""}],"src":"9242:346:89"},{"body":{"nodeType":"YulBlock","src":"9680:228:89","statements":[{"body":{"nodeType":"YulBlock","src":"9726:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9735:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9738:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9728:6:89"},"nodeType":"YulFunctionCall","src":"9728:12:89"},"nodeType":"YulExpressionStatement","src":"9728:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9701:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"9710:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9697:3:89"},"nodeType":"YulFunctionCall","src":"9697:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"9722:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9693:3:89"},"nodeType":"YulFunctionCall","src":"9693:32:89"},"nodeType":"YulIf","src":"9690:52:89"},{"nodeType":"YulAssignment","src":"9751:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9774:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9761:12:89"},"nodeType":"YulFunctionCall","src":"9761:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9751:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9793:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9823:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9834:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9819:3:89"},"nodeType":"YulFunctionCall","src":"9819:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9806:12:89"},"nodeType":"YulFunctionCall","src":"9806:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9797:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9872:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"9847:24:89"},"nodeType":"YulFunctionCall","src":"9847:31:89"},"nodeType":"YulExpressionStatement","src":"9847:31:89"},{"nodeType":"YulAssignment","src":"9887:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"9897:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9887:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9638:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9649:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9661:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9669:6:89","type":""}],"src":"9593:315:89"},{"body":{"nodeType":"YulBlock","src":"10070:162:89","statements":[{"nodeType":"YulAssignment","src":"10080:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10092:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10103:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10088:3:89"},"nodeType":"YulFunctionCall","src":"10088:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10080:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10122:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"10133:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10115:6:89"},"nodeType":"YulFunctionCall","src":"10115:25:89"},"nodeType":"YulExpressionStatement","src":"10115:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10160:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10171:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10156:3:89"},"nodeType":"YulFunctionCall","src":"10156:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"10176:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10149:6:89"},"nodeType":"YulFunctionCall","src":"10149:34:89"},"nodeType":"YulExpressionStatement","src":"10149:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10203:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10214:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10199:3:89"},"nodeType":"YulFunctionCall","src":"10199:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"10219:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10192:6:89"},"nodeType":"YulFunctionCall","src":"10192:34:89"},"nodeType":"YulExpressionStatement","src":"10192:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10023:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10034:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10042:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10050:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10061:4:89","type":""}],"src":"9913:319:89"},{"body":{"nodeType":"YulBlock","src":"10322:165:89","statements":[{"body":{"nodeType":"YulBlock","src":"10368:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10377:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10380:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10370:6:89"},"nodeType":"YulFunctionCall","src":"10370:12:89"},"nodeType":"YulExpressionStatement","src":"10370:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10343:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"10352:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10339:3:89"},"nodeType":"YulFunctionCall","src":"10339:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"10364:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10335:3:89"},"nodeType":"YulFunctionCall","src":"10335:32:89"},"nodeType":"YulIf","src":"10332:52:89"},{"nodeType":"YulAssignment","src":"10393:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10416:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10403:12:89"},"nodeType":"YulFunctionCall","src":"10403:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10393:6:89"}]},{"nodeType":"YulAssignment","src":"10435:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10466:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10477:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10462:3:89"},"nodeType":"YulFunctionCall","src":"10462:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"10445:16:89"},"nodeType":"YulFunctionCall","src":"10445:36:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10435:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10280:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10291:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10303:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10311:6:89","type":""}],"src":"10237:250:89"},{"body":{"nodeType":"YulBlock","src":"10640:621:89","statements":[{"body":{"nodeType":"YulBlock","src":"10687:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10696:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10699:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10689:6:89"},"nodeType":"YulFunctionCall","src":"10689:12:89"},"nodeType":"YulExpressionStatement","src":"10689:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10661:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"10670:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10657:3:89"},"nodeType":"YulFunctionCall","src":"10657:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"10682:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10653:3:89"},"nodeType":"YulFunctionCall","src":"10653:33:89"},"nodeType":"YulIf","src":"10650:53:89"},{"nodeType":"YulAssignment","src":"10712:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10735:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10722:12:89"},"nodeType":"YulFunctionCall","src":"10722:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10712:6:89"}]},{"nodeType":"YulAssignment","src":"10754:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10785:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10796:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10781:3:89"},"nodeType":"YulFunctionCall","src":"10781:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"10764:16:89"},"nodeType":"YulFunctionCall","src":"10764:36:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10754:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"10809:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10840:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10851:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10836:3:89"},"nodeType":"YulFunctionCall","src":"10836:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10823:12:89"},"nodeType":"YulFunctionCall","src":"10823:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10813:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10864:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"10874:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10868:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"10919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10928:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10921:6:89"},"nodeType":"YulFunctionCall","src":"10921:12:89"},"nodeType":"YulExpressionStatement","src":"10921:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10907:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"10915:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10904:2:89"},"nodeType":"YulFunctionCall","src":"10904:14:89"},"nodeType":"YulIf","src":"10901:34:89"},{"nodeType":"YulVariableDeclaration","src":"10944:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11001:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"11012:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10997:3:89"},"nodeType":"YulFunctionCall","src":"10997:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11021:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"10970:26:89"},"nodeType":"YulFunctionCall","src":"10970:59:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"10948:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"10958:8:89","type":""}]},{"nodeType":"YulAssignment","src":"11038:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"11048:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11038:6:89"}]},{"nodeType":"YulAssignment","src":"11065:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"11075:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11065:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"11092:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11136:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11121:3:89"},"nodeType":"YulFunctionCall","src":"11121:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11108:12:89"},"nodeType":"YulFunctionCall","src":"11108:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"11096:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"11169:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11178:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11181:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11171:6:89"},"nodeType":"YulFunctionCall","src":"11171:12:89"},"nodeType":"YulExpressionStatement","src":"11171:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"11155:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"11165:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11152:2:89"},"nodeType":"YulFunctionCall","src":"11152:16:89"},"nodeType":"YulIf","src":"11149:36:89"},{"nodeType":"YulAssignment","src":"11194:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11225:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"11236:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11221:3:89"},"nodeType":"YulFunctionCall","src":"11221:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11247:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"11204:16:89"},"nodeType":"YulFunctionCall","src":"11204:51:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11194:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10574:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10585:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10597:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10605:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10613:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10621:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10629:6:89","type":""}],"src":"10492:769:89"},{"body":{"nodeType":"YulBlock","src":"11388:427:89","statements":[{"body":{"nodeType":"YulBlock","src":"11434:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11443:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11446:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11436:6:89"},"nodeType":"YulFunctionCall","src":"11436:12:89"},"nodeType":"YulExpressionStatement","src":"11436:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11409:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"11418:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11405:3:89"},"nodeType":"YulFunctionCall","src":"11405:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"11430:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11401:3:89"},"nodeType":"YulFunctionCall","src":"11401:32:89"},"nodeType":"YulIf","src":"11398:52:89"},{"nodeType":"YulAssignment","src":"11459:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11482:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11469:12:89"},"nodeType":"YulFunctionCall","src":"11469:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11459:6:89"}]},{"nodeType":"YulAssignment","src":"11501:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11532:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11543:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11528:3:89"},"nodeType":"YulFunctionCall","src":"11528:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"11511:16:89"},"nodeType":"YulFunctionCall","src":"11511:36:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11501:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"11556:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11587:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11598:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11583:3:89"},"nodeType":"YulFunctionCall","src":"11583:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11570:12:89"},"nodeType":"YulFunctionCall","src":"11570:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11560:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"11645:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11654:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11657:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11647:6:89"},"nodeType":"YulFunctionCall","src":"11647:12:89"},"nodeType":"YulExpressionStatement","src":"11647:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11617:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"11625:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11614:2:89"},"nodeType":"YulFunctionCall","src":"11614:30:89"},"nodeType":"YulIf","src":"11611:50:89"},{"nodeType":"YulVariableDeclaration","src":"11670:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11727:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"11738:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11723:3:89"},"nodeType":"YulFunctionCall","src":"11723:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11747:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"11696:26:89"},"nodeType":"YulFunctionCall","src":"11696:59:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"11674:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"11684:8:89","type":""}]},{"nodeType":"YulAssignment","src":"11764:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"11774:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11764:6:89"}]},{"nodeType":"YulAssignment","src":"11791:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"11801:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11791:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11330:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11341:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11353:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11361:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11369:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11377:6:89","type":""}],"src":"11266:549:89"},{"body":{"nodeType":"YulBlock","src":"12035:942:89","statements":[{"body":{"nodeType":"YulBlock","src":"12082:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12091:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12094:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12084:6:89"},"nodeType":"YulFunctionCall","src":"12084:12:89"},"nodeType":"YulExpressionStatement","src":"12084:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"12056:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"12065:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12052:3:89"},"nodeType":"YulFunctionCall","src":"12052:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"12077:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12048:3:89"},"nodeType":"YulFunctionCall","src":"12048:33:89"},"nodeType":"YulIf","src":"12045:53:89"},{"nodeType":"YulVariableDeclaration","src":"12107:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12134:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12121:12:89"},"nodeType":"YulFunctionCall","src":"12121:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"12111:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12153:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"12163:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12157:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12208:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12217:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12220:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12210:6:89"},"nodeType":"YulFunctionCall","src":"12210:12:89"},"nodeType":"YulExpressionStatement","src":"12210:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"12196:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12204:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12193:2:89"},"nodeType":"YulFunctionCall","src":"12193:14:89"},"nodeType":"YulIf","src":"12190:34:89"},{"nodeType":"YulAssignment","src":"12233:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12276:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"12287:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12272:3:89"},"nodeType":"YulFunctionCall","src":"12272:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12296:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn","nodeType":"YulIdentifier","src":"12243:28:89"},"nodeType":"YulFunctionCall","src":"12243:61:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12233:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"12313:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12346:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12357:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12342:3:89"},"nodeType":"YulFunctionCall","src":"12342:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12329:12:89"},"nodeType":"YulFunctionCall","src":"12329:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"12317:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12390:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12399:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12402:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12392:6:89"},"nodeType":"YulFunctionCall","src":"12392:12:89"},"nodeType":"YulExpressionStatement","src":"12392:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"12376:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12386:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12373:2:89"},"nodeType":"YulFunctionCall","src":"12373:16:89"},"nodeType":"YulIf","src":"12370:36:89"},{"nodeType":"YulAssignment","src":"12415:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12458:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"12469:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12454:3:89"},"nodeType":"YulFunctionCall","src":"12454:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12480:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"12425:28:89"},"nodeType":"YulFunctionCall","src":"12425:63:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12415:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"12497:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12530:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12541:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12526:3:89"},"nodeType":"YulFunctionCall","src":"12526:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12513:12:89"},"nodeType":"YulFunctionCall","src":"12513:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"12501:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12574:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12583:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12586:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12576:6:89"},"nodeType":"YulFunctionCall","src":"12576:12:89"},"nodeType":"YulExpressionStatement","src":"12576:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"12560:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12570:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12557:2:89"},"nodeType":"YulFunctionCall","src":"12557:16:89"},"nodeType":"YulIf","src":"12554:36:89"},{"nodeType":"YulAssignment","src":"12599:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12640:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"12651:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12636:3:89"},"nodeType":"YulFunctionCall","src":"12636:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12662:7:89"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"12609:26:89"},"nodeType":"YulFunctionCall","src":"12609:61:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"12599:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"12679:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12712:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12723:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12708:3:89"},"nodeType":"YulFunctionCall","src":"12708:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12695:12:89"},"nodeType":"YulFunctionCall","src":"12695:32:89"},"variables":[{"name":"offset_3","nodeType":"YulTypedName","src":"12683:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12756:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12765:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12768:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12758:6:89"},"nodeType":"YulFunctionCall","src":"12758:12:89"},"nodeType":"YulExpressionStatement","src":"12758:12:89"}]},"condition":{"arguments":[{"name":"offset_3","nodeType":"YulIdentifier","src":"12742:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"12752:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12739:2:89"},"nodeType":"YulFunctionCall","src":"12739:16:89"},"nodeType":"YulIf","src":"12736:36:89"},{"nodeType":"YulVariableDeclaration","src":"12781:34:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12795:9:89"},{"name":"offset_3","nodeType":"YulIdentifier","src":"12806:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12791:3:89"},"nodeType":"YulFunctionCall","src":"12791:24:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12785:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12863:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12872:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12875:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12865:6:89"},"nodeType":"YulFunctionCall","src":"12865:12:89"},"nodeType":"YulExpressionStatement","src":"12865:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"12842:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"12846:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12838:3:89"},"nodeType":"YulFunctionCall","src":"12838:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12853:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12834:3:89"},"nodeType":"YulFunctionCall","src":"12834:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12827:6:89"},"nodeType":"YulFunctionCall","src":"12827:35:89"},"nodeType":"YulIf","src":"12824:55:89"},{"nodeType":"YulAssignment","src":"12888:83:89","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"12936:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"12940:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12932:3:89"},"nodeType":"YulFunctionCall","src":"12932:11:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"12958:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12945:12:89"},"nodeType":"YulFunctionCall","src":"12945:16:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"12963:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"12898:33:89"},"nodeType":"YulFunctionCall","src":"12898:73:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"12888:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11977:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11988:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"12000:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12008:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12016:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12024:6:89","type":""}],"src":"11820:1157:89"},{"body":{"nodeType":"YulBlock","src":"13095:410:89","statements":[{"body":{"nodeType":"YulBlock","src":"13141:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13150:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13153:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13143:6:89"},"nodeType":"YulFunctionCall","src":"13143:12:89"},"nodeType":"YulExpressionStatement","src":"13143:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13116:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"13125:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13112:3:89"},"nodeType":"YulFunctionCall","src":"13112:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"13137:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13108:3:89"},"nodeType":"YulFunctionCall","src":"13108:32:89"},"nodeType":"YulIf","src":"13105:52:89"},{"nodeType":"YulVariableDeclaration","src":"13166:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13192:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13179:12:89"},"nodeType":"YulFunctionCall","src":"13179:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13170:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13236:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13211:24:89"},"nodeType":"YulFunctionCall","src":"13211:31:89"},"nodeType":"YulExpressionStatement","src":"13211:31:89"},{"nodeType":"YulAssignment","src":"13251:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"13261:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13251:6:89"}]},{"nodeType":"YulAssignment","src":"13275:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13302:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13313:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13298:3:89"},"nodeType":"YulFunctionCall","src":"13298:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13285:12:89"},"nodeType":"YulFunctionCall","src":"13285:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"13275:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"13326:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13357:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13368:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13353:3:89"},"nodeType":"YulFunctionCall","src":"13353:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13340:12:89"},"nodeType":"YulFunctionCall","src":"13340:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"13330:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13415:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13424:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13427:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13417:6:89"},"nodeType":"YulFunctionCall","src":"13417:12:89"},"nodeType":"YulExpressionStatement","src":"13417:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"13387:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13395:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13384:2:89"},"nodeType":"YulFunctionCall","src":"13384:30:89"},"nodeType":"YulIf","src":"13381:50:89"},{"nodeType":"YulAssignment","src":"13440:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13471:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"13482:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13467:3:89"},"nodeType":"YulFunctionCall","src":"13467:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"13491:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"13450:16:89"},"nodeType":"YulFunctionCall","src":"13450:49:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"13440:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13045:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13056:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13068:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13076:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13084:6:89","type":""}],"src":"12982:523:89"},{"body":{"nodeType":"YulBlock","src":"13607:177:89","statements":[{"body":{"nodeType":"YulBlock","src":"13653:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13662:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13665:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13655:6:89"},"nodeType":"YulFunctionCall","src":"13655:12:89"},"nodeType":"YulExpressionStatement","src":"13655:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13628:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"13637:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13624:3:89"},"nodeType":"YulFunctionCall","src":"13624:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"13649:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13620:3:89"},"nodeType":"YulFunctionCall","src":"13620:32:89"},"nodeType":"YulIf","src":"13617:52:89"},{"nodeType":"YulVariableDeclaration","src":"13678:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13704:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13691:12:89"},"nodeType":"YulFunctionCall","src":"13691:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13682:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13748:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"13723:24:89"},"nodeType":"YulFunctionCall","src":"13723:31:89"},"nodeType":"YulExpressionStatement","src":"13723:31:89"},{"nodeType":"YulAssignment","src":"13763:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"13773:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13763:6:89"}]}]},"name":"abi_decode_tuple_t_contract$_TimelockController_$8159","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13573:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13584:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13596:6:89","type":""}],"src":"13510:274:89"},{"body":{"nodeType":"YulBlock","src":"13986:874:89","statements":[{"body":{"nodeType":"YulBlock","src":"14033:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14042:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14045:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14035:6:89"},"nodeType":"YulFunctionCall","src":"14035:12:89"},"nodeType":"YulExpressionStatement","src":"14035:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"14007:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"14016:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14003:3:89"},"nodeType":"YulFunctionCall","src":"14003:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"14028:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13999:3:89"},"nodeType":"YulFunctionCall","src":"13999:33:89"},"nodeType":"YulIf","src":"13996:53:89"},{"nodeType":"YulVariableDeclaration","src":"14058:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14084:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14071:12:89"},"nodeType":"YulFunctionCall","src":"14071:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14062:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14128:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14103:24:89"},"nodeType":"YulFunctionCall","src":"14103:31:89"},"nodeType":"YulExpressionStatement","src":"14103:31:89"},{"nodeType":"YulAssignment","src":"14143:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"14153:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"14143:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"14167:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14199:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14210:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14195:3:89"},"nodeType":"YulFunctionCall","src":"14195:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14182:12:89"},"nodeType":"YulFunctionCall","src":"14182:32:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"14171:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"14248:7:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"14223:24:89"},"nodeType":"YulFunctionCall","src":"14223:33:89"},"nodeType":"YulExpressionStatement","src":"14223:33:89"},{"nodeType":"YulAssignment","src":"14265:17:89","value":{"name":"value_1","nodeType":"YulIdentifier","src":"14275:7:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"14265:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"14291:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14322:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14333:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14318:3:89"},"nodeType":"YulFunctionCall","src":"14318:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14305:12:89"},"nodeType":"YulFunctionCall","src":"14305:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"14295:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14346:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14356:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14350:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14401:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14410:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14413:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14403:6:89"},"nodeType":"YulFunctionCall","src":"14403:12:89"},"nodeType":"YulExpressionStatement","src":"14403:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"14389:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"14397:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14386:2:89"},"nodeType":"YulFunctionCall","src":"14386:14:89"},"nodeType":"YulIf","src":"14383:34:89"},{"nodeType":"YulAssignment","src":"14426:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14469:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"14480:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14465:3:89"},"nodeType":"YulFunctionCall","src":"14465:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14489:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"14436:28:89"},"nodeType":"YulFunctionCall","src":"14436:61:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"14426:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"14506:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14539:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14550:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14535:3:89"},"nodeType":"YulFunctionCall","src":"14535:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14522:12:89"},"nodeType":"YulFunctionCall","src":"14522:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"14510:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14583:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14592:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14595:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14585:6:89"},"nodeType":"YulFunctionCall","src":"14585:12:89"},"nodeType":"YulExpressionStatement","src":"14585:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"14569:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"14579:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14566:2:89"},"nodeType":"YulFunctionCall","src":"14566:16:89"},"nodeType":"YulIf","src":"14563:36:89"},{"nodeType":"YulAssignment","src":"14608:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14651:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"14662:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14647:3:89"},"nodeType":"YulFunctionCall","src":"14647:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14673:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"14618:28:89"},"nodeType":"YulFunctionCall","src":"14618:63:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"14608:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"14690:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14723:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14734:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14719:3:89"},"nodeType":"YulFunctionCall","src":"14719:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14706:12:89"},"nodeType":"YulFunctionCall","src":"14706:33:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"14694:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14768:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14777:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14780:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14770:6:89"},"nodeType":"YulFunctionCall","src":"14770:12:89"},"nodeType":"YulExpressionStatement","src":"14770:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"14754:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"14764:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14751:2:89"},"nodeType":"YulFunctionCall","src":"14751:16:89"},"nodeType":"YulIf","src":"14748:36:89"},{"nodeType":"YulAssignment","src":"14793:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14824:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"14835:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14820:3:89"},"nodeType":"YulFunctionCall","src":"14820:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"14846:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"14803:16:89"},"nodeType":"YulFunctionCall","src":"14803:51:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"14793:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13920:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13931:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13943:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13951:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13959:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13967:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13975:6:89","type":""}],"src":"13789:1071:89"},{"body":{"nodeType":"YulBlock","src":"14988:490:89","statements":[{"body":{"nodeType":"YulBlock","src":"15034:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15043:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15046:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15036:6:89"},"nodeType":"YulFunctionCall","src":"15036:12:89"},"nodeType":"YulExpressionStatement","src":"15036:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15009:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"15018:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15005:3:89"},"nodeType":"YulFunctionCall","src":"15005:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"15030:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15001:3:89"},"nodeType":"YulFunctionCall","src":"15001:32:89"},"nodeType":"YulIf","src":"14998:52:89"},{"nodeType":"YulVariableDeclaration","src":"15059:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15085:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15072:12:89"},"nodeType":"YulFunctionCall","src":"15072:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15063:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15129:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15104:24:89"},"nodeType":"YulFunctionCall","src":"15104:31:89"},"nodeType":"YulExpressionStatement","src":"15104:31:89"},{"nodeType":"YulAssignment","src":"15144:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"15154:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15144:6:89"}]},{"nodeType":"YulAssignment","src":"15168:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15195:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15206:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15191:3:89"},"nodeType":"YulFunctionCall","src":"15191:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15178:12:89"},"nodeType":"YulFunctionCall","src":"15178:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15168:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"15219:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15250:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15261:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15246:3:89"},"nodeType":"YulFunctionCall","src":"15246:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15233:12:89"},"nodeType":"YulFunctionCall","src":"15233:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"15223:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15308:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15317:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15320:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15310:6:89"},"nodeType":"YulFunctionCall","src":"15310:12:89"},"nodeType":"YulExpressionStatement","src":"15310:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"15280:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"15288:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15277:2:89"},"nodeType":"YulFunctionCall","src":"15277:30:89"},"nodeType":"YulIf","src":"15274:50:89"},{"nodeType":"YulVariableDeclaration","src":"15333:85:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15390:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"15401:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15386:3:89"},"nodeType":"YulFunctionCall","src":"15386:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"15410:7:89"}],"functionName":{"name":"abi_decode_string_calldata","nodeType":"YulIdentifier","src":"15359:26:89"},"nodeType":"YulFunctionCall","src":"15359:59:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"15337:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"15347:8:89","type":""}]},{"nodeType":"YulAssignment","src":"15427:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"15437:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"15427:6:89"}]},{"nodeType":"YulAssignment","src":"15454:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"15464:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"15454:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14930:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"14941:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"14953:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14961:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14969:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14977:6:89","type":""}],"src":"14865:613:89"},{"body":{"nodeType":"YulBlock","src":"15584:102:89","statements":[{"nodeType":"YulAssignment","src":"15594:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15606:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15617:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15602:3:89"},"nodeType":"YulFunctionCall","src":"15602:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15594:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15636:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15651:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15667:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15672:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15663:3:89"},"nodeType":"YulFunctionCall","src":"15663:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"15676:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15659:3:89"},"nodeType":"YulFunctionCall","src":"15659:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15647:3:89"},"nodeType":"YulFunctionCall","src":"15647:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15629:6:89"},"nodeType":"YulFunctionCall","src":"15629:51:89"},"nodeType":"YulExpressionStatement","src":"15629:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15553:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15564:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15575:4:89","type":""}],"src":"15483:203:89"},{"body":{"nodeType":"YulBlock","src":"15778:228:89","statements":[{"body":{"nodeType":"YulBlock","src":"15824:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15833:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15836:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15826:6:89"},"nodeType":"YulFunctionCall","src":"15826:12:89"},"nodeType":"YulExpressionStatement","src":"15826:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15799:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"15808:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15795:3:89"},"nodeType":"YulFunctionCall","src":"15795:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"15820:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15791:3:89"},"nodeType":"YulFunctionCall","src":"15791:32:89"},"nodeType":"YulIf","src":"15788:52:89"},{"nodeType":"YulVariableDeclaration","src":"15849:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15875:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15862:12:89"},"nodeType":"YulFunctionCall","src":"15862:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15853:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15919:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"15894:24:89"},"nodeType":"YulFunctionCall","src":"15894:31:89"},"nodeType":"YulExpressionStatement","src":"15894:31:89"},{"nodeType":"YulAssignment","src":"15934:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"15944:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15934:6:89"}]},{"nodeType":"YulAssignment","src":"15958:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15985:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15996:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15981:3:89"},"nodeType":"YulFunctionCall","src":"15981:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15968:12:89"},"nodeType":"YulFunctionCall","src":"15968:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"15958:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15736:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15747:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15759:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15767:6:89","type":""}],"src":"15691:315:89"},{"body":{"nodeType":"YulBlock","src":"16158:587:89","statements":[{"body":{"nodeType":"YulBlock","src":"16205:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16214:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16217:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16207:6:89"},"nodeType":"YulFunctionCall","src":"16207:12:89"},"nodeType":"YulExpressionStatement","src":"16207:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16179:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"16188:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16175:3:89"},"nodeType":"YulFunctionCall","src":"16175:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"16200:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16171:3:89"},"nodeType":"YulFunctionCall","src":"16171:33:89"},"nodeType":"YulIf","src":"16168:53:89"},{"nodeType":"YulVariableDeclaration","src":"16230:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16256:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16243:12:89"},"nodeType":"YulFunctionCall","src":"16243:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16234:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16300:5:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16275:24:89"},"nodeType":"YulFunctionCall","src":"16275:31:89"},"nodeType":"YulExpressionStatement","src":"16275:31:89"},{"nodeType":"YulAssignment","src":"16315:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"16325:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16315:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"16339:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16371:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16382:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16367:3:89"},"nodeType":"YulFunctionCall","src":"16367:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16354:12:89"},"nodeType":"YulFunctionCall","src":"16354:32:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"16343:7:89","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"16420:7:89"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"16395:24:89"},"nodeType":"YulFunctionCall","src":"16395:33:89"},"nodeType":"YulExpressionStatement","src":"16395:33:89"},{"nodeType":"YulAssignment","src":"16437:17:89","value":{"name":"value_1","nodeType":"YulIdentifier","src":"16447:7:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"16437:6:89"}]},{"nodeType":"YulAssignment","src":"16463:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16490:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16501:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16486:3:89"},"nodeType":"YulFunctionCall","src":"16486:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16473:12:89"},"nodeType":"YulFunctionCall","src":"16473:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"16463:6:89"}]},{"nodeType":"YulAssignment","src":"16514:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16541:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16552:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16537:3:89"},"nodeType":"YulFunctionCall","src":"16537:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16524:12:89"},"nodeType":"YulFunctionCall","src":"16524:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"16514:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"16565:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16596:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16607:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16592:3:89"},"nodeType":"YulFunctionCall","src":"16592:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"16579:12:89"},"nodeType":"YulFunctionCall","src":"16579:33:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16569:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"16655:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16664:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16667:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16657:6:89"},"nodeType":"YulFunctionCall","src":"16657:12:89"},"nodeType":"YulExpressionStatement","src":"16657:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"16627:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"16635:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16624:2:89"},"nodeType":"YulFunctionCall","src":"16624:30:89"},"nodeType":"YulIf","src":"16621:50:89"},{"nodeType":"YulAssignment","src":"16680:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16711:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"16722:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16707:3:89"},"nodeType":"YulFunctionCall","src":"16707:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"16731:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"16690:16:89"},"nodeType":"YulFunctionCall","src":"16690:49:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"16680:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16092:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16103:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16115:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16123:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16131:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16139:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16147:6:89","type":""}],"src":"16011:734:89"},{"body":{"nodeType":"YulBlock","src":"16866:102:89","statements":[{"nodeType":"YulAssignment","src":"16876:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16888:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16899:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16884:3:89"},"nodeType":"YulFunctionCall","src":"16884:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16876:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16918:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16933:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16949:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16954:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16945:3:89"},"nodeType":"YulFunctionCall","src":"16945:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16958:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16941:3:89"},"nodeType":"YulFunctionCall","src":"16941:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16929:3:89"},"nodeType":"YulFunctionCall","src":"16929:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16911:6:89"},"nodeType":"YulFunctionCall","src":"16911:51:89"},"nodeType":"YulExpressionStatement","src":"16911:51:89"}]},"name":"abi_encode_tuple_t_contract$_IVotes_$9304__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16835:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16846:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16857:4:89","type":""}],"src":"16750:218:89"},{"body":{"nodeType":"YulBlock","src":"17120:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17143:3:89"},{"name":"value0","nodeType":"YulIdentifier","src":"17148:6:89"},{"name":"value1","nodeType":"YulIdentifier","src":"17156:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"17130:12:89"},"nodeType":"YulFunctionCall","src":"17130:33:89"},"nodeType":"YulExpressionStatement","src":"17130:33:89"},{"nodeType":"YulVariableDeclaration","src":"17172:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"17186:3:89"},{"name":"value1","nodeType":"YulIdentifier","src":"17191:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17182:3:89"},"nodeType":"YulFunctionCall","src":"17182:16:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"17176:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"17214:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"17218:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17207:6:89"},"nodeType":"YulFunctionCall","src":"17207:13:89"},"nodeType":"YulExpressionStatement","src":"17207:13:89"},{"nodeType":"YulAssignment","src":"17229:9:89","value":{"name":"_1","nodeType":"YulIdentifier","src":"17236:2:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"17229:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"17088:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17093:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17101:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"17112:3:89","type":""}],"src":"16973:271:89"},{"body":{"nodeType":"YulBlock","src":"17458:261:89","statements":[{"nodeType":"YulAssignment","src":"17468:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17480:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17491:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17476:3:89"},"nodeType":"YulFunctionCall","src":"17476:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17468:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17511:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"17522:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17504:6:89"},"nodeType":"YulFunctionCall","src":"17504:25:89"},"nodeType":"YulExpressionStatement","src":"17504:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17549:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17560:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17545:3:89"},"nodeType":"YulFunctionCall","src":"17545:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"17565:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17538:6:89"},"nodeType":"YulFunctionCall","src":"17538:34:89"},"nodeType":"YulExpressionStatement","src":"17538:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17592:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17603:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17588:3:89"},"nodeType":"YulFunctionCall","src":"17588:18:89"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"17612:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"17620:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"17608:3:89"},"nodeType":"YulFunctionCall","src":"17608:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17581:6:89"},"nodeType":"YulFunctionCall","src":"17581:45:89"},"nodeType":"YulExpressionStatement","src":"17581:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17646:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17657:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17642:3:89"},"nodeType":"YulFunctionCall","src":"17642:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"17662:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17635:6:89"},"nodeType":"YulFunctionCall","src":"17635:34:89"},"nodeType":"YulExpressionStatement","src":"17635:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17689:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17700:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17685:3:89"},"nodeType":"YulFunctionCall","src":"17685:19:89"},{"name":"value4","nodeType":"YulIdentifier","src":"17706:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17678:6:89"},"nodeType":"YulFunctionCall","src":"17678:35:89"},"nodeType":"YulExpressionStatement","src":"17678:35:89"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17395:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"17406:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17414:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17422:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17430:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17438:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17449:4:89","type":""}],"src":"17249:470:89"},{"body":{"nodeType":"YulBlock","src":"17898:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17915:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17926:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17908:6:89"},"nodeType":"YulFunctionCall","src":"17908:21:89"},"nodeType":"YulExpressionStatement","src":"17908:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:89"},"nodeType":"YulFunctionCall","src":"17945:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17965:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17938:6:89"},"nodeType":"YulFunctionCall","src":"17938:30:89"},"nodeType":"YulExpressionStatement","src":"17938:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17988:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17999:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17984:3:89"},"nodeType":"YulFunctionCall","src":"17984:18:89"},{"hexValue":"476f7665726e6f723a206f6e6c79476f7665726e616e6365","kind":"string","nodeType":"YulLiteral","src":"18004:26:89","type":"","value":"Governor: onlyGovernance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17977:6:89"},"nodeType":"YulFunctionCall","src":"17977:54:89"},"nodeType":"YulExpressionStatement","src":"17977:54:89"},{"nodeType":"YulAssignment","src":"18040:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18052:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18063:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18048:3:89"},"nodeType":"YulFunctionCall","src":"18048:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18040:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17875:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17889:4:89","type":""}],"src":"17724:348:89"},{"body":{"nodeType":"YulBlock","src":"18132:325:89","statements":[{"nodeType":"YulAssignment","src":"18142:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18156:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"18159:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"18152:3:89"},"nodeType":"YulFunctionCall","src":"18152:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18142:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"18173:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"18203:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"18209:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18199:3:89"},"nodeType":"YulFunctionCall","src":"18199:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"18177:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"18250:31:89","statements":[{"nodeType":"YulAssignment","src":"18252:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18266:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"18274:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18262:3:89"},"nodeType":"YulFunctionCall","src":"18262:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"18252:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18230:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18223:6:89"},"nodeType":"YulFunctionCall","src":"18223:26:89"},"nodeType":"YulIf","src":"18220:61:89"},{"body":{"nodeType":"YulBlock","src":"18340:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18361:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18368:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18373:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18364:3:89"},"nodeType":"YulFunctionCall","src":"18364:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18354:6:89"},"nodeType":"YulFunctionCall","src":"18354:31:89"},"nodeType":"YulExpressionStatement","src":"18354:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18405:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18408:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18398:6:89"},"nodeType":"YulFunctionCall","src":"18398:15:89"},"nodeType":"YulExpressionStatement","src":"18398:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18433:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18436:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18426:6:89"},"nodeType":"YulFunctionCall","src":"18426:15:89"},"nodeType":"YulExpressionStatement","src":"18426:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"18296:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18319:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"18327:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18316:2:89"},"nodeType":"YulFunctionCall","src":"18316:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"18293:2:89"},"nodeType":"YulFunctionCall","src":"18293:38:89"},"nodeType":"YulIf","src":"18290:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"18112:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"18121:6:89","type":""}],"src":"18077:380:89"},{"body":{"nodeType":"YulBlock","src":"18636:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18653:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18664:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18646:6:89"},"nodeType":"YulFunctionCall","src":"18646:21:89"},"nodeType":"YulExpressionStatement","src":"18646:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18687:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18698:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18683:3:89"},"nodeType":"YulFunctionCall","src":"18683:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"18703:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18676:6:89"},"nodeType":"YulFunctionCall","src":"18676:30:89"},"nodeType":"YulExpressionStatement","src":"18676:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18726:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18737:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18722:3:89"},"nodeType":"YulFunctionCall","src":"18722:18:89"},{"hexValue":"476f7665726e6f723a2070726f706f73616c206e6f7420737563636573736675","kind":"string","nodeType":"YulLiteral","src":"18742:34:89","type":"","value":"Governor: proposal not successfu"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18715:6:89"},"nodeType":"YulFunctionCall","src":"18715:62:89"},"nodeType":"YulExpressionStatement","src":"18715:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18797:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18808:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18793:3:89"},"nodeType":"YulFunctionCall","src":"18793:18:89"},{"hexValue":"6c","kind":"string","nodeType":"YulLiteral","src":"18813:3:89","type":"","value":"l"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18786:6:89"},"nodeType":"YulFunctionCall","src":"18786:31:89"},"nodeType":"YulExpressionStatement","src":"18786:31:89"},{"nodeType":"YulAssignment","src":"18826:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18838:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18849:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18834:3:89"},"nodeType":"YulFunctionCall","src":"18834:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18826:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18613:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18627:4:89","type":""}],"src":"18462:397:89"},{"body":{"nodeType":"YulBlock","src":"18945:103:89","statements":[{"body":{"nodeType":"YulBlock","src":"18991:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19000:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19003:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18993:6:89"},"nodeType":"YulFunctionCall","src":"18993:12:89"},"nodeType":"YulExpressionStatement","src":"18993:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"18966:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"18975:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18962:3:89"},"nodeType":"YulFunctionCall","src":"18962:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"18987:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18958:3:89"},"nodeType":"YulFunctionCall","src":"18958:32:89"},"nodeType":"YulIf","src":"18955:52:89"},{"nodeType":"YulAssignment","src":"19016:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19032:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19026:5:89"},"nodeType":"YulFunctionCall","src":"19026:16:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"19016:6:89"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18911:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"18922:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"18934:6:89","type":""}],"src":"18864:184:89"},{"body":{"nodeType":"YulBlock","src":"19114:400:89","statements":[{"nodeType":"YulVariableDeclaration","src":"19124:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19144:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19138:5:89"},"nodeType":"YulFunctionCall","src":"19138:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19128:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19166:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"19171:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19159:6:89"},"nodeType":"YulFunctionCall","src":"19159:19:89"},"nodeType":"YulExpressionStatement","src":"19159:19:89"},{"nodeType":"YulVariableDeclaration","src":"19187:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"19197:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19191:2:89","type":""}]},{"nodeType":"YulAssignment","src":"19210:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19221:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19226:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19217:3:89"},"nodeType":"YulFunctionCall","src":"19217:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19210:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"19238:28:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19256:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19263:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19252:3:89"},"nodeType":"YulFunctionCall","src":"19252:14:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"19242:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19275:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"19284:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19279:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"19343:146:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19364:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19379:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19373:5:89"},"nodeType":"YulFunctionCall","src":"19373:13:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19396:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19401:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19392:3:89"},"nodeType":"YulFunctionCall","src":"19392:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"19405:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19388:3:89"},"nodeType":"YulFunctionCall","src":"19388:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19369:3:89"},"nodeType":"YulFunctionCall","src":"19369:39:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19357:6:89"},"nodeType":"YulFunctionCall","src":"19357:52:89"},"nodeType":"YulExpressionStatement","src":"19357:52:89"},{"nodeType":"YulAssignment","src":"19422:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19433:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19438:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19429:3:89"},"nodeType":"YulFunctionCall","src":"19429:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19422:3:89"}]},{"nodeType":"YulAssignment","src":"19454:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19468:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19476:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19464:3:89"},"nodeType":"YulFunctionCall","src":"19464:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19454:6:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19305:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"19308:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19302:2:89"},"nodeType":"YulFunctionCall","src":"19302:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19316:18:89","statements":[{"nodeType":"YulAssignment","src":"19318:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19327:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"19330:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19323:3:89"},"nodeType":"YulFunctionCall","src":"19323:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19318:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"19298:3:89","statements":[]},"src":"19294:195:89"},{"nodeType":"YulAssignment","src":"19498:10:89","value":{"name":"pos","nodeType":"YulIdentifier","src":"19505:3:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19498:3:89"}]}]},"name":"abi_encode_array_address_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19091:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"19098:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19106:3:89","type":""}],"src":"19053:461:89"},{"body":{"nodeType":"YulBlock","src":"19580:374:89","statements":[{"nodeType":"YulVariableDeclaration","src":"19590:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19610:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19604:5:89"},"nodeType":"YulFunctionCall","src":"19604:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19594:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19632:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"19637:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19625:6:89"},"nodeType":"YulFunctionCall","src":"19625:19:89"},"nodeType":"YulExpressionStatement","src":"19625:19:89"},{"nodeType":"YulVariableDeclaration","src":"19653:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"19663:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19657:2:89","type":""}]},{"nodeType":"YulAssignment","src":"19676:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19687:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19692:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19683:3:89"},"nodeType":"YulFunctionCall","src":"19683:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19676:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"19704:28:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19722:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19729:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19718:3:89"},"nodeType":"YulFunctionCall","src":"19718:14:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"19708:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19741:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"19750:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19745:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"19809:120:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19830:3:89"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19841:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19835:5:89"},"nodeType":"YulFunctionCall","src":"19835:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19823:6:89"},"nodeType":"YulFunctionCall","src":"19823:26:89"},"nodeType":"YulExpressionStatement","src":"19823:26:89"},{"nodeType":"YulAssignment","src":"19862:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19873:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19878:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19869:3:89"},"nodeType":"YulFunctionCall","src":"19869:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"19862:3:89"}]},{"nodeType":"YulAssignment","src":"19894:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19908:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"19916:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19904:3:89"},"nodeType":"YulFunctionCall","src":"19904:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"19894:6:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19771:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"19774:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19768:2:89"},"nodeType":"YulFunctionCall","src":"19768:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19782:18:89","statements":[{"nodeType":"YulAssignment","src":"19784:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19793:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"19796:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19789:3:89"},"nodeType":"YulFunctionCall","src":"19789:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19784:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"19764:3:89","statements":[]},"src":"19760:169:89"},{"nodeType":"YulAssignment","src":"19938:10:89","value":{"name":"pos","nodeType":"YulIdentifier","src":"19945:3:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19938:3:89"}]}]},"name":"abi_encode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19557:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"19564:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19572:3:89","type":""}],"src":"19519:435:89"},{"body":{"nodeType":"YulBlock","src":"20018:556:89","statements":[{"nodeType":"YulVariableDeclaration","src":"20028:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20048:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20042:5:89"},"nodeType":"YulFunctionCall","src":"20042:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"20032:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20070:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"20075:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20063:6:89"},"nodeType":"YulFunctionCall","src":"20063:19:89"},"nodeType":"YulExpressionStatement","src":"20063:19:89"},{"nodeType":"YulVariableDeclaration","src":"20091:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"20101:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20095:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20114:31:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20137:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"20142:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20133:3:89"},"nodeType":"YulFunctionCall","src":"20133:12:89"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"20118:11:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20154:24:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"20167:11:89"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"20158:5:89","type":""}]},{"nodeType":"YulAssignment","src":"20187:18:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"20194:11:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"20187:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"20214:38:89","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"20230:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20241:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"20244:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20237:3:89"},"nodeType":"YulFunctionCall","src":"20237:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20226:3:89"},"nodeType":"YulFunctionCall","src":"20226:26:89"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"20218:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20261:28:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20279:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"20286:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20275:3:89"},"nodeType":"YulFunctionCall","src":"20275:14:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"20265:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20298:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"20307:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"20302:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"20366:182:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20387:3:89"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"20396:4:89"},{"name":"pos_1","nodeType":"YulIdentifier","src":"20402:5:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20392:3:89"},"nodeType":"YulFunctionCall","src":"20392:16:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20380:6:89"},"nodeType":"YulFunctionCall","src":"20380:29:89"},"nodeType":"YulExpressionStatement","src":"20380:29:89"},{"nodeType":"YulAssignment","src":"20422:46:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"20454:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20448:5:89"},"nodeType":"YulFunctionCall","src":"20448:13:89"},{"name":"tail","nodeType":"YulIdentifier","src":"20463:4:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"20430:17:89"},"nodeType":"YulFunctionCall","src":"20430:38:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20422:4:89"}]},{"nodeType":"YulAssignment","src":"20481:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"20495:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"20503:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20491:3:89"},"nodeType":"YulFunctionCall","src":"20491:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"20481:6:89"}]},{"nodeType":"YulAssignment","src":"20519:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"20530:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"20535:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20526:3:89"},"nodeType":"YulFunctionCall","src":"20526:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"20519:3:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"20328:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"20331:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20325:2:89"},"nodeType":"YulFunctionCall","src":"20325:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"20339:18:89","statements":[{"nodeType":"YulAssignment","src":"20341:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"20350:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"20353:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20346:3:89"},"nodeType":"YulFunctionCall","src":"20346:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"20341:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"20321:3:89","statements":[]},"src":"20317:231:89"},{"nodeType":"YulAssignment","src":"20557:11:89","value":{"name":"tail","nodeType":"YulIdentifier","src":"20564:4:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"20557:3:89"}]}]},"name":"abi_encode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19995:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"20002:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"20010:3:89","type":""}],"src":"19959:615:89"},{"body":{"nodeType":"YulBlock","src":"20968:449:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20985:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20996:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20978:6:89"},"nodeType":"YulFunctionCall","src":"20978:22:89"},"nodeType":"YulExpressionStatement","src":"20978:22:89"},{"nodeType":"YulVariableDeclaration","src":"21009:71:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21052:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21064:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21075:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21060:3:89"},"nodeType":"YulFunctionCall","src":"21060:19:89"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"21023:28:89"},"nodeType":"YulFunctionCall","src":"21023:57:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"21013:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21100:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21111:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21096:3:89"},"nodeType":"YulFunctionCall","src":"21096:18:89"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"21120:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"21128:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21116:3:89"},"nodeType":"YulFunctionCall","src":"21116:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21089:6:89"},"nodeType":"YulFunctionCall","src":"21089:50:89"},"nodeType":"YulExpressionStatement","src":"21089:50:89"},{"nodeType":"YulVariableDeclaration","src":"21148:58:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"21191:6:89"},{"name":"tail_1","nodeType":"YulIdentifier","src":"21199:6:89"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"21162:28:89"},"nodeType":"YulFunctionCall","src":"21162:44:89"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"21152:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21226:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21237:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21222:3:89"},"nodeType":"YulFunctionCall","src":"21222:18:89"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"21246:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"21254:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21242:3:89"},"nodeType":"YulFunctionCall","src":"21242:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21215:6:89"},"nodeType":"YulFunctionCall","src":"21215:50:89"},"nodeType":"YulExpressionStatement","src":"21215:50:89"},{"nodeType":"YulAssignment","src":"21274:50:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"21309:6:89"},{"name":"tail_2","nodeType":"YulIdentifier","src":"21317:6:89"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"21282:26:89"},"nodeType":"YulFunctionCall","src":"21282:42:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21274:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21344:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21355:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21340:3:89"},"nodeType":"YulFunctionCall","src":"21340:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"21360:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21333:6:89"},"nodeType":"YulFunctionCall","src":"21333:34:89"},"nodeType":"YulExpressionStatement","src":"21333:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21387:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21398:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21383:3:89"},"nodeType":"YulFunctionCall","src":"21383:19:89"},{"name":"value4","nodeType":"YulIdentifier","src":"21404:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21376:6:89"},"nodeType":"YulFunctionCall","src":"21376:35:89"},"nodeType":"YulExpressionStatement","src":"21376:35:89"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20905:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20916:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20924:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20932:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20940:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20948:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20959:4:89","type":""}],"src":"20579:838:89"},{"body":{"nodeType":"YulBlock","src":"21503:103:89","statements":[{"body":{"nodeType":"YulBlock","src":"21549:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21558:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21561:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21551:6:89"},"nodeType":"YulFunctionCall","src":"21551:12:89"},"nodeType":"YulExpressionStatement","src":"21551:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"21524:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"21533:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21520:3:89"},"nodeType":"YulFunctionCall","src":"21520:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"21545:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"21516:3:89"},"nodeType":"YulFunctionCall","src":"21516:32:89"},"nodeType":"YulIf","src":"21513:52:89"},{"nodeType":"YulAssignment","src":"21574:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21590:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21584:5:89"},"nodeType":"YulFunctionCall","src":"21584:16:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21574:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21469:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"21480:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"21492:6:89","type":""}],"src":"21422:184:89"},{"body":{"nodeType":"YulBlock","src":"22028:493:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22045:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22056:3:89","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22038:6:89"},"nodeType":"YulFunctionCall","src":"22038:22:89"},"nodeType":"YulExpressionStatement","src":"22038:22:89"},{"nodeType":"YulVariableDeclaration","src":"22069:71:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22112:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22124:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22135:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22120:3:89"},"nodeType":"YulFunctionCall","src":"22120:19:89"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"22083:28:89"},"nodeType":"YulFunctionCall","src":"22083:57:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22073:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22160:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22171:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22156:3:89"},"nodeType":"YulFunctionCall","src":"22156:18:89"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"22180:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"22188:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22176:3:89"},"nodeType":"YulFunctionCall","src":"22176:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22149:6:89"},"nodeType":"YulFunctionCall","src":"22149:50:89"},"nodeType":"YulExpressionStatement","src":"22149:50:89"},{"nodeType":"YulVariableDeclaration","src":"22208:58:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22251:6:89"},{"name":"tail_1","nodeType":"YulIdentifier","src":"22259:6:89"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"22222:28:89"},"nodeType":"YulFunctionCall","src":"22222:44:89"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"22212:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22286:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22297:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22282:3:89"},"nodeType":"YulFunctionCall","src":"22282:18:89"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"22306:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"22314:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22302:3:89"},"nodeType":"YulFunctionCall","src":"22302:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22275:6:89"},"nodeType":"YulFunctionCall","src":"22275:50:89"},"nodeType":"YulExpressionStatement","src":"22275:50:89"},{"nodeType":"YulAssignment","src":"22334:50:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22369:6:89"},{"name":"tail_2","nodeType":"YulIdentifier","src":"22377:6:89"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"22342:26:89"},"nodeType":"YulFunctionCall","src":"22342:42:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22334:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22404:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22415:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22400:3:89"},"nodeType":"YulFunctionCall","src":"22400:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"22420:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22393:6:89"},"nodeType":"YulFunctionCall","src":"22393:34:89"},"nodeType":"YulExpressionStatement","src":"22393:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22447:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22458:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22443:3:89"},"nodeType":"YulFunctionCall","src":"22443:19:89"},{"name":"value4","nodeType":"YulIdentifier","src":"22464:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22436:6:89"},"nodeType":"YulFunctionCall","src":"22436:35:89"},"nodeType":"YulExpressionStatement","src":"22436:35:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22491:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22502:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22487:3:89"},"nodeType":"YulFunctionCall","src":"22487:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"22508:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22480:6:89"},"nodeType":"YulFunctionCall","src":"22480:35:89"},"nodeType":"YulExpressionStatement","src":"22480:35:89"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32_t_uint256__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21957:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"21968:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"21976:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"21984:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"21992:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22000:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22008:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22019:4:89","type":""}],"src":"21611:910:89"},{"body":{"nodeType":"YulBlock","src":"22558:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22575:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22582:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22587:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22578:3:89"},"nodeType":"YulFunctionCall","src":"22578:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22568:6:89"},"nodeType":"YulFunctionCall","src":"22568:31:89"},"nodeType":"YulExpressionStatement","src":"22568:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22615:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22618:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22608:6:89"},"nodeType":"YulFunctionCall","src":"22608:15:89"},"nodeType":"YulExpressionStatement","src":"22608:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22639:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22642:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22632:6:89"},"nodeType":"YulFunctionCall","src":"22632:15:89"},"nodeType":"YulExpressionStatement","src":"22632:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22526:127:89"},{"body":{"nodeType":"YulBlock","src":"22706:77:89","statements":[{"nodeType":"YulAssignment","src":"22716:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22727:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"22730:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22723:3:89"},"nodeType":"YulFunctionCall","src":"22723:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"22716:3:89"}]},{"body":{"nodeType":"YulBlock","src":"22755:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22757:16:89"},"nodeType":"YulFunctionCall","src":"22757:18:89"},"nodeType":"YulExpressionStatement","src":"22757:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22747:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"22750:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22744:2:89"},"nodeType":"YulFunctionCall","src":"22744:10:89"},"nodeType":"YulIf","src":"22741:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22689:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"22692:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"22698:3:89","type":""}],"src":"22658:125:89"},{"body":{"nodeType":"YulBlock","src":"22917:119:89","statements":[{"nodeType":"YulAssignment","src":"22927:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22939:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22950:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22935:3:89"},"nodeType":"YulFunctionCall","src":"22935:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22927:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22969:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"22980:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22962:6:89"},"nodeType":"YulFunctionCall","src":"22962:25:89"},"nodeType":"YulExpressionStatement","src":"22962:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23007:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"23018:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23003:3:89"},"nodeType":"YulFunctionCall","src":"23003:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"23023:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22996:6:89"},"nodeType":"YulFunctionCall","src":"22996:34:89"},"nodeType":"YulExpressionStatement","src":"22996:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22878:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22889:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22897:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22908:4:89","type":""}],"src":"22788:248:89"},{"body":{"nodeType":"YulBlock","src":"23194:173:89","statements":[{"nodeType":"YulAssignment","src":"23204:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23216:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"23227:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23212:3:89"},"nodeType":"YulFunctionCall","src":"23212:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23204:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23246:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"23257:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23239:6:89"},"nodeType":"YulFunctionCall","src":"23239:25:89"},"nodeType":"YulExpressionStatement","src":"23239:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23284:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"23295:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23280:3:89"},"nodeType":"YulFunctionCall","src":"23280:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"23300:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23273:6:89"},"nodeType":"YulFunctionCall","src":"23273:34:89"},"nodeType":"YulExpressionStatement","src":"23273:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23327:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"23338:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23323:3:89"},"nodeType":"YulFunctionCall","src":"23323:18:89"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"23347:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"23355:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23343:3:89"},"nodeType":"YulFunctionCall","src":"23343:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23316:6:89"},"nodeType":"YulFunctionCall","src":"23316:45:89"},"nodeType":"YulExpressionStatement","src":"23316:45:89"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23147:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23158:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23166:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23174:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23185:4:89","type":""}],"src":"23041:326:89"},{"body":{"nodeType":"YulBlock","src":"23421:79:89","statements":[{"nodeType":"YulAssignment","src":"23431:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23443:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"23446:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23439:3:89"},"nodeType":"YulFunctionCall","src":"23439:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"23431:4:89"}]},{"body":{"nodeType":"YulBlock","src":"23472:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23474:16:89"},"nodeType":"YulFunctionCall","src":"23474:18:89"},"nodeType":"YulExpressionStatement","src":"23474:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"23463:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"23469:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23460:2:89"},"nodeType":"YulFunctionCall","src":"23460:11:89"},"nodeType":"YulIf","src":"23457:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23403:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"23406:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"23412:4:89","type":""}],"src":"23372:128:89"},{"body":{"nodeType":"YulBlock","src":"23537:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23554:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23561:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23566:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23557:3:89"},"nodeType":"YulFunctionCall","src":"23557:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23547:6:89"},"nodeType":"YulFunctionCall","src":"23547:31:89"},"nodeType":"YulExpressionStatement","src":"23547:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23594:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23597:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23587:6:89"},"nodeType":"YulFunctionCall","src":"23587:15:89"},"nodeType":"YulExpressionStatement","src":"23587:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23618:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23621:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23611:6:89"},"nodeType":"YulFunctionCall","src":"23611:15:89"},"nodeType":"YulExpressionStatement","src":"23611:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"23505:127:89"},{"body":{"nodeType":"YulBlock","src":"23990:405:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24007:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24018:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24000:6:89"},"nodeType":"YulFunctionCall","src":"24000:22:89"},"nodeType":"YulExpressionStatement","src":"24000:22:89"},{"nodeType":"YulVariableDeclaration","src":"24031:71:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24074:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24086:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24097:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24082:3:89"},"nodeType":"YulFunctionCall","src":"24082:19:89"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"24045:28:89"},"nodeType":"YulFunctionCall","src":"24045:57:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"24035:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24122:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24133:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24118:3:89"},"nodeType":"YulFunctionCall","src":"24118:18:89"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"24142:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"24150:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24138:3:89"},"nodeType":"YulFunctionCall","src":"24138:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24111:6:89"},"nodeType":"YulFunctionCall","src":"24111:50:89"},"nodeType":"YulExpressionStatement","src":"24111:50:89"},{"nodeType":"YulVariableDeclaration","src":"24170:58:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24213:6:89"},{"name":"tail_1","nodeType":"YulIdentifier","src":"24221:6:89"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"24184:28:89"},"nodeType":"YulFunctionCall","src":"24184:44:89"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"24174:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24248:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24259:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24244:3:89"},"nodeType":"YulFunctionCall","src":"24244:18:89"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"24268:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"24276:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24264:3:89"},"nodeType":"YulFunctionCall","src":"24264:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24237:6:89"},"nodeType":"YulFunctionCall","src":"24237:50:89"},"nodeType":"YulExpressionStatement","src":"24237:50:89"},{"nodeType":"YulAssignment","src":"24296:50:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"24331:6:89"},{"name":"tail_2","nodeType":"YulIdentifier","src":"24339:6:89"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"24304:26:89"},"nodeType":"YulFunctionCall","src":"24304:42:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24296:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24366:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24377:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24362:3:89"},"nodeType":"YulFunctionCall","src":"24362:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"24382:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24355:6:89"},"nodeType":"YulFunctionCall","src":"24355:34:89"},"nodeType":"YulExpressionStatement","src":"24355:34:89"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23935:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"23946:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"23954:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23962:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23970:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23981:4:89","type":""}],"src":"23637:758:89"},{"body":{"nodeType":"YulBlock","src":"24574:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24591:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24602:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24584:6:89"},"nodeType":"YulFunctionCall","src":"24584:21:89"},"nodeType":"YulExpressionStatement","src":"24584:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24625:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24636:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24621:3:89"},"nodeType":"YulFunctionCall","src":"24621:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"24641:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24614:6:89"},"nodeType":"YulFunctionCall","src":"24614:30:89"},"nodeType":"YulExpressionStatement","src":"24614:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24664:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24675:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24660:3:89"},"nodeType":"YulFunctionCall","src":"24660:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"24680:34:89","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24653:6:89"},"nodeType":"YulFunctionCall","src":"24653:62:89"},"nodeType":"YulExpressionStatement","src":"24653:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24735:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24746:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24731:3:89"},"nodeType":"YulFunctionCall","src":"24731:18:89"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"24751:9:89","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24724:6:89"},"nodeType":"YulFunctionCall","src":"24724:37:89"},"nodeType":"YulExpressionStatement","src":"24724:37:89"},{"nodeType":"YulAssignment","src":"24770:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24782:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"24793:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24778:3:89"},"nodeType":"YulFunctionCall","src":"24778:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24770:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24551:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24565:4:89","type":""}],"src":"24400:403:89"},{"body":{"nodeType":"YulBlock","src":"24982:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24999:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25010:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24992:6:89"},"nodeType":"YulFunctionCall","src":"24992:21:89"},"nodeType":"YulExpressionStatement","src":"24992:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25033:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25044:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25029:3:89"},"nodeType":"YulFunctionCall","src":"25029:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"25049:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25022:6:89"},"nodeType":"YulFunctionCall","src":"25022:30:89"},"nodeType":"YulExpressionStatement","src":"25022:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25072:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25083:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25068:3:89"},"nodeType":"YulFunctionCall","src":"25068:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"25088:34:89","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25061:6:89"},"nodeType":"YulFunctionCall","src":"25061:62:89"},"nodeType":"YulExpressionStatement","src":"25061:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25143:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25154:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25139:3:89"},"nodeType":"YulFunctionCall","src":"25139:18:89"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"25159:8:89","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25132:6:89"},"nodeType":"YulFunctionCall","src":"25132:36:89"},"nodeType":"YulExpressionStatement","src":"25132:36:89"},{"nodeType":"YulAssignment","src":"25177:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25189:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25200:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25185:3:89"},"nodeType":"YulFunctionCall","src":"25185:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25177:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24959:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24973:4:89","type":""}],"src":"24808:402:89"},{"body":{"nodeType":"YulBlock","src":"25389:225:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25406:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25417:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25399:6:89"},"nodeType":"YulFunctionCall","src":"25399:21:89"},"nodeType":"YulExpressionStatement","src":"25399:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25440:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25451:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25436:3:89"},"nodeType":"YulFunctionCall","src":"25436:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"25456:2:89","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25429:6:89"},"nodeType":"YulFunctionCall","src":"25429:30:89"},"nodeType":"YulExpressionStatement","src":"25429:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25479:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25490:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25475:3:89"},"nodeType":"YulFunctionCall","src":"25475:18:89"},{"hexValue":"476f7665726e6f723a20766f7465206e6f742063757272656e746c7920616374","kind":"string","nodeType":"YulLiteral","src":"25495:34:89","type":"","value":"Governor: vote not currently act"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25468:6:89"},"nodeType":"YulFunctionCall","src":"25468:62:89"},"nodeType":"YulExpressionStatement","src":"25468:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25550:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25561:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25546:3:89"},"nodeType":"YulFunctionCall","src":"25546:18:89"},{"hexValue":"697665","kind":"string","nodeType":"YulLiteral","src":"25566:5:89","type":"","value":"ive"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25539:6:89"},"nodeType":"YulFunctionCall","src":"25539:33:89"},"nodeType":"YulExpressionStatement","src":"25539:33:89"},{"nodeType":"YulAssignment","src":"25581:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25593:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25604:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25589:3:89"},"nodeType":"YulFunctionCall","src":"25589:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25581:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25366:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25380:4:89","type":""}],"src":"25215:399:89"},{"body":{"nodeType":"YulBlock","src":"25820:241:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25837:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"25848:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25830:6:89"},"nodeType":"YulFunctionCall","src":"25830:25:89"},"nodeType":"YulExpressionStatement","src":"25830:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25875:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25886:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25871:3:89"},"nodeType":"YulFunctionCall","src":"25871:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25895:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"25903:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25891:3:89"},"nodeType":"YulFunctionCall","src":"25891:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25864:6:89"},"nodeType":"YulFunctionCall","src":"25864:45:89"},"nodeType":"YulExpressionStatement","src":"25864:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25929:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25940:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25925:3:89"},"nodeType":"YulFunctionCall","src":"25925:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"25945:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25918:6:89"},"nodeType":"YulFunctionCall","src":"25918:34:89"},"nodeType":"YulExpressionStatement","src":"25918:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25972:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"25983:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25968:3:89"},"nodeType":"YulFunctionCall","src":"25968:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"25988:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25961:6:89"},"nodeType":"YulFunctionCall","src":"25961:31:89"},"nodeType":"YulExpressionStatement","src":"25961:31:89"},{"nodeType":"YulAssignment","src":"26001:54:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"26027:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26039:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26050:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26035:3:89"},"nodeType":"YulFunctionCall","src":"26035:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"26009:17:89"},"nodeType":"YulFunctionCall","src":"26009:46:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26001:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25765:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25776:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25784:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25792:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25800:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25811:4:89","type":""}],"src":"25619:442:89"},{"body":{"nodeType":"YulBlock","src":"26313:357:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26330:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"26341:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26323:6:89"},"nodeType":"YulFunctionCall","src":"26323:25:89"},"nodeType":"YulExpressionStatement","src":"26323:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26368:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26379:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26364:3:89"},"nodeType":"YulFunctionCall","src":"26364:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"26388:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"26396:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26384:3:89"},"nodeType":"YulFunctionCall","src":"26384:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26357:6:89"},"nodeType":"YulFunctionCall","src":"26357:45:89"},"nodeType":"YulExpressionStatement","src":"26357:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26422:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26433:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26418:3:89"},"nodeType":"YulFunctionCall","src":"26418:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"26438:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26411:6:89"},"nodeType":"YulFunctionCall","src":"26411:34:89"},"nodeType":"YulExpressionStatement","src":"26411:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26465:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26476:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26461:3:89"},"nodeType":"YulFunctionCall","src":"26461:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"26481:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26454:6:89"},"nodeType":"YulFunctionCall","src":"26454:31:89"},"nodeType":"YulExpressionStatement","src":"26454:31:89"},{"nodeType":"YulVariableDeclaration","src":"26494:60:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"26526:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26538:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26549:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26534:3:89"},"nodeType":"YulFunctionCall","src":"26534:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"26508:17:89"},"nodeType":"YulFunctionCall","src":"26508:46:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"26498:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26574:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26585:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26570:3:89"},"nodeType":"YulFunctionCall","src":"26570:19:89"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"26595:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"26603:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26591:3:89"},"nodeType":"YulFunctionCall","src":"26591:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26563:6:89"},"nodeType":"YulFunctionCall","src":"26563:51:89"},"nodeType":"YulExpressionStatement","src":"26563:51:89"},{"nodeType":"YulAssignment","src":"26623:41:89","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"26649:6:89"},{"name":"tail_1","nodeType":"YulIdentifier","src":"26657:6:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"26631:17:89"},"nodeType":"YulFunctionCall","src":"26631:33:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26623:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26250:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"26261:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"26269:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"26277:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"26285:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"26293:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26304:4:89","type":""}],"src":"26066:604:89"},{"body":{"nodeType":"YulBlock","src":"26849:297:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26866:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26877:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26859:6:89"},"nodeType":"YulFunctionCall","src":"26859:21:89"},"nodeType":"YulExpressionStatement","src":"26859:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26900:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26911:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26896:3:89"},"nodeType":"YulFunctionCall","src":"26896:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"26916:2:89","type":"","value":"67"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26889:6:89"},"nodeType":"YulFunctionCall","src":"26889:30:89"},"nodeType":"YulExpressionStatement","src":"26889:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26939:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"26950:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26935:3:89"},"nodeType":"YulFunctionCall","src":"26935:18:89"},{"hexValue":"476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f","kind":"string","nodeType":"YulLiteral","src":"26955:34:89","type":"","value":"GovernorVotesQuorumFraction: quo"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26928:6:89"},"nodeType":"YulFunctionCall","src":"26928:62:89"},"nodeType":"YulExpressionStatement","src":"26928:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27010:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27021:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27006:3:89"},"nodeType":"YulFunctionCall","src":"27006:18:89"},{"hexValue":"72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e61","kind":"string","nodeType":"YulLiteral","src":"27026:34:89","type":"","value":"rumNumerator over quorumDenomina"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26999:6:89"},"nodeType":"YulFunctionCall","src":"26999:62:89"},"nodeType":"YulExpressionStatement","src":"26999:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27081:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27092:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27077:3:89"},"nodeType":"YulFunctionCall","src":"27077:19:89"},{"hexValue":"746f72","kind":"string","nodeType":"YulLiteral","src":"27098:5:89","type":"","value":"tor"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27070:6:89"},"nodeType":"YulFunctionCall","src":"27070:34:89"},"nodeType":"YulExpressionStatement","src":"27070:34:89"},{"nodeType":"YulAssignment","src":"27113:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27136:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27121:3:89"},"nodeType":"YulFunctionCall","src":"27121:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27113:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26826:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26840:4:89","type":""}],"src":"26675:471:89"},{"body":{"nodeType":"YulBlock","src":"27198:88:89","statements":[{"body":{"nodeType":"YulBlock","src":"27229:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"27231:16:89"},"nodeType":"YulFunctionCall","src":"27231:18:89"},"nodeType":"YulExpressionStatement","src":"27231:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27214:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27225:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27221:3:89"},"nodeType":"YulFunctionCall","src":"27221:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27211:2:89"},"nodeType":"YulFunctionCall","src":"27211:17:89"},"nodeType":"YulIf","src":"27208:43:89"},{"nodeType":"YulAssignment","src":"27260:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27271:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"27278:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27267:3:89"},"nodeType":"YulFunctionCall","src":"27267:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"27260:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27180:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"27190:3:89","type":""}],"src":"27151:135:89"},{"body":{"nodeType":"YulBlock","src":"27369:199:89","statements":[{"body":{"nodeType":"YulBlock","src":"27415:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27424:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27427:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27417:6:89"},"nodeType":"YulFunctionCall","src":"27417:12:89"},"nodeType":"YulExpressionStatement","src":"27417:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"27390:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"27399:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27386:3:89"},"nodeType":"YulFunctionCall","src":"27386:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"27411:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"27382:3:89"},"nodeType":"YulFunctionCall","src":"27382:32:89"},"nodeType":"YulIf","src":"27379:52:89"},{"nodeType":"YulVariableDeclaration","src":"27440:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27459:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"27453:5:89"},"nodeType":"YulFunctionCall","src":"27453:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"27444:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"27522:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27531:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27534:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27524:6:89"},"nodeType":"YulFunctionCall","src":"27524:12:89"},"nodeType":"YulExpressionStatement","src":"27524:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27491:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27512:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27505:6:89"},"nodeType":"YulFunctionCall","src":"27505:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27498:6:89"},"nodeType":"YulFunctionCall","src":"27498:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27488:2:89"},"nodeType":"YulFunctionCall","src":"27488:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27481:6:89"},"nodeType":"YulFunctionCall","src":"27481:40:89"},"nodeType":"YulIf","src":"27478:60:89"},{"nodeType":"YulAssignment","src":"27547:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"27557:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"27547:6:89"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27335:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"27346:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"27358:6:89","type":""}],"src":"27291:277:89"},{"body":{"nodeType":"YulBlock","src":"27747:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27764:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27775:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27757:6:89"},"nodeType":"YulFunctionCall","src":"27757:21:89"},"nodeType":"YulExpressionStatement","src":"27757:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27798:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27809:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27794:3:89"},"nodeType":"YulFunctionCall","src":"27794:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"27814:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27787:6:89"},"nodeType":"YulFunctionCall","src":"27787:30:89"},"nodeType":"YulExpressionStatement","src":"27787:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27837:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27848:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27833:3:89"},"nodeType":"YulFunctionCall","src":"27833:18:89"},{"hexValue":"436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e6564","kind":"string","nodeType":"YulLiteral","src":"27853:34:89","type":"","value":"Checkpoints: block not yet mined"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27826:6:89"},"nodeType":"YulFunctionCall","src":"27826:62:89"},"nodeType":"YulExpressionStatement","src":"27826:62:89"},{"nodeType":"YulAssignment","src":"27897:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27909:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"27920:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27905:3:89"},"nodeType":"YulFunctionCall","src":"27905:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27897:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27724:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27738:4:89","type":""}],"src":"27573:356:89"},{"body":{"nodeType":"YulBlock","src":"28108:239:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28136:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28118:6:89"},"nodeType":"YulFunctionCall","src":"28118:21:89"},"nodeType":"YulExpressionStatement","src":"28118:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28159:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28170:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28155:3:89"},"nodeType":"YulFunctionCall","src":"28155:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"28175:2:89","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28148:6:89"},"nodeType":"YulFunctionCall","src":"28148:30:89"},"nodeType":"YulExpressionStatement","src":"28148:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28198:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28209:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28194:3:89"},"nodeType":"YulFunctionCall","src":"28194:18:89"},{"hexValue":"476f7665726e6f723a2070726f706f73657220766f7465732062656c6f772070","kind":"string","nodeType":"YulLiteral","src":"28214:34:89","type":"","value":"Governor: proposer votes below p"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28187:6:89"},"nodeType":"YulFunctionCall","src":"28187:62:89"},"nodeType":"YulExpressionStatement","src":"28187:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28269:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28280:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28265:3:89"},"nodeType":"YulFunctionCall","src":"28265:18:89"},{"hexValue":"726f706f73616c207468726573686f6c64","kind":"string","nodeType":"YulLiteral","src":"28285:19:89","type":"","value":"roposal threshold"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28258:6:89"},"nodeType":"YulFunctionCall","src":"28258:47:89"},"nodeType":"YulExpressionStatement","src":"28258:47:89"},{"nodeType":"YulAssignment","src":"28314:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28326:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28337:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28322:3:89"},"nodeType":"YulFunctionCall","src":"28322:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28314:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28085:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28099:4:89","type":""}],"src":"27934:413:89"},{"body":{"nodeType":"YulBlock","src":"28526:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28543:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28554:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28536:6:89"},"nodeType":"YulFunctionCall","src":"28536:21:89"},"nodeType":"YulExpressionStatement","src":"28536:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28577:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28588:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28573:3:89"},"nodeType":"YulFunctionCall","src":"28573:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"28593:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28566:6:89"},"nodeType":"YulFunctionCall","src":"28566:30:89"},"nodeType":"YulExpressionStatement","src":"28566:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28616:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28627:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28612:3:89"},"nodeType":"YulFunctionCall","src":"28612:18:89"},{"hexValue":"476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e6774","kind":"string","nodeType":"YulLiteral","src":"28632:34:89","type":"","value":"Governor: invalid proposal lengt"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28605:6:89"},"nodeType":"YulFunctionCall","src":"28605:62:89"},"nodeType":"YulExpressionStatement","src":"28605:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28687:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28698:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28683:3:89"},"nodeType":"YulFunctionCall","src":"28683:18:89"},{"hexValue":"68","kind":"string","nodeType":"YulLiteral","src":"28703:3:89","type":"","value":"h"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28676:6:89"},"nodeType":"YulFunctionCall","src":"28676:31:89"},"nodeType":"YulExpressionStatement","src":"28676:31:89"},{"nodeType":"YulAssignment","src":"28716:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28728:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28739:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28724:3:89"},"nodeType":"YulFunctionCall","src":"28724:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28716:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28503:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28517:4:89","type":""}],"src":"28352:397:89"},{"body":{"nodeType":"YulBlock","src":"28928:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28945:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28956:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28938:6:89"},"nodeType":"YulFunctionCall","src":"28938:21:89"},"nodeType":"YulExpressionStatement","src":"28938:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28979:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"28990:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28975:3:89"},"nodeType":"YulFunctionCall","src":"28975:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"28995:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28968:6:89"},"nodeType":"YulFunctionCall","src":"28968:30:89"},"nodeType":"YulExpressionStatement","src":"28968:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29018:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29029:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29014:3:89"},"nodeType":"YulFunctionCall","src":"29014:18:89"},{"hexValue":"476f7665726e6f723a20656d7074792070726f706f73616c","kind":"string","nodeType":"YulLiteral","src":"29034:26:89","type":"","value":"Governor: empty proposal"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29007:6:89"},"nodeType":"YulFunctionCall","src":"29007:54:89"},"nodeType":"YulExpressionStatement","src":"29007:54:89"},{"nodeType":"YulAssignment","src":"29070:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29082:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29093:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29078:3:89"},"nodeType":"YulFunctionCall","src":"29078:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29070:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28905:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28919:4:89","type":""}],"src":"28754:348:89"},{"body":{"nodeType":"YulBlock","src":"29281:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29298:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29309:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29291:6:89"},"nodeType":"YulFunctionCall","src":"29291:21:89"},"nodeType":"YulExpressionStatement","src":"29291:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29332:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29343:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29328:3:89"},"nodeType":"YulFunctionCall","src":"29328:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"29348:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29321:6:89"},"nodeType":"YulFunctionCall","src":"29321:30:89"},"nodeType":"YulExpressionStatement","src":"29321:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29371:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29382:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29367:3:89"},"nodeType":"YulFunctionCall","src":"29367:18:89"},{"hexValue":"476f7665726e6f723a2070726f706f73616c20616c7265616479206578697374","kind":"string","nodeType":"YulLiteral","src":"29387:34:89","type":"","value":"Governor: proposal already exist"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29360:6:89"},"nodeType":"YulFunctionCall","src":"29360:62:89"},"nodeType":"YulExpressionStatement","src":"29360:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29442:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29453:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29438:3:89"},"nodeType":"YulFunctionCall","src":"29438:18:89"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"29458:3:89","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29431:6:89"},"nodeType":"YulFunctionCall","src":"29431:31:89"},"nodeType":"YulExpressionStatement","src":"29431:31:89"},{"nodeType":"YulAssignment","src":"29471:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29483:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"29494:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29479:3:89"},"nodeType":"YulFunctionCall","src":"29479:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29471:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29258:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29272:4:89","type":""}],"src":"29107:397:89"},{"body":{"nodeType":"YulBlock","src":"29556:133:89","statements":[{"nodeType":"YulVariableDeclaration","src":"29566:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"29576:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"29570:2:89","type":""}]},{"nodeType":"YulAssignment","src":"29603:34:89","value":{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"29618:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"29621:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29614:3:89"},"nodeType":"YulFunctionCall","src":"29614:10:89"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"29630:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"29633:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29626:3:89"},"nodeType":"YulFunctionCall","src":"29626:10:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29610:3:89"},"nodeType":"YulFunctionCall","src":"29610:27:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"29603:3:89"}]},{"body":{"nodeType":"YulBlock","src":"29661:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"29663:16:89"},"nodeType":"YulFunctionCall","src":"29663:18:89"},"nodeType":"YulExpressionStatement","src":"29663:18:89"}]},"condition":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"29652:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"29657:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"29649:2:89"},"nodeType":"YulFunctionCall","src":"29649:11:89"},"nodeType":"YulIf","src":"29646:37:89"}]},"name":"checked_add_t_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"29539:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"29542:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"29548:3:89","type":""}],"src":"29509:180:89"},{"body":{"nodeType":"YulBlock","src":"29737:59:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29754:3:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29763:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"29770:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"29759:3:89"},"nodeType":"YulFunctionCall","src":"29759:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29747:6:89"},"nodeType":"YulFunctionCall","src":"29747:43:89"},"nodeType":"YulExpressionStatement","src":"29747:43:89"}]},"name":"abi_encode_uint64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"29721:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"29728:3:89","type":""}],"src":"29694:102:89"},{"body":{"nodeType":"YulBlock","src":"30382:1303:89","statements":[{"nodeType":"YulVariableDeclaration","src":"30392:13:89","value":{"kind":"number","nodeType":"YulLiteral","src":"30402:3:89","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"30396:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30421:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"30432:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30414:6:89"},"nodeType":"YulFunctionCall","src":"30414:25:89"},"nodeType":"YulExpressionStatement","src":"30414:25:89"},{"nodeType":"YulVariableDeclaration","src":"30448:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"30458:2:89","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"30452:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30480:9:89"},{"name":"_2","nodeType":"YulIdentifier","src":"30491:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30476:3:89"},"nodeType":"YulFunctionCall","src":"30476:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"30500:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"30516:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"30521:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30512:3:89"},"nodeType":"YulFunctionCall","src":"30512:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"30525:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30508:3:89"},"nodeType":"YulFunctionCall","src":"30508:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"30496:3:89"},"nodeType":"YulFunctionCall","src":"30496:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30469:6:89"},"nodeType":"YulFunctionCall","src":"30469:60:89"},"nodeType":"YulExpressionStatement","src":"30469:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30549:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"30560:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30545:3:89"},"nodeType":"YulFunctionCall","src":"30545:18:89"},{"name":"_1","nodeType":"YulIdentifier","src":"30565:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30538:6:89"},"nodeType":"YulFunctionCall","src":"30538:30:89"},"nodeType":"YulExpressionStatement","src":"30538:30:89"},{"nodeType":"YulVariableDeclaration","src":"30577:70:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"30620:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30632:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"30643:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30628:3:89"},"nodeType":"YulFunctionCall","src":"30628:18:89"}],"functionName":{"name":"abi_encode_array_address_dyn","nodeType":"YulIdentifier","src":"30591:28:89"},"nodeType":"YulFunctionCall","src":"30591:56:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"30581:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30667:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"30678:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30663:3:89"},"nodeType":"YulFunctionCall","src":"30663:18:89"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"30687:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"30695:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30683:3:89"},"nodeType":"YulFunctionCall","src":"30683:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30656:6:89"},"nodeType":"YulFunctionCall","src":"30656:50:89"},"nodeType":"YulExpressionStatement","src":"30656:50:89"},{"nodeType":"YulVariableDeclaration","src":"30715:58:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"30758:6:89"},{"name":"tail_1","nodeType":"YulIdentifier","src":"30766:6:89"}],"functionName":{"name":"abi_encode_array_uint256_dyn","nodeType":"YulIdentifier","src":"30729:28:89"},"nodeType":"YulFunctionCall","src":"30729:44:89"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"30719:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30793:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"30804:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30789:3:89"},"nodeType":"YulFunctionCall","src":"30789:19:89"},{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"30814:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"30822:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30810:3:89"},"nodeType":"YulFunctionCall","src":"30810:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30782:6:89"},"nodeType":"YulFunctionCall","src":"30782:51:89"},"nodeType":"YulExpressionStatement","src":"30782:51:89"},{"nodeType":"YulVariableDeclaration","src":"30842:17:89","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"30853:6:89"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"30846:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"30868:27:89","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"30888:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30882:5:89"},"nodeType":"YulFunctionCall","src":"30882:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"30872:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"30911:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"30919:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30904:6:89"},"nodeType":"YulFunctionCall","src":"30904:22:89"},"nodeType":"YulExpressionStatement","src":"30904:22:89"},{"nodeType":"YulAssignment","src":"30935:22:89","value":{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"30946:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"30954:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30942:3:89"},"nodeType":"YulFunctionCall","src":"30942:15:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"30935:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"30966:50:89","value":{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"30988:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31000:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"31003:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"30996:3:89"},"nodeType":"YulFunctionCall","src":"30996:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30984:3:89"},"nodeType":"YulFunctionCall","src":"30984:27:89"},{"name":"_2","nodeType":"YulIdentifier","src":"31013:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30980:3:89"},"nodeType":"YulFunctionCall","src":"30980:36:89"},"variables":[{"name":"tail_3","nodeType":"YulTypedName","src":"30970:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"31025:29:89","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"31043:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"31051:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31039:3:89"},"nodeType":"YulFunctionCall","src":"31039:15:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"31029:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"31063:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"31072:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"31067:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"31131:203:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31152:3:89"},{"arguments":[{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"31165:6:89"},{"name":"tail_2","nodeType":"YulIdentifier","src":"31173:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31161:3:89"},"nodeType":"YulFunctionCall","src":"31161:19:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31186:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"31182:3:89"},"nodeType":"YulFunctionCall","src":"31182:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31157:3:89"},"nodeType":"YulFunctionCall","src":"31157:33:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31145:6:89"},"nodeType":"YulFunctionCall","src":"31145:46:89"},"nodeType":"YulExpressionStatement","src":"31145:46:89"},{"nodeType":"YulAssignment","src":"31204:50:89","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"31238:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31232:5:89"},"nodeType":"YulFunctionCall","src":"31232:13:89"},{"name":"tail_3","nodeType":"YulIdentifier","src":"31247:6:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"31214:17:89"},"nodeType":"YulFunctionCall","src":"31214:40:89"},"variableNames":[{"name":"tail_3","nodeType":"YulIdentifier","src":"31204:6:89"}]},{"nodeType":"YulAssignment","src":"31267:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"31281:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"31289:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31277:3:89"},"nodeType":"YulFunctionCall","src":"31277:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"31267:6:89"}]},{"nodeType":"YulAssignment","src":"31305:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31316:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"31321:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31312:3:89"},"nodeType":"YulFunctionCall","src":"31312:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"31305:3:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"31093:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"31096:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"31090:2:89"},"nodeType":"YulFunctionCall","src":"31090:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"31104:18:89","statements":[{"nodeType":"YulAssignment","src":"31106:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"31115:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"31118:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31111:3:89"},"nodeType":"YulFunctionCall","src":"31111:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"31106:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"31086:3:89","statements":[]},"src":"31082:252:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31354:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31365:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31350:3:89"},"nodeType":"YulFunctionCall","src":"31350:19:89"},{"arguments":[{"name":"tail_3","nodeType":"YulIdentifier","src":"31375:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"31383:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31371:3:89"},"nodeType":"YulFunctionCall","src":"31371:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31343:6:89"},"nodeType":"YulFunctionCall","src":"31343:51:89"},"nodeType":"YulExpressionStatement","src":"31343:51:89"},{"nodeType":"YulVariableDeclaration","src":"31403:56:89","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"31444:6:89"},{"name":"tail_3","nodeType":"YulIdentifier","src":"31452:6:89"}],"functionName":{"name":"abi_encode_array_bytes_dyn","nodeType":"YulIdentifier","src":"31417:26:89"},"nodeType":"YulFunctionCall","src":"31417:42:89"},"variables":[{"name":"tail_4","nodeType":"YulTypedName","src":"31407:6:89","type":""}]},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"31486:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31498:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31509:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31494:3:89"},"nodeType":"YulFunctionCall","src":"31494:19:89"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"31468:17:89"},"nodeType":"YulFunctionCall","src":"31468:46:89"},"nodeType":"YulExpressionStatement","src":"31468:46:89"},{"expression":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"31541:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31553:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31564:3:89","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31549:3:89"},"nodeType":"YulFunctionCall","src":"31549:19:89"}],"functionName":{"name":"abi_encode_uint64","nodeType":"YulIdentifier","src":"31523:17:89"},"nodeType":"YulFunctionCall","src":"31523:46:89"},"nodeType":"YulExpressionStatement","src":"31523:46:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31589:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31600:3:89","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31585:3:89"},"nodeType":"YulFunctionCall","src":"31585:19:89"},{"arguments":[{"name":"tail_4","nodeType":"YulIdentifier","src":"31610:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"31618:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31606:3:89"},"nodeType":"YulFunctionCall","src":"31606:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31578:6:89"},"nodeType":"YulFunctionCall","src":"31578:51:89"},"nodeType":"YulExpressionStatement","src":"31578:51:89"},{"nodeType":"YulAssignment","src":"31638:41:89","value":{"arguments":[{"name":"value8","nodeType":"YulIdentifier","src":"31664:6:89"},{"name":"tail_4","nodeType":"YulIdentifier","src":"31672:6:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"31646:17:89"},"nodeType":"YulFunctionCall","src":"31646:33:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31638:4:89"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30287:9:89","type":""},{"name":"value8","nodeType":"YulTypedName","src":"30298:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"30306:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"30314:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"30322:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"30330:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"30338:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"30346:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"30354:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30362:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30373:4:89","type":""}],"src":"29801:1884:89"},{"body":{"nodeType":"YulBlock","src":"31819:145:89","statements":[{"nodeType":"YulAssignment","src":"31829:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31841:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31852:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31837:3:89"},"nodeType":"YulFunctionCall","src":"31837:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31829:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31871:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31886:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31902:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31907:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31898:3:89"},"nodeType":"YulFunctionCall","src":"31898:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"31911:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31894:3:89"},"nodeType":"YulFunctionCall","src":"31894:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31882:3:89"},"nodeType":"YulFunctionCall","src":"31882:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31864:6:89"},"nodeType":"YulFunctionCall","src":"31864:51:89"},"nodeType":"YulExpressionStatement","src":"31864:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31935:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"31946:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31931:3:89"},"nodeType":"YulFunctionCall","src":"31931:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"31951:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31924:6:89"},"nodeType":"YulFunctionCall","src":"31924:34:89"},"nodeType":"YulExpressionStatement","src":"31924:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31780:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31791:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31799:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31810:4:89","type":""}],"src":"31690:274:89"},{"body":{"nodeType":"YulBlock","src":"32098:175:89","statements":[{"nodeType":"YulAssignment","src":"32108:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32120:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32131:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32116:3:89"},"nodeType":"YulFunctionCall","src":"32116:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32108:4:89"}]},{"nodeType":"YulVariableDeclaration","src":"32143:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32161:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"32166:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32157:3:89"},"nodeType":"YulFunctionCall","src":"32157:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"32170:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32153:3:89"},"nodeType":"YulFunctionCall","src":"32153:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"32147:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32188:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"32203:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"32211:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32199:3:89"},"nodeType":"YulFunctionCall","src":"32199:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32181:6:89"},"nodeType":"YulFunctionCall","src":"32181:34:89"},"nodeType":"YulExpressionStatement","src":"32181:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32235:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32246:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32231:3:89"},"nodeType":"YulFunctionCall","src":"32231:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"32255:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"32263:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32251:3:89"},"nodeType":"YulFunctionCall","src":"32251:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32224:6:89"},"nodeType":"YulFunctionCall","src":"32224:43:89"},"nodeType":"YulExpressionStatement","src":"32224:43:89"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32059:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32070:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32078:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32089:4:89","type":""}],"src":"31969:304:89"},{"body":{"nodeType":"YulBlock","src":"32452:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32469:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32480:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32462:6:89"},"nodeType":"YulFunctionCall","src":"32462:21:89"},"nodeType":"YulExpressionStatement","src":"32462:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32503:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32514:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32499:3:89"},"nodeType":"YulFunctionCall","src":"32499:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"32519:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32492:6:89"},"nodeType":"YulFunctionCall","src":"32492:30:89"},"nodeType":"YulExpressionStatement","src":"32492:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32542:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32553:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32538:3:89"},"nodeType":"YulFunctionCall","src":"32538:18:89"},{"hexValue":"476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420","kind":"string","nodeType":"YulLiteral","src":"32558:34:89","type":"","value":"GovernorSettings: voting period "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32531:6:89"},"nodeType":"YulFunctionCall","src":"32531:62:89"},"nodeType":"YulExpressionStatement","src":"32531:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32613:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32624:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32609:3:89"},"nodeType":"YulFunctionCall","src":"32609:18:89"},{"hexValue":"746f6f206c6f77","kind":"string","nodeType":"YulLiteral","src":"32629:9:89","type":"","value":"too low"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32602:6:89"},"nodeType":"YulFunctionCall","src":"32602:37:89"},"nodeType":"YulExpressionStatement","src":"32602:37:89"},{"nodeType":"YulAssignment","src":"32648:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32660:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"32671:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32656:3:89"},"nodeType":"YulFunctionCall","src":"32656:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32648:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32429:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32443:4:89","type":""}],"src":"32278:403:89"},{"body":{"nodeType":"YulBlock","src":"32738:116:89","statements":[{"nodeType":"YulAssignment","src":"32748:20:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32763:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"32766:1:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"32759:3:89"},"nodeType":"YulFunctionCall","src":"32759:9:89"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"32748:7:89"}]},{"body":{"nodeType":"YulBlock","src":"32826:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"32828:16:89"},"nodeType":"YulFunctionCall","src":"32828:18:89"},"nodeType":"YulExpressionStatement","src":"32828:18:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"32797:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32790:6:89"},"nodeType":"YulFunctionCall","src":"32790:9:89"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"32804:1:89"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"32811:7:89"},{"name":"x","nodeType":"YulIdentifier","src":"32820:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"32807:3:89"},"nodeType":"YulFunctionCall","src":"32807:15:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"32801:2:89"},"nodeType":"YulFunctionCall","src":"32801:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"32787:2:89"},"nodeType":"YulFunctionCall","src":"32787:37:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32780:6:89"},"nodeType":"YulFunctionCall","src":"32780:45:89"},"nodeType":"YulIf","src":"32777:71:89"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"32717:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"32720:1:89","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"32726:7:89","type":""}],"src":"32686:168:89"},{"body":{"nodeType":"YulBlock","src":"32905:171:89","statements":[{"body":{"nodeType":"YulBlock","src":"32936:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32957:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32964:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"32969:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32960:3:89"},"nodeType":"YulFunctionCall","src":"32960:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32950:6:89"},"nodeType":"YulFunctionCall","src":"32950:31:89"},"nodeType":"YulExpressionStatement","src":"32950:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33001:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33004:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32994:6:89"},"nodeType":"YulFunctionCall","src":"32994:15:89"},"nodeType":"YulExpressionStatement","src":"32994:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33029:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"33032:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33022:6:89"},"nodeType":"YulFunctionCall","src":"33022:15:89"},"nodeType":"YulExpressionStatement","src":"33022:15:89"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"32925:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"32918:6:89"},"nodeType":"YulFunctionCall","src":"32918:9:89"},"nodeType":"YulIf","src":"32915:132:89"},{"nodeType":"YulAssignment","src":"33056:14:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33065:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"33068:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"33061:3:89"},"nodeType":"YulFunctionCall","src":"33061:9:89"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"33056:1:89"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"32890:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"32893:1:89","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"32899:1:89","type":""}],"src":"32859:217:89"},{"body":{"nodeType":"YulBlock","src":"33255:173:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33272:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"33283:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33265:6:89"},"nodeType":"YulFunctionCall","src":"33265:21:89"},"nodeType":"YulExpressionStatement","src":"33265:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33306:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"33317:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33302:3:89"},"nodeType":"YulFunctionCall","src":"33302:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"33322:2:89","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33295:6:89"},"nodeType":"YulFunctionCall","src":"33295:30:89"},"nodeType":"YulExpressionStatement","src":"33295:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33345:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"33356:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33341:3:89"},"nodeType":"YulFunctionCall","src":"33341:18:89"},{"hexValue":"436865636b706f696e743a20696e76616c6964206b6579","kind":"string","nodeType":"YulLiteral","src":"33361:25:89","type":"","value":"Checkpoint: invalid key"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33334:6:89"},"nodeType":"YulFunctionCall","src":"33334:53:89"},"nodeType":"YulExpressionStatement","src":"33334:53:89"},{"nodeType":"YulAssignment","src":"33396:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33408:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"33419:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33404:3:89"},"nodeType":"YulFunctionCall","src":"33404:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33396:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33232:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33246:4:89","type":""}],"src":"33081:347:89"},{"body":{"nodeType":"YulBlock","src":"33681:144:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33698:3:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33707:3:89","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"33712:4:89","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33703:3:89"},"nodeType":"YulFunctionCall","src":"33703:14:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33691:6:89"},"nodeType":"YulFunctionCall","src":"33691:27:89"},"nodeType":"YulExpressionStatement","src":"33691:27:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33738:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"33743:1:89","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33734:3:89"},"nodeType":"YulFunctionCall","src":"33734:11:89"},{"name":"value0","nodeType":"YulIdentifier","src":"33747:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33727:6:89"},"nodeType":"YulFunctionCall","src":"33727:27:89"},"nodeType":"YulExpressionStatement","src":"33727:27:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33774:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"33779:2:89","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33770:3:89"},"nodeType":"YulFunctionCall","src":"33770:12:89"},{"name":"value1","nodeType":"YulIdentifier","src":"33784:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33763:6:89"},"nodeType":"YulFunctionCall","src":"33763:28:89"},"nodeType":"YulExpressionStatement","src":"33763:28:89"},{"nodeType":"YulAssignment","src":"33800:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33811:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"33816:2:89","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33807:3:89"},"nodeType":"YulFunctionCall","src":"33807:12:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"33800:3:89"}]}]},"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":"33649:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"33654:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"33662:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"33673:3:89","type":""}],"src":"33433:392:89"},{"body":{"nodeType":"YulBlock","src":"34011:217:89","statements":[{"nodeType":"YulAssignment","src":"34021:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34033:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34044:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34029:3:89"},"nodeType":"YulFunctionCall","src":"34029:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34021:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34064:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"34075:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34057:6:89"},"nodeType":"YulFunctionCall","src":"34057:25:89"},"nodeType":"YulExpressionStatement","src":"34057:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34102:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34113:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34098:3:89"},"nodeType":"YulFunctionCall","src":"34098:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"34122:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"34130:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34118:3:89"},"nodeType":"YulFunctionCall","src":"34118:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34091:6:89"},"nodeType":"YulFunctionCall","src":"34091:45:89"},"nodeType":"YulExpressionStatement","src":"34091:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34156:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34167:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34152:3:89"},"nodeType":"YulFunctionCall","src":"34152:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"34172:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34145:6:89"},"nodeType":"YulFunctionCall","src":"34145:34:89"},"nodeType":"YulExpressionStatement","src":"34145:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34199:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34210:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34195:3:89"},"nodeType":"YulFunctionCall","src":"34195:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"34215:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34188:6:89"},"nodeType":"YulFunctionCall","src":"34188:34:89"},"nodeType":"YulExpressionStatement","src":"34188:34:89"}]},"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":"33956:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"33967:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"33975:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"33983:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"33991:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34002:4:89","type":""}],"src":"33830:398:89"},{"body":{"nodeType":"YulBlock","src":"34407:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34424:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34435:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34417:6:89"},"nodeType":"YulFunctionCall","src":"34417:21:89"},"nodeType":"YulExpressionStatement","src":"34417:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34458:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34469:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34454:3:89"},"nodeType":"YulFunctionCall","src":"34454:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"34474:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34447:6:89"},"nodeType":"YulFunctionCall","src":"34447:30:89"},"nodeType":"YulExpressionStatement","src":"34447:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34497:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34508:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34493:3:89"},"nodeType":"YulFunctionCall","src":"34493:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"34513:26:89","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34486:6:89"},"nodeType":"YulFunctionCall","src":"34486:54:89"},"nodeType":"YulExpressionStatement","src":"34486:54:89"},{"nodeType":"YulAssignment","src":"34549:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34561:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34572:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34557:3:89"},"nodeType":"YulFunctionCall","src":"34557:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34549:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34384:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34398:4:89","type":""}],"src":"34233:348:89"},{"body":{"nodeType":"YulBlock","src":"34760:181:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34777:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34788:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34770:6:89"},"nodeType":"YulFunctionCall","src":"34770:21:89"},"nodeType":"YulExpressionStatement","src":"34770:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34811:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34822:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34807:3:89"},"nodeType":"YulFunctionCall","src":"34807:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"34827:2:89","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34800:6:89"},"nodeType":"YulFunctionCall","src":"34800:30:89"},"nodeType":"YulExpressionStatement","src":"34800:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34850:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34861:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34846:3:89"},"nodeType":"YulFunctionCall","src":"34846:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"34866:33:89","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34839:6:89"},"nodeType":"YulFunctionCall","src":"34839:61:89"},"nodeType":"YulExpressionStatement","src":"34839:61:89"},{"nodeType":"YulAssignment","src":"34909:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34921:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"34932:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34917:3:89"},"nodeType":"YulFunctionCall","src":"34917:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34909:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34737:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34751:4:89","type":""}],"src":"34586:355:89"},{"body":{"nodeType":"YulBlock","src":"35120:224:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35137:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35148:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35130:6:89"},"nodeType":"YulFunctionCall","src":"35130:21:89"},"nodeType":"YulExpressionStatement","src":"35130:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35171:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35182:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35167:3:89"},"nodeType":"YulFunctionCall","src":"35167:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"35187:2:89","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35160:6:89"},"nodeType":"YulFunctionCall","src":"35160:30:89"},"nodeType":"YulExpressionStatement","src":"35160:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35210:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35221:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35206:3:89"},"nodeType":"YulFunctionCall","src":"35206:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"35226:34:89","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35199:6:89"},"nodeType":"YulFunctionCall","src":"35199:62:89"},"nodeType":"YulExpressionStatement","src":"35199:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35281:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35292:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35277:3:89"},"nodeType":"YulFunctionCall","src":"35277:18:89"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"35297:4:89","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35270:6:89"},"nodeType":"YulFunctionCall","src":"35270:32:89"},"nodeType":"YulExpressionStatement","src":"35270:32:89"},{"nodeType":"YulAssignment","src":"35311:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35323:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35334:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35319:3:89"},"nodeType":"YulFunctionCall","src":"35319:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35311:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35097:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35111:4:89","type":""}],"src":"34946:398:89"},{"body":{"nodeType":"YulBlock","src":"35523:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35540:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35551:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35533:6:89"},"nodeType":"YulFunctionCall","src":"35533:21:89"},"nodeType":"YulExpressionStatement","src":"35533:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35574:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35585:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35570:3:89"},"nodeType":"YulFunctionCall","src":"35570:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"35590:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35563:6:89"},"nodeType":"YulFunctionCall","src":"35563:30:89"},"nodeType":"YulExpressionStatement","src":"35563:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35613:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35624:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35609:3:89"},"nodeType":"YulFunctionCall","src":"35609:18:89"},{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561","kind":"string","nodeType":"YulLiteral","src":"35629:34:89","type":"","value":"GovernorVotingSimple: vote alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35602:6:89"},"nodeType":"YulFunctionCall","src":"35602:62:89"},"nodeType":"YulExpressionStatement","src":"35602:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35684:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35695:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35680:3:89"},"nodeType":"YulFunctionCall","src":"35680:18:89"},{"hexValue":"64792063617374","kind":"string","nodeType":"YulLiteral","src":"35700:9:89","type":"","value":"dy cast"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35673:6:89"},"nodeType":"YulFunctionCall","src":"35673:37:89"},"nodeType":"YulExpressionStatement","src":"35673:37:89"},{"nodeType":"YulAssignment","src":"35719:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35731:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35742:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35727:3:89"},"nodeType":"YulFunctionCall","src":"35727:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35719:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35500:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35514:4:89","type":""}],"src":"35349:403:89"},{"body":{"nodeType":"YulBlock","src":"35931:243:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35948:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35959:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35941:6:89"},"nodeType":"YulFunctionCall","src":"35941:21:89"},"nodeType":"YulExpressionStatement","src":"35941:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35982:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"35993:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35978:3:89"},"nodeType":"YulFunctionCall","src":"35978:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"35998:2:89","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35971:6:89"},"nodeType":"YulFunctionCall","src":"35971:30:89"},"nodeType":"YulExpressionStatement","src":"35971:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36021:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36032:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36017:3:89"},"nodeType":"YulFunctionCall","src":"36017:18:89"},{"hexValue":"476f7665726e6f72566f74696e6753696d706c653a20696e76616c6964207661","kind":"string","nodeType":"YulLiteral","src":"36037:34:89","type":"","value":"GovernorVotingSimple: invalid va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36010:6:89"},"nodeType":"YulFunctionCall","src":"36010:62:89"},"nodeType":"YulExpressionStatement","src":"36010:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36092:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36103:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36088:3:89"},"nodeType":"YulFunctionCall","src":"36088:18:89"},{"hexValue":"6c756520666f7220656e756d20566f746554797065","kind":"string","nodeType":"YulLiteral","src":"36108:23:89","type":"","value":"lue for enum VoteType"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36081:6:89"},"nodeType":"YulFunctionCall","src":"36081:51:89"},"nodeType":"YulExpressionStatement","src":"36081:51:89"},{"nodeType":"YulAssignment","src":"36141:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36153:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36164:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36149:3:89"},"nodeType":"YulFunctionCall","src":"36149:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36141:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35908:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35922:4:89","type":""}],"src":"35757:417:89"},{"body":{"nodeType":"YulBlock","src":"36353:179:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36370:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36381:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36363:6:89"},"nodeType":"YulFunctionCall","src":"36363:21:89"},"nodeType":"YulExpressionStatement","src":"36363:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36404:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36415:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36400:3:89"},"nodeType":"YulFunctionCall","src":"36400:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"36420:2:89","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36393:6:89"},"nodeType":"YulFunctionCall","src":"36393:30:89"},"nodeType":"YulExpressionStatement","src":"36393:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36443:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36454:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36439:3:89"},"nodeType":"YulFunctionCall","src":"36439:18:89"},{"hexValue":"476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964","kind":"string","nodeType":"YulLiteral","src":"36459:31:89","type":"","value":"Governor: unknown proposal id"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36432:6:89"},"nodeType":"YulFunctionCall","src":"36432:59:89"},"nodeType":"YulExpressionStatement","src":"36432:59:89"},{"nodeType":"YulAssignment","src":"36500:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36512:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36523:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36508:3:89"},"nodeType":"YulFunctionCall","src":"36508:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36500:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36330:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36344:4:89","type":""}],"src":"36179:353:89"},{"body":{"nodeType":"YulBlock","src":"36711:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36728:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36739:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36721:6:89"},"nodeType":"YulFunctionCall","src":"36721:21:89"},"nodeType":"YulExpressionStatement","src":"36721:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36762:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36773:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36758:3:89"},"nodeType":"YulFunctionCall","src":"36758:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"36778:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36751:6:89"},"nodeType":"YulFunctionCall","src":"36751:30:89"},"nodeType":"YulExpressionStatement","src":"36751:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36801:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36812:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36797:3:89"},"nodeType":"YulFunctionCall","src":"36797:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2036","kind":"string","nodeType":"YulLiteral","src":"36817:34:89","type":"","value":"SafeCast: value doesn't fit in 6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36790:6:89"},"nodeType":"YulFunctionCall","src":"36790:62:89"},"nodeType":"YulExpressionStatement","src":"36790:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36872:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36883:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36868:3:89"},"nodeType":"YulFunctionCall","src":"36868:18:89"},{"hexValue":"342062697473","kind":"string","nodeType":"YulLiteral","src":"36888:8:89","type":"","value":"4 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36861:6:89"},"nodeType":"YulFunctionCall","src":"36861:36:89"},"nodeType":"YulExpressionStatement","src":"36861:36:89"},{"nodeType":"YulAssignment","src":"36906:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36918:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"36929:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36914:3:89"},"nodeType":"YulFunctionCall","src":"36914:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36906:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36688:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36702:4:89","type":""}],"src":"36537:402:89"},{"body":{"nodeType":"YulBlock","src":"37157:276:89","statements":[{"nodeType":"YulAssignment","src":"37167:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37179:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"37190:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37175:3:89"},"nodeType":"YulFunctionCall","src":"37175:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37167:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37210:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"37221:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37203:6:89"},"nodeType":"YulFunctionCall","src":"37203:25:89"},"nodeType":"YulExpressionStatement","src":"37203:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37248:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"37259:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37244:3:89"},"nodeType":"YulFunctionCall","src":"37244:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"37264:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37237:6:89"},"nodeType":"YulFunctionCall","src":"37237:34:89"},"nodeType":"YulExpressionStatement","src":"37237:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37291:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"37302:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37287:3:89"},"nodeType":"YulFunctionCall","src":"37287:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"37307:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37280:6:89"},"nodeType":"YulFunctionCall","src":"37280:34:89"},"nodeType":"YulExpressionStatement","src":"37280:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37334:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"37345:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37330:3:89"},"nodeType":"YulFunctionCall","src":"37330:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"37350:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37323:6:89"},"nodeType":"YulFunctionCall","src":"37323:34:89"},"nodeType":"YulExpressionStatement","src":"37323:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37377:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"37388:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37373:3:89"},"nodeType":"YulFunctionCall","src":"37373:19:89"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"37398:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37414:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"37419:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37410:3:89"},"nodeType":"YulFunctionCall","src":"37410:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"37423:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37406:3:89"},"nodeType":"YulFunctionCall","src":"37406:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37394:3:89"},"nodeType":"YulFunctionCall","src":"37394:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37366:6:89"},"nodeType":"YulFunctionCall","src":"37366:61:89"},"nodeType":"YulExpressionStatement","src":"37366:61:89"}]},"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":"37094:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"37105:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"37113:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"37121:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"37129:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"37137:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37148:4:89","type":""}],"src":"36944:489:89"}]},"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, shl(224, 0xffffffff)))) { 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_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\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_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 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, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        array := allocate_memory(add(and(add(length, 31), not(31)), 0x20))\n        mstore(array, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(array, 0x20), src, length)\n        mstore(add(add(array, length), 0x20), 0)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        array := abi_decode_available_length_bytes(add(offset, 0x20), calldataload(offset), end)\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptrt_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 224) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_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        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n        value5 := abi_decode_uint8(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n        value7 := calldataload(add(headStart, 192))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 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 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_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        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function 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 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 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            mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), _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_bytes_memory_ptr_$dyn_memory_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { 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_bytes_dyn(add(headStart, offset_2), dataEnd)\n        value3 := calldataload(add(headStart, 96))\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_uint256t_uint8t_uint8t_bytes32t_bytes32(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_uint8(add(headStart, 32))\n        value2 := abi_decode_uint8(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := calldataload(add(headStart, 128))\n    }\n    function 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_enum$_ProposalState_$6963__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        if iszero(lt(value0, 8))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n        mstore(headStart, value0)\n    }\n    function abi_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_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_uint256t_uint8(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_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        value4 := abi_decode_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_uint8t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_uint8(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_array$_t_bytes_memory_ptr_$dyn_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(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_bytes_dyn(add(headStart, offset_2), dataEnd)\n        let offset_3 := calldataload(add(headStart, 96))\n        if gt(offset_3, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset_3)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        value3 := abi_decode_available_length_bytes(add(_2, 32), calldataload(_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_contract$_TimelockController_$8159(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_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(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        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_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_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(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        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_contract$_IVotes_$9304__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_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint256_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_encode_tuple_t_stringliteral_01397b9b23826f2770c44682f6f60114915147b09511a75fee3231adbc22847f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: onlyGovernance\")\n        tail := add(headStart, 96)\n    }\n    function 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 abi_encode_tuple_t_stringliteral_a608627370ddd238e48feab42026732822e64969fe5a8155723eaa5f397576d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal not successfu\")\n        mstore(add(headStart, 96), \"l\")\n        tail := add(headStart, 128)\n    }\n    function abi_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_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_array_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_array_bytes_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := add(value, _1)\n        let i := 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_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 160)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 160))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n    }\n    function abi_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 abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_rational_0_by_1_t_bytes32_t_uint256__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 192)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 192))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n    }\n    function 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        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\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_bytes32_t_uint256_t_uint8__to_t_bytes32_t_uint256_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), and(value2, 0xff))\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\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_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, 128)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 128))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value1, tail_1)\n        mstore(add(headStart, 64), sub(tail_2, headStart))\n        tail := abi_encode_array_bytes_dyn(value2, tail_2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_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_5b1e239298a1362f9b5245bd4e9393de28380a12326aa31532e03fe3f1061d80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Governor: vote not currently act\")\n        mstore(add(headStart, 96), \"ive\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_encode_tuple_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__to_t_uint256_t_uint8_t_uint256_t_string_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_string(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_string(value4, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_0687f8064c09ccf183090b5092c4485c730072a161487645a7e37b56cef356bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 67)\n        mstore(add(headStart, 64), \"GovernorVotesQuorumFraction: quo\")\n        mstore(add(headStart, 96), \"rumNumerator over quorumDenomina\")\n        mstore(add(headStart, 128), \"tor\")\n        tail := add(headStart, 160)\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_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_65bd29ebd873d82da6b3634513fc6582859c8e00f2a09cb4bdbeddf7d05eb5be__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Checkpoints: block not yet mined\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df78ee0077e11770202b643d4ac130b9964a5ac311c9b8d8ed6242eb4e2dcf86__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"Governor: proposer votes below p\")\n        mstore(add(headStart, 96), \"roposal threshold\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_35c793b1b5a6be245307722bba06fa552ac609ebfd70358ab0b3220eed40db4d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: invalid proposal lengt\")\n        mstore(add(headStart, 96), \"h\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8400b334e0df18026c76df742cddc258619f9923d5f5b8ba67cd6eec1d1f3513__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"Governor: empty proposal\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c1bb0f67bc14091429c4b8b5d74e1f929b2838d72b5fb3c5a2cbef13b2faab40__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"Governor: proposal already exist\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint64(x, y) -> sum\n    {\n        let _1 := 0xffffffffffffffff\n        sum := add(and(x, _1), and(y, _1))\n        if gt(sum, _1) { panic_error_0x11() }\n    }\n    function abi_encode_uint64(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint64_t_uint64_t_string_memory_ptr__to_t_uint256_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_string_memory_ptr_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_uint256_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 288\n        mstore(headStart, value0)\n        let _2 := 32\n        mstore(add(headStart, _2), and(value1, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 64), _1)\n        let tail_1 := abi_encode_array_address_dyn(value2, add(headStart, _1))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        let pos := tail_2\n        let length := mload(value4)\n        mstore(tail_2, length)\n        pos := add(tail_2, _2)\n        let tail_3 := add(add(tail_2, shl(5, length)), _2)\n        let srcPtr := add(value4, _2)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, add(sub(tail_3, tail_2), not(31)))\n            tail_3 := abi_encode_string(mload(srcPtr), tail_3)\n            srcPtr := add(srcPtr, _2)\n            pos := add(pos, _2)\n        }\n        mstore(add(headStart, 160), sub(tail_3, headStart))\n        let tail_4 := abi_encode_array_bytes_dyn(value5, tail_3)\n        abi_encode_uint64(value6, add(headStart, 192))\n        abi_encode_uint64(value7, add(headStart, 224))\n        mstore(add(headStart, 256), sub(tail_4, headStart))\n        tail := abi_encode_string(value8, tail_4)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_t_stringliteral_3f314603cb191f371d117be724372820f824fc7fbb608c5408b31620bafe9a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorSettings: voting period \")\n        mstore(add(headStart, 96), \"too low\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_b717461289064d78d4f64eae2786bccf758ed88a7bfa28ee6fa5093be89d54df__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), \"Checkpoint: invalid key\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        mstore(pos, shl(240, 6401))\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_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_52977fe78dd360b196702e8b1aa8e7d06cd560911da4c4d483548d7b2d1a38d8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 39)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: vote alrea\")\n        mstore(add(headStart, 96), \"dy cast\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c16dd4ca2a7081ef35bfb3860532c95d6b1aacddadf6f22f1058fc06b5718887__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 53)\n        mstore(add(headStart, 64), \"GovernorVotingSimple: invalid va\")\n        mstore(add(headStart, 96), \"lue for enum VoteType\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_be0e8e67d15e920d3846a46401854a27a676d8965bbdde05e68fc2cc5672c892__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Governor: unknown proposal id\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_93ae0c6bf6ffaece591a770b1865daa9f65157e541970aa9d8dc5f89a9490939__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"SafeCast: value doesn't fit in 6\")\n        mstore(add(headStart, 96), \"4 bits\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"8950":[{"length":32,"start":2153},{"length":32,"start":8161},{"length":32,"start":8661}],"15154":[{"length":32,"start":9419}],"15156":[{"length":32,"start":9377}],"15158":[{"length":32,"start":9335}],"15160":[{"length":32,"start":9502}],"15162":[{"length":32,"start":9539}],"15164":[{"length":32,"start":9460}]},"linkReferences":{},"object":"60806040526004361061024a5760003560e01c80637b3c71d311610139578063c28bc2fa116100b6578063ea0217cf1161007a578063ea0217cf146107ab578063eb9019d4146107cb578063ece40cc1146107eb578063f23a6e611461080b578063f8ce560a14610837578063fc0c546a1461085757600080fd5b8063c28bc2fa146106cc578063c59057e4146106df578063d33219b4146106ff578063dd4e2ba514610731578063deaaa7cc1461077757600080fd5b8063a890c910116100fd578063a890c9101461062b578063ab58fb8e1461064b578063b58131b01461066b578063bc197c8114610680578063c01f9e37146106ac57600080fd5b80637b3c71d3146105a25780637d5e81e2146105c257806397c3d334146105e25780639a802a6d146105f6578063a7713a701461061657600080fd5b80633932abb1116101c757806354fd4d501161018b57806354fd4d50146104f857806356781388146105225780635f398a141461054257806360c4247f1461056257806370b0f6601461058257600080fd5b80633932abb1146103f75780633bccf4fd1461040c5780633e4f49e61461042c5780634385963214610459578063544ffc9c146104a357600080fd5b8063150b7a021161020e578063150b7a021461032c578063160cbed7146103705780632656227d146103905780632d63f693146103a35780632fe3e261146103c357600080fd5b806301ffc9a71461027257806302a251a3146102a757806303420181146102ca57806306f3f9e6146102ea57806306fdde031461030a57600080fd5b3661026d573061025861088b565b6001600160a01b03161461026b57600080fd5b005b600080fd5b34801561027e57600080fd5b5061029261028d366004612c1a565b6108a4565b60405190151581526020015b60405180910390f35b3480156102b357600080fd5b506102bc6108b5565b60405190815260200161029e565b3480156102d657600080fd5b506102bc6102e5366004612d58565b6108c0565b3480156102f657600080fd5b5061026b610305366004612dfe565b6109b8565b34801561031657600080fd5b5061031f610a4b565b60405161029e9190612e5d565b34801561033857600080fd5b50610357610347366004612e85565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161029e565b34801561037c57600080fd5b506102bc61038b366004613061565b610add565b6102bc61039e366004613061565b610cdd565b3480156103af57600080fd5b506102bc6103be366004612dfe565b610dca565b3480156103cf57600080fd5b506102bc7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561040357600080fd5b506102bc610e01565b34801561041857600080fd5b506102bc6104273660046130f0565b610e0c565b34801561043857600080fd5b5061044c610447366004612dfe565b610e82565b60405161029e9190613154565b34801561046557600080fd5b5061029261047436600461317c565b60008281526007602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b3480156104af57600080fd5b506104dd6104be366004612dfe565b6000908152600760205260409020805460018201546002909201549092565b6040805193845260208401929092529082015260600161029e565b34801561050457600080fd5b506040805180820190915260018152603160f81b602082015261031f565b34801561052e57600080fd5b506102bc61053d3660046131ac565b610e8d565b34801561054e57600080fd5b506102bc61055d3660046131d8565b610eb6565b34801561056e57600080fd5b506102bc61057d366004612dfe565b610f00565b34801561058e57600080fd5b5061026b61059d366004612dfe565b610f97565b3480156105ae57600080fd5b506102bc6105bd36600461325b565b61101e565b3480156105ce57600080fd5b506102bc6105dd3660046132b4565b611070565b3480156105ee57600080fd5b5060646102bc565b34801561060257600080fd5b506102bc610611366004613368565b611087565b34801561062257600080fd5b506102bc61109e565b34801561063757600080fd5b5061026b6106463660046133c0565b6110c8565b34801561065757600080fd5b506102bc610666366004612dfe565b61114f565b34801561067757600080fd5b506102bc6111e9565b34801561068c57600080fd5b5061035761069b3660046133dd565b63bc197c8160e01b95945050505050565b3480156106b857600080fd5b506102bc6106c7366004612dfe565b6111f4565b61026b6106da366004613470565b611223565b3480156106eb57600080fd5b506102bc6106fa366004613061565b611332565b34801561070b57600080fd5b50600a546001600160a01b03165b6040516001600160a01b03909116815260200161029e565b34801561073d57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e9082015261031f565b34801561078357600080fd5b506102bc7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156107b757600080fd5b5061026b6107c6366004612dfe565b61136c565b3480156107d757600080fd5b506102bc6107e63660046134b3565b6113f3565b3480156107f757600080fd5b5061026b610806366004612dfe565b611414565b34801561081757600080fd5b506103576108263660046134df565b63f23a6e6160e01b95945050505050565b34801561084357600080fd5b506102bc610852366004612dfe565b61149b565b34801561086357600080fd5b506107197f000000000000000000000000000000000000000000000000000000000000000081565b600061089f600a546001600160a01b031690565b905090565b60006108af826115ec565b92915050565b600061089f60055490565b60008061096461095c7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516108fc929190613547565b60405180910390208b80519060200120604051602001610941959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120611611565b86868661165f565b90506109aa8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d925061167d915050565b9a9950505050505050505050565b6109c061088b565b6001600160a01b0316336001600160a01b0316146109f95760405162461bcd60e51b81526004016109f090613557565b60405180910390fd5b30610a0261088b565b6001600160a01b031614610a3f5760008036604051610a22929190613547565b604051809103902090505b80610a3860026117e2565b03610a2d57505b610a4881611861565b50565b606060008054610a5a9061358e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a869061358e565b8015610ad35780601f10610aa857610100808354040283529160200191610ad3565b820191906000526020600020905b815481529060010190602001808311610ab657829003601f168201915b5050505050905090565b600080610aec86868686611332565b90506004610af982610e82565b6007811115610b0a57610b0a61313e565b14610b275760405162461bcd60e51b81526004016109f0906135c8565b600a546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190613609565b600a5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610bcf908a908a908a906000908b906004016136eb565b602060405180830381865afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190613609565b6000838152600b602052604080822092909255600a5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610c5b918b918b918b91908b908990600401613739565b600060405180830381600087803b158015610c7557600080fd5b505af1158015610c89573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610cbb91906137a7565b6040805192835260208301919091520160405180910390a15095945050505050565b600080610cec86868686611332565b90506000610cf982610e82565b90506004816007811115610d0f57610d0f61313e565b1480610d2c57506005816007811115610d2a57610d2a61313e565b145b610d485760405162461bcd60e51b81526004016109f0906135c8565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610da682888888886119ad565b610db38288888888611a4f565b610dc08288888888611a5c565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061089f60045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610e5a9061095c90608001610941565b9050610e7787828860405180602001604052806000815250611a95565b979650505050505050565b60006108af82611ab8565b600080339050610eae84828560405180602001604052806000815250611a95565b949350505050565b600080339050610e7787828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061167d915050565b600954600090808203610f17575050600854919050565b60006009610f266001846137ba565b81548110610f3657610f366137cd565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410610f8c57602001516001600160e01b03169392505050565b610eae600985611c02565b610f9f61088b565b6001600160a01b0316336001600160a01b031614610fcf5760405162461bcd60e51b81526004016109f090613557565b30610fd861088b565b6001600160a01b0316146110155760008036604051610ff8929190613547565b604051809103902090505b8061100e60026117e2565b0361100357505b610a4881611cb4565b60008033905061106686828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a9592505050565b9695505050505050565b600061107e85858585611cf5565b95945050505050565b6000611094848484611fb8565b90505b9392505050565b600954600090156110c1576110b36009611549565b6001600160e01b0316905090565b5060085490565b6110d061088b565b6001600160a01b0316336001600160a01b0316146111005760405162461bcd60e51b81526004016109f090613557565b3061110961088b565b6001600160a01b0316146111465760008036604051611129929190613547565b604051809103902090505b8061113f60026117e2565b0361113457505b610a488161204e565b600a546000828152600b602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa1580156111ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d09190613609565b9050806001146111e05780611097565b60009392505050565b600061089f60065490565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610df2565b61122b61088b565b6001600160a01b0316336001600160a01b03161461125b5760405162461bcd60e51b81526004016109f090613557565b3061126461088b565b6001600160a01b0316146112a15760008036604051611284929190613547565b604051809103902090505b8061129a60026117e2565b0361128f57505b600080856001600160a01b03168585856040516112bf929190613547565b60006040518083038185875af1925050503d80600081146112fc576040519150601f19603f3d011682016040523d82523d6000602084013e611301565b606091505b50915091506113298282604051806060016040528060288152602001613a68602891396120b7565b50505050505050565b60008484848460405160200161134b94939291906137e3565b60408051601f19818403018152919052805160209091012095945050505050565b61137461088b565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b81526004016109f090613557565b306113ad61088b565b6001600160a01b0316146113ea57600080366040516113cd929190613547565b604051809103902090505b806113e360026117e2565b036113d857505b610a48816120d0565b6000611097838361140f60408051602081019091526000815290565b611fb8565b61141c61088b565b6001600160a01b0316336001600160a01b03161461144c5760405162461bcd60e51b81526004016109f090613557565b3061145561088b565b6001600160a01b0316146114925760008036604051611475929190613547565b604051809103902090505b8061148b60026117e2565b0361148057505b610a4881612171565b60006108af826121b2565b60006001600160e01b0382111561150f5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016109f0565b5090565b6000806115318461152343611587565b61152c866114a6565b61225c565b6001600160e01b0391821693501690505b9250929050565b805460009080156111e057611571836115636001846137ba565b600091825260209091200190565b54600160201b90046001600160e01b0316611097565b600063ffffffff82111561150f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016109f0565b60006001600160e01b03198216636e665ced60e01b14806108af57506108af826123ff565b60006108af61161e61246a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061167087878787612591565b91509150610dc081612655565b600085815260016020819052604082209061169788610e82565b60078111156116a8576116a861313e565b146117015760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016109f0565b604080516020810190915281546001600160401b03169081905260009061172a90889086611fb8565b9050611739888888848861279f565b835160000361178e57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611781949392919061382e565b60405180910390a2610e77565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb871289888489896040516117cf959493929190613856565b60405180910390a2979650505050505050565b60006117fd8254600f81810b600160801b909204900b131590565b1561181b57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60648111156118e45760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4016109f0565b60006118ee61109e565b905080158015906118ff5750600954155b1561196357604080518082019091526000815260099060208101611922846114a6565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b61196e600983611513565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b306119b661088b565b6001600160a01b031614611a485760005b8451811015611a4657306001600160a01b03168582815181106119ec576119ec6137cd565b60200260200101516001600160a01b031603611a3657611a36838281518110611a1757611a176137cd565b602002602001015180519060200120600261291990919063ffffffff16565b611a3f8161389c565b90506119c7565b505b5050505050565b611a488585858585612955565b30611a6561088b565b6001600160a01b031614611a4857600254600f81810b600160801b909204900b1315611a48576000600255611a48565b600061107e85858585611ab360408051602081019091526000815290565b61167d565b600080611ac4836129c9565b90506004816007811115611ada57611ada61313e565b14611ae55792915050565b6000838152600b602052604090205480611b00575092915050565b600a54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015611b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6d91906138b5565b15611b7c575060079392505050565b600a54604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa158015611bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be991906138b5565b15611bf8575060059392505050565b5060029392505050565b6000438210611c535760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e656460448201526064016109f0565b6000611c5e83611587565b84549091506000611c7186848385612ad8565b90508015611c9e57611c88866115636001846137ba565b54600160201b90046001600160e01b0316611ca1565b60005b6001600160e01b03169695505050505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b6000611cff6111e9565b611d0e336107e66001436137ba565b1015611d765760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b60648201526084016109f0565b6000611d8b8686868680519060200120611332565b90508451865114611dae5760405162461bcd60e51b81526004016109f0906138d7565b8351865114611dcf5760405162461bcd60e51b81526004016109f0906138d7565b6000865111611e205760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016109f0565b600081815260016020908152604091829020825191820190925281546001600160401b03169081905215611ea05760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016109f0565b6000611eb2611ead610e01565b612b36565b611ebb43612b36565b611ec59190613918565b90506000611ed4611ead6108b5565b611ede9083613918565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611f5657611f56612c9b565b604051908082528060200260200182016040528015611f8957816020015b6060815260200190600190039081611f745790505b508c88888e604051611fa39998979695949392919061393f565b60405180910390a15091979650505050505050565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa15801561202a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110949190613609565b600a54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600a80546001600160a01b0319166001600160a01b0392909216919091179055565b606083156120c6575081611097565b6110978383612b9e565b600081116121305760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016109f0565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b600060646121bf83610f00565b604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015612224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122489190613609565b6122529190613a2e565b6108af9190613a45565b8254600090819080156123a257600061227a876115636001856137ba565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156122fb5760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b657900000000000000000060448201526064016109f0565b805163ffffffff808816911603612343578461231c886115636001866137ba565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055612392565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b6020015192508391506123f79050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b0291909316179201919091559050815b935093915050565b60006001600160e01b0319821663bf26d89760e01b148061243057506001600160e01b031982166379dd796f60e01b145b8061244b57506001600160e01b03198216630271189760e51b145b806108af57506301ffc9a760e01b6001600160e01b03198316146108af565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156124c357507f000000000000000000000000000000000000000000000000000000000000000046145b156124ed57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156125c8575060009050600361264c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561261c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126455760006001925092505061264c565b9150600090505b94509492505050565b60008160048111156126695761266961313e565b036126715750565b60018160048111156126855761268561313e565b036126d25760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109f0565b60028160048111156126e6576126e661313e565b036127335760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109f0565b60038160048111156127475761274761313e565b03610a485760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109f0565b60008581526007602090815260408083206001600160a01b0388168452600381019092529091205460ff16156128275760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016109f0565b6001600160a01b03851660009081526003820160205260409020805460ff1916600117905560ff8416612873578281600001600082825461286891906137a7565b90915550611a469050565b60001960ff851601612893578281600101600082825461286891906137a7565b60011960ff8516016128b3578281600201600082825461286891906137a7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016109f0565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b600a5460405163e38335e560e01b81526001600160a01b039091169063e38335e59034906129909088908890889060009089906004016136eb565b6000604051808303818588803b1580156129a957600080fd5b505af11580156129bd573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156129ed5750600792915050565b6002810154610100900460ff1615612a085750600292915050565b6000612a1384610dca565b905080600003612a655760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016109f0565b438110612a76575060009392505050565b6000612a81856111f4565b9050438110612a9557506001949350505050565b612a9e85612bc8565b8015612abd575060008581526007602052604090208054600190910154115b15612acd57506004949350505050565b506003949350505050565b60005b81831015612b2e576000612aef8484612bff565b60008781526020902090915063ffffffff86169082015463ffffffff161115612b1a57809250612b28565b612b258160016137a7565b93505b50612adb565b509392505050565b60006001600160401b0382111561150f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016109f0565b815115612bae5781518083602001fd5b8060405162461bcd60e51b81526004016109f09190612e5d565b600081815260076020526040812060028101546001820154612bea91906137a7565b612bf661085285610dca565b11159392505050565b6000612c0e6002848418613a45565b611097908484166137a7565b600060208284031215612c2c57600080fd5b81356001600160e01b03198116811461109757600080fd5b803560ff81168114612c5557600080fd5b919050565b60008083601f840112612c6c57600080fd5b5081356001600160401b03811115612c8357600080fd5b60208301915083602082850101111561154257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612cd957612cd9612c9b565b604052919050565b60006001600160401b03831115612cfa57612cfa612c9b565b612d0d601f8401601f1916602001612cb1565b9050828152838383011115612d2157600080fd5b828260208301376000602084830101529392505050565b600082601f830112612d4957600080fd5b61109783833560208501612ce1565b60008060008060008060008060e0898b031215612d7457600080fd5b88359750612d8460208a01612c44565b965060408901356001600160401b0380821115612da057600080fd5b612dac8c838d01612c5a565b909850965060608b0135915080821115612dc557600080fd5b50612dd28b828c01612d38565b945050612de160808a01612c44565b925060a0890135915060c089013590509295985092959890939650565b600060208284031215612e1057600080fd5b5035919050565b6000815180845260005b81811015612e3d57602081850181015186830182015201612e21565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006110976020830184612e17565b6001600160a01b0381168114610a4857600080fd5b60008060008060808587031215612e9b57600080fd5b8435612ea681612e70565b93506020850135612eb681612e70565b92506040850135915060608501356001600160401b03811115612ed857600080fd5b612ee487828801612d38565b91505092959194509250565b60006001600160401b03821115612f0957612f09612c9b565b5060051b60200190565b600082601f830112612f2457600080fd5b81356020612f39612f3483612ef0565b612cb1565b82815260059290921b84018101918181019086841115612f5857600080fd5b8286015b84811015612f7c578035612f6f81612e70565b8352918301918301612f5c565b509695505050505050565b600082601f830112612f9857600080fd5b81356020612fa8612f3483612ef0565b82815260059290921b84018101918181019086841115612fc757600080fd5b8286015b84811015612f7c5780358352918301918301612fcb565b600082601f830112612ff357600080fd5b81356020613003612f3483612ef0565b82815260059290921b8401810191818101908684111561302257600080fd5b8286015b84811015612f7c5780356001600160401b038111156130455760008081fd5b6130538986838b0101612d38565b845250918301918301613026565b6000806000806080858703121561307757600080fd5b84356001600160401b038082111561308e57600080fd5b61309a88838901612f13565b955060208701359150808211156130b057600080fd5b6130bc88838901612f87565b945060408701359150808211156130d257600080fd5b506130df87828801612fe2565b949793965093946060013593505050565b600080600080600060a0868803121561310857600080fd5b8535945061311860208701612c44565b935061312660408701612c44565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b602081016008831061317657634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561318f57600080fd5b8235915060208301356131a181612e70565b809150509250929050565b600080604083850312156131bf57600080fd5b823591506131cf60208401612c44565b90509250929050565b6000806000806000608086880312156131f057600080fd5b8535945061320060208701612c44565b935060408601356001600160401b038082111561321c57600080fd5b61322889838a01612c5a565b9095509350606088013591508082111561324157600080fd5b5061324e88828901612d38565b9150509295509295909350565b6000806000806060858703121561327157600080fd5b8435935061328160208601612c44565b925060408501356001600160401b0381111561329c57600080fd5b6132a887828801612c5a565b95989497509550505050565b600080600080608085870312156132ca57600080fd5b84356001600160401b03808211156132e157600080fd5b6132ed88838901612f13565b9550602087013591508082111561330357600080fd5b61330f88838901612f87565b9450604087013591508082111561332557600080fd5b61333188838901612fe2565b9350606087013591508082111561334757600080fd5b508501601f8101871361335957600080fd5b612ee487823560208401612ce1565b60008060006060848603121561337d57600080fd5b833561338881612e70565b92506020840135915060408401356001600160401b038111156133aa57600080fd5b6133b686828701612d38565b9150509250925092565b6000602082840312156133d257600080fd5b813561109781612e70565b600080600080600060a086880312156133f557600080fd5b853561340081612e70565b9450602086013561341081612e70565b935060408601356001600160401b038082111561342c57600080fd5b61343889838a01612f87565b9450606088013591508082111561344e57600080fd5b61345a89838a01612f87565b9350608088013591508082111561324157600080fd5b6000806000806060858703121561348657600080fd5b843561349181612e70565b93506020850135925060408501356001600160401b0381111561329c57600080fd5b600080604083850312156134c657600080fd5b82356134d181612e70565b946020939093013593505050565b600080600080600060a086880312156134f757600080fd5b853561350281612e70565b9450602086013561351281612e70565b9350604086013592506060860135915060808601356001600160401b0381111561353b57600080fd5b61324e88828901612d38565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806135a257607f821691505b6020821081036135c257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b60006020828403121561361b57600080fd5b5051919050565b600081518084526020808501945080840160005b8381101561365b5781516001600160a01b031687529582019590820190600101613636565b509495945050505050565b600081518084526020808501945080840160005b8381101561365b5781518752958201959082019060010161367a565b600081518084526020808501808196508360051b8101915082860160005b858110156136de5782840389526136cc848351612e17565b988501989350908401906001016136b4565b5091979650505050505050565b60a0815260006136fe60a0830188613622565b82810360208401526137108188613666565b905082810360408401526137248187613696565b60608401959095525050608001529392505050565b60c08152600061374c60c0830189613622565b828103602084015261375e8189613666565b905082810360408401526137728188613696565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108af576108af613791565b818103818111156108af576108af613791565b634e487b7160e01b600052603260045260246000fd5b6080815260006137f66080830187613622565b82810360208401526138088187613666565b9050828103604084015261381c8186613696565b91505082606083015295945050505050565b84815260ff841660208201528260408201526080606082015260006110666080830184612e17565b85815260ff8516602082015283604082015260a06060820152600061387e60a0830185612e17565b82810360808401526138908185612e17565b98975050505050505050565b6000600182016138ae576138ae613791565b5060010190565b6000602082840312156138c757600080fd5b8151801515811461109757600080fd5b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b6001600160401b0381811683821601908082111561393857613938613791565b5092915050565b60006101208b8352602060018060a01b038c16818501528160408501526139688285018c613622565b9150838203606085015261397c828b613666565b915083820360808501528189518084528284019150828160051b850101838c0160005b838110156139cd57601f198784030185526139bb838351612e17565b9486019492509085019060010161399f565b505086810360a08801526139e1818c613696565b9450505050506139fc60c08401876001600160401b03169052565b6001600160401b03851660e0840152828103610100840152613a1e8185612e17565b9c9b505050505050505050505050565b80820281158282048414176108af576108af613791565b600082613a6257634e487b7160e01b600052601260045260246000fd5b50049056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a2646970667358221220b7868223f336aeceeb5eda71a20b3db6dc3209d9f5903099c982dcba6dbaa71564736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x24A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B3C71D3 GT PUSH2 0x139 JUMPI DUP1 PUSH4 0xC28BC2FA GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xEA0217CF GT PUSH2 0x7A JUMPI DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x7AB JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x7CB JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x80B JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0x837 JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x6CC JUMPI DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x6DF JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x6FF JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x731 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA890C910 GT PUSH2 0xFD JUMPI DUP1 PUSH4 0xA890C910 EQ PUSH2 0x62B JUMPI DUP1 PUSH4 0xAB58FB8E EQ PUSH2 0x64B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x66B JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x680 JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x6AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0x97C3D334 EQ PUSH2 0x5E2 JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x5F6 JUMPI DUP1 PUSH4 0xA7713A70 EQ PUSH2 0x616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x54FD4D50 GT PUSH2 0x18B JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x522 JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x542 JUMPI DUP1 PUSH4 0x60C4247F EQ PUSH2 0x562 JUMPI DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x582 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x3F7 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0x544FFC9C EQ PUSH2 0x4A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x150B7A02 GT PUSH2 0x20E JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x160CBED7 EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x390 JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x3C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x6F3F9E6 EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x26D JUMPI ADDRESS PUSH2 0x258 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1A JUMP JUMPDEST PUSH2 0x8A4 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 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x8B5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x2E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D58 JUMP JUMPDEST PUSH2 0x8C0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x305 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x9B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31F PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2E5D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x347 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E85 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0xADD JUMP JUMPDEST PUSH2 0x2BC PUSH2 0x39E CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0xCDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x3BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0xE01 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x30F0 JUMP JUMPDEST PUSH2 0xE0C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x44C PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x3154 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x465 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x292 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x317C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DD PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x504 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x31F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x53D CALLDATASIZE PUSH1 0x4 PUSH2 0x31AC JUMP JUMPDEST PUSH2 0xE8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x55D CALLDATASIZE PUSH1 0x4 PUSH2 0x31D8 JUMP JUMPDEST PUSH2 0xEB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x57D CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xF00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0xF97 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x5BD CALLDATASIZE PUSH1 0x4 PUSH2 0x325B JUMP JUMPDEST PUSH2 0x101E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x5DD CALLDATASIZE PUSH1 0x4 PUSH2 0x32B4 JUMP JUMPDEST PUSH2 0x1070 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x64 PUSH2 0x2BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x602 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x611 CALLDATASIZE PUSH1 0x4 PUSH2 0x3368 JUMP JUMPDEST PUSH2 0x1087 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x622 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x109E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x637 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x646 CALLDATASIZE PUSH1 0x4 PUSH2 0x33C0 JUMP JUMPDEST PUSH2 0x10C8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x666 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x114F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x11E9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x68C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x33DD JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x6C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x11F4 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x6DA CALLDATASIZE PUSH1 0x4 PUSH2 0x3470 JUMP JUMPDEST PUSH2 0x1223 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x3061 JUMP JUMPDEST PUSH2 0x1332 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x29E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D666F722C6162737461696E SWAP1 DUP3 ADD MSTORE PUSH2 0x31F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x783 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x7C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x136C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x7E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x34B3 JUMP JUMPDEST PUSH2 0x13F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x806 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x1414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x817 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x357 PUSH2 0x826 CALLDATASIZE PUSH1 0x4 PUSH2 0x34DF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x843 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BC PUSH2 0x852 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFE JUMP JUMPDEST PUSH2 0x149B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x863 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x719 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x15EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x964 PUSH2 0x95C PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x8FC SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x941 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1611 JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x165F JUMP JUMPDEST SWAP1 POP PUSH2 0x9AA DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x167D SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x9C0 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x9F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST ADDRESS PUSH2 0xA02 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xA22 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xA38 PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0xA2D JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x1861 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xA5A SWAP1 PUSH2 0x358E 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 0xA86 SWAP1 PUSH2 0x358E JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAD3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAA8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAD3 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 0xAB6 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xAEC DUP7 DUP7 DUP7 DUP7 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH2 0xAF9 DUP3 PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xB0A JUMPI PUSH2 0xB0A PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0xB27 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x35C8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x793D0649 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF27A0C92 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB95 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xB1C5F427 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB1C5F427 SWAP1 PUSH2 0xBCF SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x36EB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC10 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xA SLOAD SWAP2 MLOAD PUSH4 0x8F2A0BB PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8F2A0BB0 SWAP2 PUSH2 0xC5B SWAP2 DUP12 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3739 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP3 DUP3 TIMESTAMP PUSH2 0xCBB SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCEC DUP7 DUP7 DUP7 DUP7 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xCF9 DUP3 PUSH2 0xE82 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xD0F JUMPI PUSH2 0xD0F PUSH2 0x313E JUMP JUMPDEST EQ DUP1 PUSH2 0xD2C JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD2A PUSH2 0x313E JUMP JUMPDEST EQ JUMPDEST PUSH2 0xD48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x35C8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xDA6 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xDB3 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1A4F JUMP JUMPDEST PUSH2 0xDC0 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x1A5C JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0xE5A SWAP1 PUSH2 0x95C SWAP1 PUSH1 0x80 ADD PUSH2 0x941 JUMP JUMPDEST SWAP1 POP PUSH2 0xE77 DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1A95 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xEAE DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1A95 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xE77 DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x167D SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP1 DUP3 SUB PUSH2 0xF17 JUMPI POP POP PUSH1 0x8 SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 PUSH2 0xF26 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF36 JUMPI PUSH2 0xF36 PUSH2 0x37CD 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 DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP2 POP DUP5 LT PUSH2 0xF8C JUMPI PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEAE PUSH1 0x9 DUP6 PUSH2 0x1C02 JUMP JUMPDEST PUSH2 0xF9F PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0xFD8 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1015 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xFF8 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x100E PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1003 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x1CB4 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1066 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x1A95 SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107E DUP6 DUP6 DUP6 DUP6 PUSH2 0x1CF5 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1094 DUP5 DUP5 DUP5 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x10C1 JUMPI PUSH2 0x10B3 PUSH1 0x9 PUSH2 0x1549 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST POP PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x10D0 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1109 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1146 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1129 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x113F PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1134 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x204E JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xD45C4435 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD45C4435 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11AC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11D0 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 EQ PUSH2 0x11E0 JUMPI DUP1 PUSH2 0x1097 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0xDF2 JUMP JUMPDEST PUSH2 0x122B PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x125B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1264 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12A1 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1284 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x129A PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x128F JUMPI POP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x12BF SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x12FC 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 0x1301 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1329 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A68 PUSH1 0x28 SWAP2 CODECOPY PUSH2 0x20B7 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x134B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x37E3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1374 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x13AD PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13EA JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x13CD SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x13E3 PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x13D8 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x20D0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1097 DUP4 DUP4 PUSH2 0x140F PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1FB8 JUMP JUMPDEST PUSH2 0x141C PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x144C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x3557 JUMP JUMPDEST ADDRESS PUSH2 0x1455 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1492 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1475 SWAP3 SWAP2 SWAP1 PUSH2 0x3547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x148B PUSH1 0x2 PUSH2 0x17E2 JUMP JUMPDEST SUB PUSH2 0x1480 JUMPI POP JUMPDEST PUSH2 0xA48 DUP2 PUSH2 0x2171 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF DUP3 PUSH2 0x21B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1531 DUP5 PUSH2 0x1523 NUMBER PUSH2 0x1587 JUMP JUMPDEST PUSH2 0x152C DUP7 PUSH2 0x14A6 JUMP JUMPDEST PUSH2 0x225C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 SLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO PUSH2 0x11E0 JUMPI PUSH2 0x1571 DUP4 PUSH2 0x1563 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SWAP1 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1097 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x6E665CED PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8AF JUMPI POP PUSH2 0x8AF DUP3 PUSH2 0x23FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8AF PUSH2 0x161E PUSH2 0x246A JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1670 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2591 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xDC0 DUP2 PUSH2 0x2655 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x1697 DUP9 PUSH2 0xE82 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x16A8 JUMPI PUSH2 0x16A8 PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0x1701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x172A SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x1FB8 JUMP JUMPDEST SWAP1 POP PUSH2 0x1739 DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x279F JUMP JUMPDEST DUP4 MLOAD PUSH1 0x0 SUB PUSH2 0x178E JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x1781 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x382E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0xE77 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x17CF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3856 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP4 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x64 DUP2 GT ISZERO PUSH2 0x18E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x43 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74657351756F72756D4672616374696F6E3A2071756F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72756D4E756D657261746F72206F7665722071756F72756D44656E6F6D696E61 PUSH1 0x64 DUP3 ADD MSTORE PUSH3 0x3A37B9 PUSH1 0xE9 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18EE PUSH2 0x109E JUMP JUMPDEST SWAP1 POP DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x18FF JUMPI POP PUSH1 0x9 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0x1963 JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x9 SWAP1 PUSH1 0x20 DUP2 ADD PUSH2 0x1922 DUP5 PUSH2 0x14A6 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 PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH4 0xFFFFFFFF SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP2 ADD SSTORE JUMPDEST PUSH2 0x196E PUSH1 0x9 DUP4 PUSH2 0x1513 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x553476BF02EF2726E8CE5CED78D63E26E602E4A2257B1F559418E24B4633997 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST ADDRESS PUSH2 0x19B6 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A48 JUMPI PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1A46 JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19EC JUMPI PUSH2 0x19EC PUSH2 0x37CD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x1A36 JUMPI PUSH2 0x1A36 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A17 JUMPI PUSH2 0x1A17 PUSH2 0x37CD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x2919 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1A3F DUP2 PUSH2 0x389C JUMP JUMPDEST SWAP1 POP PUSH2 0x19C7 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A48 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2955 JUMP JUMPDEST ADDRESS PUSH2 0x1A65 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A48 JUMPI PUSH1 0x2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 PUSH1 0x2 SSTORE PUSH2 0x1A48 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x107E DUP6 DUP6 DUP6 DUP6 PUSH2 0x1AB3 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x167D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1AC4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1ADA JUMPI PUSH2 0x1ADA PUSH2 0x313E JUMP JUMPDEST EQ PUSH2 0x1AE5 JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x1B00 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2AB0F529 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2AB0F529 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B49 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B6D SWAP2 SWAP1 PUSH2 0x38B5 JUMP JUMPDEST ISZERO PUSH2 0x1B7C JUMPI POP PUSH1 0x7 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2C258A9F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x584B153E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BC5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BE9 SWAP2 SWAP1 PUSH2 0x38B5 JUMP JUMPDEST ISZERO PUSH2 0x1BF8 JUMPI POP PUSH1 0x5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP PUSH1 0x2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x1C53 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B706F696E74733A20626C6F636B206E6F7420796574206D696E6564 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C5E DUP4 PUSH2 0x1587 JUMP JUMPDEST DUP5 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x1C71 DUP7 DUP5 DUP4 DUP6 PUSH2 0x2AD8 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1C9E JUMPI PUSH2 0x1C88 DUP7 PUSH2 0x1563 PUSH1 0x1 DUP5 PUSH2 0x37BA JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH2 0x1CA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CFF PUSH2 0x11E9 JUMP JUMPDEST PUSH2 0x1D0E CALLER PUSH2 0x7E6 PUSH1 0x1 NUMBER PUSH2 0x37BA JUMP JUMPDEST LT ISZERO PUSH2 0x1D76 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D8B DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1332 JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0x1DAE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x38D7 JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0x1DCF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP1 PUSH2 0x38D7 JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0x1E20 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 0x476F7665726E6F723A20656D7074792070726F706F73616C0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0x1EA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB2 PUSH2 0x1EAD PUSH2 0xE01 JUMP JUMPDEST PUSH2 0x2B36 JUMP JUMPDEST PUSH2 0x1EBB NUMBER PUSH2 0x2B36 JUMP JUMPDEST PUSH2 0x1EC5 SWAP2 SWAP1 PUSH2 0x3918 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1ED4 PUSH2 0x1EAD PUSH2 0x8B5 JUMP JUMPDEST PUSH2 0x1EDE SWAP1 DUP4 PUSH2 0x3918 JUMP JUMPDEST DUP4 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND OR DUP5 SSTORE SWAP1 POP PUSH1 0x1 DUP4 ADD DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND OR SWAP1 SSTORE PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1F56 JUMPI PUSH2 0x1F56 PUSH2 0x2C9B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1F89 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1F74 JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x1FA3 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x393F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x202A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1094 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x20C6 JUMPI POP DUP2 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0x1097 DUP4 DUP4 PUSH2 0x2B9E JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x64 PUSH2 0x21BF DUP4 PUSH2 0xF00 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2394E7A3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8E539E8C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2224 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2248 SWAP2 SWAP1 PUSH2 0x3609 JUMP JUMPDEST PUSH2 0x2252 SWAP2 SWAP1 PUSH2 0x3A2E JUMP JUMPDEST PUSH2 0x8AF SWAP2 SWAP1 PUSH2 0x3A45 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP1 ISZERO PUSH2 0x23A2 JUMPI PUSH1 0x0 PUSH2 0x227A DUP8 PUSH2 0x1563 PUSH1 0x1 DUP6 PUSH2 0x37BA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE SWAP1 SLOAD PUSH4 0xFFFFFFFF DUP1 DUP3 AND DUP1 DUP5 MSTORE PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x20 DUP5 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP8 AND LT ISZERO PUSH2 0x22FB 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 0x436865636B706F696E743A20696E76616C6964206B6579000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP1 MLOAD PUSH4 0xFFFFFFFF DUP1 DUP9 AND SWAP2 AND SUB PUSH2 0x2343 JUMPI DUP5 PUSH2 0x231C DUP9 PUSH2 0x1563 PUSH1 0x1 DUP7 PUSH2 0x37BA JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2392 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP9 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP9 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP12 SLOAD PUSH1 0x1 DUP2 ADD DUP14 SSTORE PUSH1 0x0 DUP14 DUP2 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP5 MLOAD SWAP2 MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP2 ADD SSTORE JUMPDEST PUSH1 0x20 ADD MLOAD SWAP3 POP DUP4 SWAP2 POP PUSH2 0x23F7 SWAP1 POP JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH4 0xFFFFFFFF DUP1 DUP6 AND DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP1 DUP6 AND PUSH1 0x20 DUP1 DUP6 ADD SWAP2 DUP3 MSTORE DUP9 SLOAD PUSH1 0x1 DUP2 ADD DUP11 SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE SWAP2 DUP3 KECCAK256 SWAP6 MLOAD SWAP3 MLOAD SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x20 SHL MUL SWAP2 SWAP1 SWAP4 AND OR SWAP3 ADD SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP DUP2 JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2430 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x244B JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0x8AF JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x24C3 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x24ED JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x25C8 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x264C 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 0x261C 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 0x2645 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x264C 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 0x2669 JUMPI PUSH2 0x2669 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x2671 JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2685 JUMPI PUSH2 0x2685 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x26D2 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 0x9F0 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x26E6 JUMPI PUSH2 0x26E6 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0x2733 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 0x9F0 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2747 JUMPI PUSH2 0x2747 PUSH2 0x313E JUMP JUMPDEST SUB PUSH2 0xA48 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x3 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2827 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20766F746520616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x191E4818D85CDD PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0xFF DUP5 AND PUSH2 0x2873 JUMPI DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1A46 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP6 AND ADD PUSH2 0x2893 JUMPI DUP3 DUP2 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x1 NOT PUSH1 0xFF DUP6 AND ADD PUSH2 0x28B3 JUMPI DUP3 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2868 SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x35 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74696E6753696D706C653A20696E76616C6964207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH21 0x6C756520666F7220656E756D20566F746554797065 PUSH1 0x58 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP4 SWAP1 SWAP2 ADD AND MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE38335E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE38335E5 SWAP1 CALLVALUE SWAP1 PUSH2 0x2990 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x36EB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x29BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x29ED JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x2A08 JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP5 PUSH2 0xDCA JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x2A65 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9F0 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0x2A76 JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A81 DUP6 PUSH2 0x11F4 JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0x2A95 JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2A9E DUP6 PUSH2 0x2BC8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2ABD JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x2ACD JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x2B2E JUMPI PUSH1 0x0 PUSH2 0x2AEF DUP5 DUP5 PUSH2 0x2BFF JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH4 0xFFFFFFFF DUP7 AND SWAP1 DUP3 ADD SLOAD PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x2B1A JUMPI DUP1 SWAP3 POP PUSH2 0x2B28 JUMP JUMPDEST PUSH2 0x2B25 DUP2 PUSH1 0x1 PUSH2 0x37A7 JUMP JUMPDEST SWAP4 POP JUMPDEST POP PUSH2 0x2ADB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x9F0 JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x2BAE JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F0 SWAP2 SWAP1 PUSH2 0x2E5D JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH2 0x2BEA SWAP2 SWAP1 PUSH2 0x37A7 JUMP JUMPDEST PUSH2 0x2BF6 PUSH2 0x852 DUP6 PUSH2 0xDCA JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C0E PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x3A45 JUMP JUMPDEST PUSH2 0x1097 SWAP1 DUP5 DUP5 AND PUSH2 0x37A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2C55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2C6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1542 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 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2CD9 JUMPI PUSH2 0x2CD9 PUSH2 0x2C9B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 GT ISZERO PUSH2 0x2CFA JUMPI PUSH2 0x2CFA PUSH2 0x2C9B JUMP JUMPDEST PUSH2 0x2D0D PUSH1 0x1F DUP5 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2CB1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP4 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D21 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 0x2D49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1097 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x2CE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x2D84 PUSH1 0x20 DUP11 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2DA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DAC DUP13 DUP4 DUP14 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DD2 DUP12 DUP3 DUP13 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP5 POP POP PUSH2 0x2DE1 PUSH1 0x80 DUP11 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E3D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x2E21 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1097 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x2EA6 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x2EB6 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2ED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EE4 DUP8 DUP3 DUP9 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x2F09 JUMPI PUSH2 0x2F09 PUSH2 0x2C9B JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2F39 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 JUMP JUMPDEST PUSH2 0x2CB1 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 0x2F58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD PUSH2 0x2F6F DUP2 PUSH2 0x2E70 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2F5C JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2F98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x2FA8 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 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 0x2FC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x2FCB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2FF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x3003 PUSH2 0x2F34 DUP4 PUSH2 0x2EF0 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 0x3022 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x2F7C JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3053 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x2D38 JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x3026 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3077 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x308E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x309A DUP9 DUP4 DUP10 ADD PUSH2 0x2F13 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x30BC DUP9 DUP4 DUP10 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x30D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30DF DUP8 DUP3 DUP9 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3118 PUSH1 0x20 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP4 POP PUSH2 0x3126 PUSH1 0x40 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST 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 0x3176 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 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x31A1 DUP2 PUSH2 0x2E70 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x31CF PUSH1 0x20 DUP5 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x31F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x3200 PUSH1 0x20 DUP8 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x321C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3228 DUP10 DUP4 DUP11 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x324E DUP9 DUP3 DUP10 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x3281 PUSH1 0x20 DUP7 ADD PUSH2 0x2C44 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x329C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x32A8 DUP8 DUP3 DUP9 ADD PUSH2 0x2C5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x32CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x32E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x32ED DUP9 DUP4 DUP10 ADD PUSH2 0x2F13 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x330F DUP9 DUP4 DUP10 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3325 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3331 DUP9 DUP4 DUP10 ADD PUSH2 0x2FE2 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x3359 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EE4 DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x2CE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x337D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3388 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x33AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33B6 DUP7 DUP3 DUP8 ADD PUSH2 0x2D38 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1097 DUP2 PUSH2 0x2E70 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x33F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3400 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3410 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x342C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3438 DUP10 DUP4 DUP11 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x344E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x345A DUP10 DUP4 DUP11 ADD PUSH2 0x2F87 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x3241 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3486 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3491 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x329C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x34C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x34D1 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x34F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3502 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3512 DUP2 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324E DUP9 DUP3 DUP10 ADD PUSH2 0x2D38 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A206F6E6C79476F7665726E616E63650000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x35A2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x35C2 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x361B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 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 0x365B 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 0x3636 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x365B JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x367A 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 0x36DE JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x36CC DUP5 DUP4 MLOAD PUSH2 0x2E17 JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x36B4 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x36FE PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3710 DUP2 DUP9 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3724 DUP2 DUP8 PUSH2 0x3696 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x374C PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x375E DUP2 DUP10 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3772 DUP2 DUP9 PUSH2 0x3696 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x37F6 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3622 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3808 DUP2 DUP8 PUSH2 0x3666 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x381C DUP2 DUP7 PUSH2 0x3696 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1066 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x387E PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2E17 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3890 DUP2 DUP6 PUSH2 0x2E17 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x38AE JUMPI PUSH2 0x38AE PUSH2 0x3791 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH2 0x3938 PUSH2 0x3791 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP12 DUP4 MSTORE PUSH1 0x20 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP13 AND DUP2 DUP6 ADD MSTORE DUP2 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x3968 DUP3 DUP6 ADD DUP13 PUSH2 0x3622 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x397C DUP3 DUP12 PUSH2 0x3666 JUMP JUMPDEST SWAP2 POP DUP4 DUP3 SUB PUSH1 0x80 DUP6 ADD MSTORE DUP2 DUP10 MLOAD DUP1 DUP5 MSTORE DUP3 DUP5 ADD SWAP2 POP DUP3 DUP2 PUSH1 0x5 SHL DUP6 ADD ADD DUP4 DUP13 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x39CD JUMPI PUSH1 0x1F NOT DUP8 DUP5 SUB ADD DUP6 MSTORE PUSH2 0x39BB DUP4 DUP4 MLOAD PUSH2 0x2E17 JUMP JUMPDEST SWAP5 DUP7 ADD SWAP5 SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x399F JUMP JUMPDEST POP POP DUP7 DUP2 SUB PUSH1 0xA0 DUP9 ADD MSTORE PUSH2 0x39E1 DUP2 DUP13 PUSH2 0x3696 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x39FC PUSH1 0xC0 DUP5 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0xE0 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x3A1E DUP2 DUP6 PUSH2 0x2E17 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x8AF JUMPI PUSH2 0x8AF PUSH2 0x3791 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x3A62 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F723A2072656C6179207265 PUSH23 0x657274656420776974686F7574206D657373616765A264 PUSH10 0x70667358221220B78682 0x23 RETURN CALLDATASIZE 0xAE 0xCE 0xEB 0x5E 0xDA PUSH18 0xA20B3DB6DC3209D9F5903099C982DCBA6DBA 0xA7 ISZERO PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"567:2694:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3749:4:20;3726:11;:9;:11::i;:::-;-1:-1:-1;;;;;3726:28:20;;3718:37;;;;;;567:2694:78;;;;;3067:192;;;;;;;;;;-1:-1:-1;3067:192:78;;;;;:::i;:::-;;:::i;:::-;;;470:14:89;;463:22;445:41;;433:2;418:18;3067:192:78;;;;;;;;1330:136;;;;;;;;;;;;;:::i;:::-;;;643:25:89;;;631:2;616:18;1330:136:78;497:177:89;16332:784:20;;;;;;;;;;-1:-1:-1;16332:784:20;;;;;:::i;:::-;;:::i;3127:150:27:-;;;;;;;;;;-1:-1:-1;3127:150:27;;;;;:::i;:::-;;:::i;4623:98:20:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19868:200::-;;;;;;;;;;-1:-1:-1;19868:200:20;;;;;:::i;:::-;-1:-1:-1;;;19868:200:20;;;;;;;;;;-1:-1:-1;;;;;;5030:33:89;;;5012:52;;5000:2;4985:18;19868:200:20;4868:202:89;3610:739:25;;;;;;;;;;-1:-1:-1;3610:739:25;;;;;:::i;:::-;;:::i;10757:867:20:-;;;;;;:::i;:::-;;:::i;7171:163::-;;;;;;;;;;-1:-1:-1;7171:163:20;;;;;:::i;:::-;;:::i;1341:147::-;;;;;;;;;;;;1400:88;1341:147;;1190:134:78;;;;;;;;;;;;;:::i;15821:427:20:-;;;;;;;;;;-1:-1:-1;15821:427:20;;;;;:::i;:::-;;:::i;1657:162:78:-;;;;;;;;;;-1:-1:-1;1657:162:78;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1039:167:23:-;;;;;;;;;;-1:-1:-1;1039:167:23;;;;;:::i;:::-;1132:4;1155:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;1155:44:23;;;;:35;;:44;;;;;;;;1039:167;;;;;1278:389;;;;;;;;;;-1:-1:-1;1278:389:23;;;;;:::i;:::-;1395:20;1540:26;;;:14;:26;;;;;1584:25;;1611:21;;;;1634:25;;;;;1584;;1278:389;;;;;10115:25:89;;;10171:2;10156:18;;10149:34;;;;10199:18;;;10192:34;10103:2;10088:18;1278:389:23;9913:319:89;4780:99:20;;;;;;;;;;-1:-1:-1;4862:10:20;;;;;;;;;;;;-1:-1:-1;;;4862:10:20;;;;4780:99;;14831:198;;;;;;;;;;-1:-1:-1;14831:198:20;;;;;:::i;:::-;;:::i;15444:312::-;;;;;;;;;;-1:-1:-1;15444:312:20;;;;;:::i;:::-;;:::i;1664:649:27:-;;;;;;;;;;-1:-1:-1;1664:649:27;;;;;:::i;:::-;;:::i;1738:126:24:-;;;;;;;;;;-1:-1:-1;1738:126:24;;;;;:::i;:::-;;:::i;15099:266:20:-;;;;;;;;;;-1:-1:-1;15099:266:20;;;;;:::i;:::-;;:::i;1825:292:78:-;;;;;;;;;;-1:-1:-1;1825:292:78;;;;;:::i;:::-;;:::i;2419:94:27:-;;;;;;;;;;-1:-1:-1;2503:3:27;2419:94;;14544:227:20;;;;;;;;;;-1:-1:-1;14544:227:20;;;;;:::i;:::-;;:::i;1357:191:27:-;;;;;;;;;;;;;:::i;6247:133:25:-;;;;;;;;;;-1:-1:-1;6247:133:25;;;;;:::i;:::-;;:::i;3271:259::-;;;;;;;;;;-1:-1:-1;3271:259:25;;;;;:::i;:::-;;:::i;2123:145:78:-;;;;;;;;;;;;;:::i;20444:247:20:-;;;;;;;;;;-1:-1:-1;20444:247:20;;;;;:::i;:::-;-1:-1:-1;;;20444:247:20;;;;;;;;7402:161;;;;;;;;;;-1:-1:-1;7402:161:20;;;;;:::i;:::-;;:::i;19182:326::-;;;;;;:::i;:::-;;:::i;5824:308::-;;;;;;;;;;-1:-1:-1;5824:308:20;;;;;:::i;:::-;;:::i;3074:109:25:-;;;;;;;;;;-1:-1:-1;3166:9:25;;-1:-1:-1;;;;;3166:9:25;3074:109;;;-1:-1:-1;;;;;15647:32:89;;;15629:51;;15617:2;15602:18;3074:109:25;15483:203:89;843:136:23;;;;;;;;;;-1:-1:-1;931:41:23;;;;;;;;;;;;;;;;;;843:136;;1240:95:20;;;;;;;;;;;;1282:53;1240:95;;2039:130:24;;;;;;;;;;-1:-1:-1;2039:130:24;;;;;:::i;:::-;;:::i;14298:176:20:-;;;;;;;;;;-1:-1:-1;14298:176:20;;;;;:::i;:::-;;:::i;2354:150:24:-;;;;;;;;;;-1:-1:-1;2354:150:24;;;;;:::i;:::-;;:::i;20144:219:20:-;;;;;;;;;;-1:-1:-1;20144:219:20;;;;;:::i;:::-;-1:-1:-1;;;20144:219:20;;;;;;;;1472:179:78;;;;;;;;;;-1:-1:-1;1472:179:78;;;;;:::i;:::-;;:::i;420:29:26:-;;;;;;;;;;;;;;;2923:138:78;3011:7;3037:17;3166:9:25;;-1:-1:-1;;;;;3166:9:25;;3074:109;3037:17:78;3030:24;;2923:138;:::o;3067:192::-;3193:4;3216:36;3240:11;3216:23;:36::i;:::-;3209:43;3067:192;-1:-1:-1;;3067:192:78:o;1330:136::-;1413:7;1439:20;1359:13:24;;;1271:108;16332:784:20;16580:7;16599:13;16615:423;16642:341;1400:88;16793:10;16829:7;16878:6;;16862:24;;;;;;;:::i;:::-;;;;;;;;16922:6;16912:17;;;;;;16707:244;;;;;;;;;;;17504:25:89;;;17560:2;17545:18;;17538:34;;;;17620:4;17608:17;;;;17603:2;17588:18;;17581:45;17657:2;17642:18;;17635:34;17700:3;17685:19;;17678:35;17491:3;17476:19;;17249:470;16707:244:20;;;;;;;;;;;;;16676:293;;;;;;16642:16;:341::i;:::-;16997:1;17012;17027;16615:13;:423::i;:::-;16599:439;;17056:53;17066:10;17078:5;17085:7;17094:6;;17056:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17102:6:20;;-1:-1:-1;17056:9:20;;-1:-1:-1;;17056:53:20:i;:::-;17049:60;16332:784;-1:-1:-1;;;;;;;;;;16332:784:20:o;3127:150:27:-;3023:11:20;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;;;;;;;;;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;3228:42:27::1;3251:18;3228:22;:42::i;:::-;3127:150:::0;:::o;4623:98:20:-;4677:13;4709:5;4702:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4623:98;:::o;3610:739:25:-;3798:7;3817:18;3838:57;3851:7;3860:6;3868:9;3879:15;3838:12;:57::i;:::-;3817:78;-1:-1:-1;3935:23:25;3914:17;3920:10;3914:5;:17::i;:::-;:44;;;;;;;;:::i;:::-;;3906:90;;;;-1:-1:-1;;;3906:90:25;;;;;;;:::i;:::-;4023:9;;:23;;;-1:-1:-1;;;4023:23:25;;;;4007:13;;-1:-1:-1;;;;;4023:9:25;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4083:9;;:76;;-1:-1:-1;;;4083:76:25;;4007:39;;-1:-1:-1;;;;;;4083:9:25;;:28;;:76;;4112:7;;4121:6;;4129:9;;4083;;4143:15;;4083:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4056:24;;;;:12;:24;;;;;;:103;;;;4169:9;;:78;;-1:-1:-1;;;4169:78:25;;-1:-1:-1;;;;;4169:9:25;;;;:23;;:78;;4193:7;;4202:6;;4210:9;;4056:24;4224:15;;4241:5;;4169:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:51;4278:10;4308:5;4290:15;:23;;;;:::i;:::-;4263:51;;;22962:25:89;;;23018:2;23003:18;;22996:34;;;;22935:18;4263:51:25;;;;;;;-1:-1:-1;4332:10:25;3610:739;-1:-1:-1;;;;;3610:739:25:o;10757:867:20:-;10955:7;10974:18;10995:57;11008:7;11017:6;11025:9;11036:15;10995:12;:57::i;:::-;10974:78;;11063:20;11086:17;11092:10;11086:5;:17::i;:::-;11063:40;-1:-1:-1;11144:23:20;11134:6;:33;;;;;;;;:::i;:::-;;:67;;;-1:-1:-1;11181:20:20;11171:6;:30;;;;;;;;:::i;:::-;;11134:67;11113:147;;;;-1:-1:-1;;;11113:147:20;;;;;;;:::i;:::-;11270:22;;;;11304:4;11270:22;;;;;;;;;:31;;:38;;-1:-1:-1;;11270:38:20;;;;;;;11324:28;;643:25:89;;;11324:28:20;;616:18:89;11324:28:20;;;;;;;11363:71;11378:10;11390:7;11399:6;11407:9;11418:15;11363:14;:71::i;:::-;11444:65;11453:10;11465:7;11474:6;11482:9;11493:15;11444:8;:65::i;:::-;11519:70;11533:10;11545:7;11554:6;11562:9;11573:15;11519:13;:70::i;:::-;-1:-1:-1;11607:10:20;10757:867;-1:-1:-1;;;;;10757:867:20:o;7171:163::-;7255:7;7281:22;;;:10;:22;;;;;;;;:44;;;;;;;;;-1:-1:-1;;;;;7281:44:20;;;;;:46;-1:-1:-1;;;;;7274:53:20;;7171:163;-1:-1:-1;;7171:163:20:o;1190:134:78:-;1272:7;1298:19;1188:12:24;;;1101:106;15821:427:20;16078:48;;;1282:53;16078:48;;;23239:25:89;23280:18;;;23273:34;;;23355:4;23343:17;;23323:18;;;23316:45;15989:7:20;;;;16024:159;;16051:77;;23212:18:89;;16078:48:20;23041:326:89;16024:159:20;16008:175;;16200:41;16210:10;16222:5;16229:7;16200:41;;;;;;;;;;;;:9;:41::i;:::-;16193:48;15821:427;-1:-1:-1;;;;;;;15821:427:20:o;1657:162:78:-;1757:13;1789:23;1801:10;1789:11;:23::i;14831:198:20:-;14917:7;;719:10:47;14936:28:20;;14981:41;14991:10;15003:5;15010:7;14981:41;;;;;;;;;;;;:9;:41::i;:::-;14974:48;14831:198;-1:-1:-1;;;;14831:198:20:o;15444:312::-;15632:7;;719:10:47;15651:28:20;;15696:53;15706:10;15718:5;15725:7;15734:6;;15696:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15742:6:20;;-1:-1:-1;15696:9:20;;-1:-1:-1;;15696:53:20:i;1664:649:27:-;1831:23;:43;1739:7;;1888:11;;;1884:65;;-1:-1:-1;;1922:16:27;;;1664:649;-1:-1:-1;1664:649:27:o;1884:65::-;2017:36;2056:23;2093:10;2102:1;2093:6;:10;:::i;:::-;2056:48;;;;;;;;:::i;:::-;;;;;;;;;;2017:87;;;;;;;;;2056:48;;2017:87;;;;;;;-1:-1:-1;;;2017:87:27;;;-1:-1:-1;;;;;2017:87:27;;;;;;;;;-1:-1:-1;;;2114:85:27;;2175:13;;;-1:-1:-1;;;;;2168:20:27;;1664:649;-1:-1:-1;;;1664:649:27:o;2114:85::-;2259:47;:23;2294:11;2259:34;:47::i;1738:126:24:-;3023:11:20;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;1826:31:24::1;1842:14;1826:15;:31::i;15099:266:20:-:0;15249:7;;719:10:47;15268:28:20;;15313:45;15323:10;15335:5;15342:7;15351:6;;15313:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15313:9:20;;-1:-1:-1;;;15313:45:20:i;:::-;15306:52;15099:266;-1:-1:-1;;;;;;15099:266:20:o;1825:292:78:-;2030:7;2056:54;2070:7;2079:6;2087:9;2098:11;2056:13;:54::i;:::-;2049:61;1825:292;-1:-1:-1;;;;;1825:292:78:o;14544:227:20:-;14699:7;14725:39;14735:7;14744:11;14757:6;14725:9;:39::i;:::-;14718:46;;14544:227;;;;;;:::o;1357:191:27:-;1439:23;:43;1413:7;;1439:48;:102;;1509:32;:23;:30;:32::i;:::-;-1:-1:-1;;;;;1439:102:27;3030:24:78;;2923:138;:::o;1439:102:27:-;-1:-1:-1;1490:16:27;;;1357:191::o;6247:133:25:-;3023:11:20;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;6345:28:25::1;6361:11;6345:15;:28::i;3271:259::-:0;3383:9;;3350:7;3406:24;;;:12;:24;;;;;;;3383:48;;-1:-1:-1;;;3383:48:25;;;;;643:25:89;;;;3350:7:25;;;;-1:-1:-1;;;;;3383:9:25;;;;:22;;616:18:89;;3383:48:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3369:62;;3448:3;3455:1;3448:8;:18;;3463:3;3448:18;;;3459:1;3441:25;3271:259;-1:-1:-1;;;3271:259:25:o;2123:145:78:-;2210:7;2236:25;1540:18:24;;;1447:118;7402:161:20;7486:7;7512:22;;;:10;:22;;;;;;;;:42;;;;;;;;:30;;;:42;-1:-1:-1;;;;;7512:42:20;;;;;:44;1170:117:50;19182:326:20;3023:11;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;19330:12:::1;19344:23:::0;19371:6:::1;-1:-1:-1::0;;;;;19371:11:20::1;19390:5;19397:4;;19371:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19329:73;;;;19412:89;19437:7;19446:10;19412:89;;;;;;;;;;;;;;;;;:24;:89::i;:::-;;19319:189;;19182:326:::0;;;;:::o;5824:308::-;6024:7;6079;6088:6;6096:9;6107:15;6068:55;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6068:55:20;;;;;;;;;6058:66;;6068:55;6058:66;;;;;5824:308;-1:-1:-1;;;;;5824:308:20:o;2039:130:24:-;3023:11:20;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;2129:33:24::1;2146:15;2129:16;:33::i;14298:176:20:-:0;14392:7;14418:49;14428:7;14437:11;14450:16;9215:9;;;;;;;;;-1:-1:-1;9215:9:20;;;9134:97;14450:16;14418:9;:49::i;2354:150:24:-;3023:11:20;:9;:11::i;:::-;-1:-1:-1;;;;;3007:27:20;719:10:47;-1:-1:-1;;;;;3007:27:20;;2999:64;;;;-1:-1:-1;;;2999:64:20;;;;;;;:::i;:::-;3100:4;3077:11;:9;:11::i;:::-;-1:-1:-1;;;;;3077:28:20;;3073:277;;3121:19;;793:14:47;3143:21:20;;;;;;;:::i;:::-;;;;;;;;3121:43;;3288:52;3325:11;3295:26;:15;:24;:26::i;:::-;:41;3288:52;;3107:243;3073:277;2454:43:24::1;2476:20;2454:21;:43::i;1472:179:78:-:0;1593:7;1619:25;1632:11;1619:12;:25::i;2836:192:56:-;2893:7;-1:-1:-1;;;;;2920:26:56;;;2912:78;;;;-1:-1:-1;;;2912:78:56;;24602:2:89;2912:78:56;;;24584:21:89;24641:2;24621:18;;;24614:30;24680:34;24660:18;;;24653:62;-1:-1:-1;;;24731:18:89;;;24724:37;24778:19;;2912:78:56;24400:403:89;2912:78:56;-1:-1:-1;3015:5:56;2836:192::o;3000:197:46:-;3069:7;;3104:86;3112:4;3131:31;3149:12;3131:17;:31::i;:::-;3164:25;3183:5;3164:18;:25::i;:::-;3104:7;:86::i;:::-;-1:-1:-1;;;;;3097:93:46;;;;-1:-1:-1;3097:93:46;;-1:-1:-1;3000:197:46;;;;;;:::o;3779:205::-;3873:24;;3840:7;;3914:8;;:63;;3929:41;3943:4;3962:7;3968:1;3962:3;:7;:::i;:::-;7653:25;7713:20;;;7778:4;7765:18;;;7761:28;;7568:237;3929:41;:48;-1:-1:-1;;;3929:48:46;;-1:-1:-1;;;;;3929:48:46;3914:63;;15264:187:56;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:56;;25010:2:89;15338:76:56;;;24992:21:89;25049:2;25029:18;;;25022:30;25088:34;25068:18;;;25061:62;-1:-1:-1;;;25139:18:89;;;25132:36;25185:19;;15338:76:56;24808:402:89;1886:224:25;1990:4;-1:-1:-1;;;;;;2013:50:25;;-1:-1:-1;;;2013:50:25;;:90;;;2067:36;2091:11;2067:23;:36::i;4348:165:52:-;4425:7;4451:55;4473:20;:18;:20::i;:::-;4495:10;8470:57:51;;-1:-1:-1;;;8470:57:51;;;33691:27:89;33734:11;;;33727:27;;;33770:12;;;33763:28;;;8434:7:51;;33807:12:89;;8470:57:51;;;;;;;;;;;;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;17962:769:20:-;18148:7;18199:22;;;:10;:22;;;;;;;;18239:17;18245:10;18239:5;:17::i;:::-;:41;;;;;;;;:::i;:::-;;18231:89;;;;-1:-1:-1;;;18231:89:20;;25417:2:89;18231:89:20;;;25399:21:89;25456:2;25436:18;;;25429:30;25495:34;25475:18;;;25468:62;-1:-1:-1;;;25546:18:89;;;25539:33;25589:19;;18231:89:20;25215:399:89;18231:89:20;18367:30;;;;;;;;;;;-1:-1:-1;;;;;18367:30:20;;;;;-1:-1:-1;;18348:60:20;;18358:7;;18401:6;18348:9;:60::i;:::-;18331:77;;18418:56;18429:10;18441:7;18450;18459:6;18467;18418:10;:56::i;:::-;18489:6;:13;18506:1;18489:18;18485:216;;18537:7;-1:-1:-1;;;;;18528:54:20;;18546:10;18558:7;18567:6;18575;18528:54;;;;;;;;;:::i;:::-;;;;;;;;18485:216;;;18637:7;-1:-1:-1;;;;;18618:72:20;;18646:10;18658:7;18667:6;18675;18683;18618:72;;;;;;;;;;:::i;:::-;;;;;;;;18718:6;17962:769;-1:-1:-1;;;;;;;17962:769:20:o;3287:324:57:-;3351:13;3380:12;3386:5;5880:12;;;;;-1:-1:-1;;;5866:10:57;;;;;:26;;;5777:122;3380:12;3376:32;;;3401:7;;-1:-1:-1;;;3401:7:57;;;;;;;;;;;3376:32;-1:-1:-1;3438:12:57;;;;3418:17;3468:23;;;3438:12;3468:11;;;:23;;;;;;;3501:30;;;3565:29;;-1:-1:-1;;3565:29:57;3580:14;;-1:-1:-1;;;;;3565:29:57;;;;;;;;3468:23;3287:324::o;3498:887:27:-;2503:3;3606:18;:41;;3585:155;;;;-1:-1:-1;;;3585:155:27;;26877:2:89;3585:155:27;;;26859:21:89;26916:2;26896:18;;;26889:30;26955:34;26935:18;;;26928:62;27026:34;27006:18;;;26999:62;-1:-1:-1;;;27077:19:89;;;27070:34;27121:19;;3585:155:27;26675:471:89;3585:155:27;3751:26;3780:17;:15;:17::i;:::-;3751:46;-1:-1:-1;3931:23:27;;;;;:75;;-1:-1:-1;3958:23:27;:43;:48;3931:75;3927:268;;;4081:89;;;;;;;;;4022:36;4081:89;;4022:23;;4081:89;;;4130:38;4149:18;4130;:38::i;:::-;-1:-1:-1;;;;;4081:89:27;;;;;;4022:162;;;;;;;-1:-1:-1;4022:162:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4022:162:27;;;;;;;;;;;;3927:268;4252:48;:23;4281:18;4252:28;:48::i;:::-;-1:-1:-1;;4316:62:27;;;22962:25:89;;;23018:2;23003:18;;22996:34;;;4316:62:27;;22935:18:89;4316:62:27;;;;;;;3575:810;3498:887;:::o;12360:499:20:-;12622:4;12599:11;:9;:11::i;:::-;-1:-1:-1;;;;;12599:28:20;;12595:258;;12648:9;12643:200;12667:7;:14;12663:1;:18;12643:200;;;12732:4;-1:-1:-1;;;;;12710:27:20;:7;12718:1;12710:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12710:27:20;;12706:123;;12761:49;12796:9;12806:1;12796:12;;;;;;;;:::i;:::-;;;;;;;12786:23;;;;;;12761:15;:24;;:49;;;;:::i;:::-;12683:3;;;:::i;:::-;;;12643:200;;;;12595:258;12360:499;;;;;:::o;2274:327:78:-;2523:71;2538:10;2550:7;2559:6;2567:9;2578:15;2523:14;:71::i;12928:396:20:-;13201:4;13178:11;:9;:11::i;:::-;-1:-1:-1;;;;;13178:28:20;;13174:144;;13227:15;5880:12:57;;;;;-1:-1:-1;;;5866:10:57;;;;;:26;;13222:86:20;;5236:1:57;13270:15:20;5247:14:57;13270:23:20;5159:109:57;17425:255:20;17582:7;17608:65;17618:10;17630:7;17639;17648:6;17656:16;9215:9;;;;;;;;;-1:-1:-1;9215:9:20;;;9134:97;17656:16;17608:9;:65::i;2240:747:25:-;2334:13;2359:20;2382:23;2394:10;2382:11;:23::i;:::-;2359:46;-1:-1:-1;2430:23:25;2420:6;:33;;;;;;;;:::i;:::-;;2416:77;;2476:6;2240:747;-1:-1:-1;;2240:747:25:o;2416:77::-;2603:15;2621:24;;;:12;:24;;;;;;;2655:326;;-1:-1:-1;2703:6:25;2240:747;-1:-1:-1;;2240:747:25:o;2655:326::-;2730:9;;:34;;-1:-1:-1;;;2730:34:25;;;;;643:25:89;;;-1:-1:-1;;;;;2730:9:25;;;;:25;;616:18:89;;2730:34:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2726:255;;;-1:-1:-1;2787:22:25;;2240:747;-1:-1:-1;;;2240:747:25:o;2726:255::-;2830:9;;:37;;-1:-1:-1;;;2830:37:25;;;;;643:25:89;;;-1:-1:-1;;;;;2830:9:25;;;;:28;;616:18:89;;2830:37:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2826:155;;;-1:-1:-1;2890:20:25;;2240:747;-1:-1:-1;;;2240:747:25:o;2826:155::-;-1:-1:-1;2948:22:25;;2240:747;-1:-1:-1;;;2240:747:25:o;1222:439:46:-;1308:7;1349:12;1335:11;:26;1327:71;;;;-1:-1:-1;;;1327:71:46;;27775:2:89;1327:71:46;;;27757:21:89;;;27794:18;;;27787:30;27853:34;27833:18;;;27826:62;27905:18;;1327:71:46;27573:356:89;1327:71:46;1408:10;1421:30;1439:11;1421:17;:30::i;:::-;1476:24;;1408:43;;-1:-1:-1;1462:11:46;1524:50;1476:4;1408:43;1462:11;1476:24;1524:18;:50::i;:::-;1510:64;-1:-1:-1;1591:8:46;;:63;;1606:41;1620:4;1639:7;1645:1;1639:3;:7;:::i;1606:41::-;:48;-1:-1:-1;;;1606:48:46;;-1:-1:-1;;;;;1606:48:46;1591:63;;;1602:1;1591:63;-1:-1:-1;;;;;1584:70:46;;1222:439;-1:-1:-1;;;;;;1222:439:46:o;2622:171:24:-;2718:12;;2703:44;;;22962:25:89;;;23018:2;23003:18;;22996:34;;;2703:44:24;;22935:18:89;2703:44:24;;;;;;;2757:12;:29;2622:171::o;9290:1408:20:-;9482:7;9566:19;:17;:19::i;:::-;9522:40;719:10:47;9545:16:20;9560:1;9545:12;:16;:::i;9522:40::-;:63;;9501:159;;;;-1:-1:-1;;;9501:159:20;;28136:2:89;9501:159:20;;;28118:21:89;28175:2;28155:18;;;28148:30;28214:34;28194:18;;;28187:62;-1:-1:-1;;;28265:18:89;;;28258:47;28322:19;;9501:159:20;27934:413:89;9501:159:20;9671:18;9692:71;9705:7;9714:6;9722:9;9749:11;9733:29;;;;;;9692:12;:71::i;:::-;9671:92;;9800:6;:13;9782:7;:14;:31;9774:77;;;;-1:-1:-1;;;9774:77:20;;;;;;;:::i;:::-;9887:9;:16;9869:7;:14;:34;9861:80;;;;-1:-1:-1;;;9861:80:20;;;;;;;:::i;:::-;9976:1;9959:7;:14;:18;9951:55;;;;-1:-1:-1;;;9951:55:20;;28956:2:89;9951:55:20;;;28938:21:89;28995:2;28975:18;;;28968:30;29034:26;29014:18;;;29007:54;29078:18;;9951:55:20;28754:348:89;9951:55:20;10017:29;10049:22;;;:10;:22;;;;;;;;;10089:26;;;;;;;;;;-1:-1:-1;;;;;10089:26:20;;;;;1600:20:50;10081:74:20;;;;-1:-1:-1;;;10081:74:20;;29309:2:89;10081:74:20;;;29291:21:89;29348:2;29328:18;;;29321:30;29387:34;29367:18;;;29360:62;-1:-1:-1;;;29438:18:89;;;29431:31;29479:19;;10081:74:20;29107:397:89;10081:74:20;10166:15;10210:24;:13;:11;:13::i;:::-;:22;:24::i;:::-;10184:23;:12;:21;:23::i;:::-;:50;;;;:::i;:::-;10166:68;;10244:15;10273:25;:14;:12;:14::i;:25::-;10262:36;;:8;:36;:::i;:::-;1378:27:50;;-1:-1:-1;;1378:27:50;-1:-1:-1;;;;;1378:27:50;;;;;10244:54:20;-1:-1:-1;10359:16:20;;;1378:27:50;;-1:-1:-1;;1378:27:50;-1:-1:-1;;;;;1378:27:50;;;;;10413:250:20;10442:10;719::47;10492:7:20;10513:6;10546:7;:14;-1:-1:-1;;;;;10533:28:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10575:9;10598:8;10620;10642:11;10413:250;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10681:10:20;;9290:1408;-1:-1:-1;;;;;;;9290:1408:20:o;651:225:26:-;829:40;;-1:-1:-1;;;829:40:26;;-1:-1:-1;;;;;31882:32:89;;;829:40:26;;;31864:51:89;31931:18;;;31924:34;;;803:7:26;;829:5;:18;;;;;;31837::89;;829:40:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6386:176:25:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:25;;;32181:34:89;;32251:15;;;32246:2;32231:18;;32224:43;6466:56:25;;32116:18:89;6466:56:25;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:25;-1:-1:-1;;;;;6532:23:25;;;;;;;;;;6386:176::o;8315:295:45:-;8461:12;8489:7;8485:119;;;-1:-1:-1;8519:10:45;8512:17;;8485:119;8560:33;8568:10;8580:12;8560:7;:33::i;2913:316:24:-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:24;;32480:2:89;3048:71:24;;;32462:21:89;32519:2;32499:18;;;32492:30;32558:34;32538:18;;;32531:62;-1:-1:-1;;;32609:18:89;;;32602:37;32656:19;;3048:71:24;32278:403:89;3048:71:24;3150:13;;3134:47;;;22962:25:89;;;23018:2;23003:18;;22996:34;;;3134:47:24;;22935:18:89;3134:47:24;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;22962:25:89;;;23018:2;23003:18;;22996:34;;;3452:62:24;;22935:18:89;3452:62:24;;;;;;;3524:18;:41;3359:213::o;2651:200:27:-;2726:7;2503:3;2793:28;2809:11;2793:15;:28::i;:::-;2753:37;;-1:-1:-1;;;2753:37:27;;;;;643:25:89;;;2753:5:27;-1:-1:-1;;;;;2753:24:27;;;;616:18:89;;2753:37:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:68;;;;:::i;:::-;2752:92;;;;:::i;4999:879:46:-;5159:11;;5117:7;;;;5185;;5181:691;;5260:22;5285:28;5299:4;5305:7;5311:1;5305:3;:7;:::i;5285:28::-;5260:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5260:53:46;;;-1:-1:-1;;;;;5260:53:46;;;;;;;-1:-1:-1;5388:24:46;;;-1:-1:-1;5388:24:46;5380:60;;;;-1:-1:-1;;;5380:60:46;;33283:2:89;5380:60:46;;;33265:21:89;33322:2;33302:18;;;33295:30;33361:25;33341:18;;;33334:53;33404:18;;5380:60:46;33081:347:89;5380:60:46;5504:17;;:24;;;;;;;5500:202;;5586:5;5548:28;5562:4;5568:7;5574:1;5568:3;:7;:::i;5548:28::-;:43;;-1:-1:-1;;;;;5548:43:46;;;;-1:-1:-1;;;5548:43:46;;;;;;;;;;;5500:202;;;5640:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;5640:46:46;;;;;;;;;;5630:57;;;;;;;-1:-1:-1;5630:57:46;;;;;;;;;;;;;;-1:-1:-1;;;5630:57:46;;;;;;;;;;5500:202;5723:11;;;;-1:-1:-1;5736:5:46;;-1:-1:-1;5715:27:46;;-1:-1:-1;5715:27:46;5181:691;-1:-1:-1;;5783:46:46;;;;;;;;;;;;;;;-1:-1:-1;;;;;5783:46:46;;;;;;;;;;5773:57;;;;;;;-1:-1:-1;5773:57:46;;;;;;;;;;;;;-1:-1:-1;;;5773:57:46;;;;;;;;;;;;-1:-1:-1;;5822:5:46;4999:879;;;;;;;:::o;3829:738:20:-;3931:4;-1:-1:-1;;;;;;4153:232:20;;-1:-1:-1;;;4153:232:20;;:290;;-1:-1:-1;;;;;;;4401:42:20;;-1:-1:-1;;;4401:42:20;4153:290;:355;;;-1:-1:-1;;;;;;;4459:49:20;;-1:-1:-1;;;4459:49:20;4153:355;:407;;;-1:-1:-1;;;;;;;;;;937:40:53;;;4524:36:20;829:155:53;3152:308:52;3205:7;3236:4;-1:-1:-1;;;;;3245:12:52;3228:29;;:66;;;;;3278:16;3261:13;:33;3228:66;3224:230;;;-1:-1:-1;3317:24:52;;3152:308::o;3224:230::-;-1:-1:-1;3642:73:52;;;3401:10;3642:73;;;;37203:25:89;;;;3413:12:52;37244:18:89;;;37237:34;3427:15:52;37287:18:89;;;37280:34;3686:13:52;37330:18:89;;;37323:34;3709:4:52;37373:19:89;;;;37366:61;;;;3642:73:52;;;;;;;;;;37175:19:89;;;;3642:73:52;;;3632:84;;;;;;2923:138:78:o;5069:1494:51:-;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:51;;-1:-1:-1;6221:30:51;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;34057:25:89;;;34130:4;34118:17;;34098:18;;;34091:45;;;;34152:18;;;34145:34;;;34195:18;;;34188:34;;;6374:24:51;;34029:19:89;;6374:24:51;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:51;;-1:-1:-1;;6374:24:51;;;-1:-1:-1;;;;;;;6412:20:51;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:51;;-1:-1:-1;5069:1494:51;;;;;;;;:::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:51;;34435:2:89;788:34:51;;;34417:21:89;34474:2;34454:18;;;34447:30;34513:26;34493:18;;;34486:54;34557:18;;788:34:51;34233:348:89;730:345:51;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:51;;34788:2:89;903:41:51;;;34770:21:89;34827:2;34807:18;;;34800:30;34866:33;34846:18;;;34839:61;34917:18;;903:41:51;34586:355:89;839:236:51;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:51;;35148:2:89;1020:44:51;;;35130:21:89;35187:2;35167:18;;;35160:30;35226:34;35206:18;;;35199:62;-1:-1:-1;;;35277:18:89;;;35270:32;35319:19;;1020:44:51;34946:398:89;2518:812:23;2712:33;2748:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;2794:30:23;;;;:21;;;:30;;;;;;;;;2793:31;2785:83;;;;-1:-1:-1;;;2785:83:23;;35551:2:89;2785:83:23;;;35533:21:89;35590:2;35570:18;;;35563:30;35629:34;35609:18;;;35602:62;-1:-1:-1;;;35680:18:89;;;35673:37;35727:19;;2785:83:23;35349:403:89;2785:83:23;-1:-1:-1;;;;;2878:30:23;;;;;;:21;;;:30;;;;;:37;;-1:-1:-1;;2878:37:23;2911:4;2878:37;;;2930:34;;;2926:398;;3009:6;2980:12;:25;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;2926:398:23;;-1:-1:-1;2926:398:23;;-1:-1:-1;;3036:30:23;;;;3032:292;;3107:6;3082:12;:21;;;:31;;;;;;;:::i;3032:292::-;-1:-1:-1;;3134:34:23;;;;3130:194;;3213:6;3184:12;:25;;;:35;;;;;;;:::i;3130:194::-;3250:63;;-1:-1:-1;;;3250:63:23;;35959:2:89;3250:63:23;;;35941:21:89;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:89;;;36081:51;36149:19;;3250:63:23;35757:417:89;2088:226:57;2187:10;;-1:-1:-1;;;2187:10:57;;;;;;2168:16;2207:22;;;:11;;;;:22;;;;;;:30;;;;2271:26;;-1:-1:-1;;;;;2271:26:57;;;2284:13;;;;2271:26;;;;;2088:226::o;4470:323:25:-;4698:9;;:88;;-1:-1:-1;;;4698:88:25;;-1:-1:-1;;;;;4698:9:25;;;;:22;;4728:9;;4698:88;;4739:7;;4748:6;;4756:9;;4698;;4770:15;;4698:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4470:323;;;;;:::o;6189:914:20:-;6262:13;6319:22;;;:10;:22;;;;;6356:17;;;;;;6352:77;;;-1:-1:-1;6396:22:20;;6189:914;-1:-1:-1;;6189:914:20:o;6352:77::-;6443:17;;;;;;;;;6439:77;;;-1:-1:-1;6483:22:20;;6189:914;-1:-1:-1;;6189:914:20:o;6439:77::-;6526:16;6545:28;6562:10;6545:16;:28::i;:::-;6526:47;;6588:8;6600:1;6588:13;6584:83;;6617:39;;-1:-1:-1;;;6617:39:20;;36381:2:89;6617:39:20;;;36363:21:89;36420:2;36400:18;;;36393:30;36459:31;36439:18;;;36432:59;36508:18;;6617:39:20;36179:353:89;6584:83:20;6693:12;6681:8;:24;6677:83;;-1:-1:-1;6728:21:20;;6189:914;-1:-1:-1;;;6189:914:20:o;6677:83::-;6770:16;6789:28;6806:10;6789:16;:28::i;:::-;6770:47;;6844:12;6832:8;:24;6828:82;;-1:-1:-1;6879:20:20;;6189:914;-1:-1:-1;;;;6189:914:20:o;6828:82::-;6924:26;6939:10;6924:14;:26::i;:::-;:56;;;;-1:-1:-1;2226:4:23;2278:26;;;:14;:26;;;;;2346:25;;2322:21;;;;;:49;6954:26:20;6920:177;;;-1:-1:-1;7003:23:20;;6189:914;-1:-1:-1;;;;6189:914:20:o;6920:177::-;-1:-1:-1;7064:22:20;;6189:914;-1:-1:-1;;;;6189:914:20:o;6209:438:46:-;6363:7;6382:238;6395:4;6389:3;:10;6382:238;;;6415:11;6429:23;6442:3;6447:4;6429:12;:23::i;:::-;7653:25;7713:20;;;7778:4;7765:18;;6415:37;;-1:-1:-1;6470:43:46;;;;7761:28;;6470:37;;;:43;6466:144;;;6540:3;6533:10;;6466:144;;;6588:7;:3;6594:1;6588:7;:::i;:::-;6582:13;;6466:144;6401:219;6382:238;;;-1:-1:-1;6636:4:46;6209:438;-1:-1:-1;;;6209:438:46:o;13216:187:56:-;13272:6;-1:-1:-1;;;;;13298:25:56;;;13290:76;;;;-1:-1:-1;;;13290:76:56;;36739:2:89;13290:76:56;;;36721:21:89;36778:2;36758:18;;;36751:30;36817:34;36797:18;;;36790:62;-1:-1:-1;;;36868:18:89;;;36861:36;36914:19;;13290:76:56;36537:402:89;8616:540:45;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:45;;;;;;;;:::i;1732:276:23:-;1816:4;1868:26;;;:14;:26;;;;;1976:25;;;;1952:21;;;;:49;;1976:25;1952:49;:::i;:::-;1912:36;1919:28;1936:10;1919:16;:28::i;1912:36::-;:89;;;1732:276;-1:-1:-1;;;1732:276:23:o;805:153:55:-;867:7;940:11;950:1;941:5;;;940:11;:::i;:::-;930:21;;931:5;;;930:21;:::i;14:286:89:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:89;;209:43;;199:71;;266:1;263;256:12;679:156;745:20;;805:4;794:16;;784:27;;774:55;;825:1;822;815:12;774:55;679:156;;;:::o;840:348::-;892:8;902:6;956:3;949:4;941:6;937:17;933:27;923:55;;974:1;971;964:12;923:55;-1:-1:-1;997:20:89;;-1:-1:-1;;;;;1029:30:89;;1026:50;;;1072:1;1069;1062:12;1026:50;1109:4;1101:6;1097:17;1085:29;;1161:3;1154:4;1145:6;1137;1133:19;1129:30;1126:39;1123:59;;;1178:1;1175;1168:12;1193:127;1254:10;1249:3;1245:20;1242:1;1235:31;1285:4;1282:1;1275:15;1309:4;1306:1;1299:15;1325:275;1396:2;1390:9;1461:2;1442:13;;-1:-1:-1;;1438:27:89;1426:40;;-1:-1:-1;;;;;1481:34:89;;1517:22;;;1478:62;1475:88;;;1543:18;;:::i;:::-;1579:2;1572:22;1325:275;;-1:-1:-1;1325:275:89:o;1605:406::-;1669:5;-1:-1:-1;;;;;1695:6:89;1692:30;1689:56;;;1725:18;;:::i;:::-;1763:57;1808:2;1787:15;;-1:-1:-1;;1783:29:89;1814:4;1779:40;1763:57;:::i;:::-;1754:66;;1843:6;1836:5;1829:21;1883:3;1874:6;1869:3;1865:16;1862:25;1859:45;;;1900:1;1897;1890:12;1859:45;1949:6;1944:3;1937:4;1930:5;1926:16;1913:43;2003:1;1996:4;1987:6;1980:5;1976:18;1972:29;1965:40;1605:406;;;;;:::o;2016:220::-;2058:5;2111:3;2104:4;2096:6;2092:17;2088:27;2078:55;;2129:1;2126;2119:12;2078:55;2151:79;2226:3;2217:6;2204:20;2197:4;2189:6;2185:17;2151:79;:::i;2241:978::-;2371:6;2379;2387;2395;2403;2411;2419;2427;2480:3;2468:9;2459:7;2455:23;2451:33;2448:53;;;2497:1;2494;2487:12;2448:53;2533:9;2520:23;2510:33;;2562:36;2594:2;2583:9;2579:18;2562:36;:::i;:::-;2552:46;;2649:2;2638:9;2634:18;2621:32;-1:-1:-1;;;;;2713:2:89;2705:6;2702:14;2699:34;;;2729:1;2726;2719:12;2699:34;2768:59;2819:7;2810:6;2799:9;2795:22;2768:59;:::i;:::-;2846:8;;-1:-1:-1;2742:85:89;-1:-1:-1;2934:2:89;2919:18;;2906:32;;-1:-1:-1;2950:16:89;;;2947:36;;;2979:1;2976;2969:12;2947:36;;3002:51;3045:7;3034:8;3023:9;3019:24;3002:51;:::i;:::-;2992:61;;;3072:37;3104:3;3093:9;3089:19;3072:37;:::i;:::-;3062:47;;3156:3;3145:9;3141:19;3128:33;3118:43;;3208:3;3197:9;3193:19;3180:33;3170:43;;2241:978;;;;;;;;;;;:::o;3224:180::-;3283:6;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;-1:-1:-1;3375:23:89;;3224:180;-1:-1:-1;3224:180:89:o;3409:423::-;3451:3;3489:5;3483:12;3516:6;3511:3;3504:19;3541:1;3551:162;3565:6;3562:1;3559:13;3551:162;;;3627:4;3683:13;;;3679:22;;3673:29;3655:11;;;3651:20;;3644:59;3580:12;3551:162;;;3555:3;3758:1;3751:4;3742:6;3737:3;3733:16;3729:27;3722:38;3821:4;3814:2;3810:7;3805:2;3797:6;3793:15;3789:29;3784:3;3780:39;3776:50;3769:57;;;3409:423;;;;:::o;3837:220::-;3986:2;3975:9;3968:21;3949:4;4006:45;4047:2;4036:9;4032:18;4024:6;4006:45;:::i;4062:131::-;-1:-1:-1;;;;;4137:31:89;;4127:42;;4117:70;;4183:1;4180;4173:12;4198:665;4293:6;4301;4309;4317;4370:3;4358:9;4349:7;4345:23;4341:33;4338:53;;;4387:1;4384;4377:12;4338:53;4426:9;4413:23;4445:31;4470:5;4445:31;:::i;:::-;4495:5;-1:-1:-1;4552:2:89;4537:18;;4524:32;4565:33;4524:32;4565:33;:::i;:::-;4617:7;-1:-1:-1;4671:2:89;4656:18;;4643:32;;-1:-1:-1;4726:2:89;4711:18;;4698:32;-1:-1:-1;;;;;4742:30:89;;4739:50;;;4785:1;4782;4775:12;4739:50;4808:49;4849:7;4840:6;4829:9;4825:22;4808:49;:::i;:::-;4798:59;;;4198:665;;;;;;;:::o;5075:183::-;5135:4;-1:-1:-1;;;;;5160:6:89;5157:30;5154:56;;;5190:18;;:::i;:::-;-1:-1:-1;5235:1:89;5231:14;5247:4;5227:25;;5075:183::o;5263:737::-;5317:5;5370:3;5363:4;5355:6;5351:17;5347:27;5337:55;;5388:1;5385;5378:12;5337:55;5424:6;5411:20;5450:4;5474:60;5490:43;5530:2;5490:43;:::i;:::-;5474:60;:::i;:::-;5568:15;;;5654:1;5650:10;;;;5638:23;;5634:32;;;5599:12;;;;5678:15;;;5675:35;;;5706:1;5703;5696:12;5675:35;5742:2;5734:6;5730:15;5754:217;5770:6;5765:3;5762:15;5754:217;;;5850:3;5837:17;5867:31;5892:5;5867:31;:::i;:::-;5911:18;;5949:12;;;;5787;;5754:217;;;-1:-1:-1;5989:5:89;5263:737;-1:-1:-1;;;;;;5263:737:89:o;6005:662::-;6059:5;6112:3;6105:4;6097:6;6093:17;6089:27;6079:55;;6130:1;6127;6120:12;6079:55;6166:6;6153:20;6192:4;6216:60;6232:43;6272:2;6232:43;:::i;6216:60::-;6310:15;;;6396:1;6392:10;;;;6380:23;;6376:32;;;6341:12;;;;6420:15;;;6417:35;;;6448:1;6445;6438:12;6417:35;6484:2;6476:6;6472:15;6496:142;6512:6;6507:3;6504:15;6496:142;;;6578:17;;6566:30;;6616:12;;;;6529;;6496:142;;6672:886;6724:5;6777:3;6770:4;6762:6;6758:17;6754:27;6744:55;;6795:1;6792;6785:12;6744:55;6831:6;6818:20;6857:4;6881:60;6897:43;6937:2;6897:43;:::i;6881:60::-;6975:15;;;7061:1;7057:10;;;;7045:23;;7041:32;;;7006:12;;;;7085:15;;;7082:35;;;7113:1;7110;7103:12;7082:35;7149:2;7141:6;7137:15;7161:368;7177:6;7172:3;7169:15;7161:368;;;7263:3;7250:17;-1:-1:-1;;;;;7286:11:89;7283:35;7280:125;;;7359:1;7388:2;7384;7377:14;7280:125;7430:56;7482:3;7477:2;7463:11;7455:6;7451:24;7447:33;7430:56;:::i;:::-;7418:69;;-1:-1:-1;7507:12:89;;;;7194;;7161:368;;7563:897;7733:6;7741;7749;7757;7810:3;7798:9;7789:7;7785:23;7781:33;7778:53;;;7827:1;7824;7817:12;7778:53;7867:9;7854:23;-1:-1:-1;;;;;7937:2:89;7929:6;7926:14;7923:34;;;7953:1;7950;7943:12;7923:34;7976:61;8029:7;8020:6;8009:9;8005:22;7976:61;:::i;:::-;7966:71;;8090:2;8079:9;8075:18;8062:32;8046:48;;8119:2;8109:8;8106:16;8103:36;;;8135:1;8132;8125:12;8103:36;8158:63;8213:7;8202:8;8191:9;8187:24;8158:63;:::i;:::-;8148:73;;8274:2;8263:9;8259:18;8246:32;8230:48;;8303:2;8293:8;8290:16;8287:36;;;8319:1;8316;8309:12;8287:36;;8342:61;8395:7;8384:8;8373:9;8369:24;8342:61;:::i;:::-;7563:897;;;;-1:-1:-1;8332:71:89;;8450:2;8435:18;8422:32;;-1:-1:-1;;;7563:897:89:o;8647:458::-;8738:6;8746;8754;8762;8770;8823:3;8811:9;8802:7;8798:23;8794:33;8791:53;;;8840:1;8837;8830:12;8791:53;8876:9;8863:23;8853:33;;8905:36;8937:2;8926:9;8922:18;8905:36;:::i;:::-;8895:46;;8960:36;8992:2;8981:9;8977:18;8960:36;:::i;:::-;8647:458;;;;-1:-1:-1;8950:46:89;;9043:2;9028:18;;9015:32;;-1:-1:-1;9094:3:89;9079:19;9066:33;;8647:458;-1:-1:-1;;8647:458:89:o;9110:127::-;9171:10;9166:3;9162:20;9159:1;9152:31;9202:4;9199:1;9192:15;9226:4;9223:1;9216:15;9242:346;9392:2;9377:18;;9425:1;9414:13;;9404:144;;9470:10;9465:3;9461:20;9458:1;9451:31;9505:4;9502:1;9495:15;9533:4;9530:1;9523:15;9404:144;9557:25;;;9242:346;:::o;9593:315::-;9661:6;9669;9722:2;9710:9;9701:7;9697:23;9693:32;9690:52;;;9738:1;9735;9728:12;9690:52;9774:9;9761:23;9751:33;;9834:2;9823:9;9819:18;9806:32;9847:31;9872:5;9847:31;:::i;:::-;9897:5;9887:15;;;9593:315;;;;;:::o;10237:250::-;10303:6;10311;10364:2;10352:9;10343:7;10339:23;10335:32;10332:52;;;10380:1;10377;10370:12;10332:52;10416:9;10403:23;10393:33;;10445:36;10477:2;10466:9;10462:18;10445:36;:::i;:::-;10435:46;;10237:250;;;;;:::o;10492:769::-;10597:6;10605;10613;10621;10629;10682:3;10670:9;10661:7;10657:23;10653:33;10650:53;;;10699:1;10696;10689:12;10650:53;10735:9;10722:23;10712:33;;10764:36;10796:2;10785:9;10781:18;10764:36;:::i;:::-;10754:46;;10851:2;10840:9;10836:18;10823:32;-1:-1:-1;;;;;10915:2:89;10907:6;10904:14;10901:34;;;10931:1;10928;10921:12;10901:34;10970:59;11021:7;11012:6;11001:9;10997:22;10970:59;:::i;:::-;11048:8;;-1:-1:-1;10944:85:89;-1:-1:-1;11136:2:89;11121:18;;11108:32;;-1:-1:-1;11152:16:89;;;11149:36;;;11181:1;11178;11171:12;11149:36;;11204:51;11247:7;11236:8;11225:9;11221:24;11204:51;:::i;:::-;11194:61;;;10492:769;;;;;;;;:::o;11266:549::-;11353:6;11361;11369;11377;11430:2;11418:9;11409:7;11405:23;11401:32;11398:52;;;11446:1;11443;11436:12;11398:52;11482:9;11469:23;11459:33;;11511:36;11543:2;11532:9;11528:18;11511:36;:::i;:::-;11501:46;;11598:2;11587:9;11583:18;11570:32;-1:-1:-1;;;;;11617:6:89;11614:30;11611:50;;;11657:1;11654;11647:12;11611:50;11696:59;11747:7;11738:6;11727:9;11723:22;11696:59;:::i;:::-;11266:549;;;;-1:-1:-1;11774:8:89;-1:-1:-1;;;;11266:549:89:o;11820:1157::-;12000:6;12008;12016;12024;12077:3;12065:9;12056:7;12052:23;12048:33;12045:53;;;12094:1;12091;12084:12;12045:53;12134:9;12121:23;-1:-1:-1;;;;;12204:2:89;12196:6;12193:14;12190:34;;;12220:1;12217;12210:12;12190:34;12243:61;12296:7;12287:6;12276:9;12272:22;12243:61;:::i;:::-;12233:71;;12357:2;12346:9;12342:18;12329:32;12313:48;;12386:2;12376:8;12373:16;12370:36;;;12402:1;12399;12392:12;12370:36;12425:63;12480:7;12469:8;12458:9;12454:24;12425:63;:::i;:::-;12415:73;;12541:2;12530:9;12526:18;12513:32;12497:48;;12570:2;12560:8;12557:16;12554:36;;;12586:1;12583;12576:12;12554:36;12609:61;12662:7;12651:8;12640:9;12636:24;12609:61;:::i;:::-;12599:71;;12723:2;12712:9;12708:18;12695:32;12679:48;;12752:2;12742:8;12739:16;12736:36;;;12768:1;12765;12758:12;12736:36;-1:-1:-1;12791:24:89;;12846:4;12838:13;;12834:27;-1:-1:-1;12824:55:89;;12875:1;12872;12865:12;12824:55;12898:73;12963:7;12958:2;12945:16;12940:2;12936;12932:11;12898:73;:::i;12982:523::-;13068:6;13076;13084;13137:2;13125:9;13116:7;13112:23;13108:32;13105:52;;;13153:1;13150;13143:12;13105:52;13192:9;13179:23;13211:31;13236:5;13211:31;:::i;:::-;13261:5;-1:-1:-1;13313:2:89;13298:18;;13285:32;;-1:-1:-1;13368:2:89;13353:18;;13340:32;-1:-1:-1;;;;;13384:30:89;;13381:50;;;13427:1;13424;13417:12;13381:50;13450:49;13491:7;13482:6;13471:9;13467:22;13450:49;:::i;:::-;13440:59;;;12982:523;;;;;:::o;13510:274::-;13596:6;13649:2;13637:9;13628:7;13624:23;13620:32;13617:52;;;13665:1;13662;13655:12;13617:52;13704:9;13691:23;13723:31;13748:5;13723:31;:::i;13789:1071::-;13943:6;13951;13959;13967;13975;14028:3;14016:9;14007:7;14003:23;13999:33;13996:53;;;14045:1;14042;14035:12;13996:53;14084:9;14071:23;14103:31;14128:5;14103:31;:::i;:::-;14153:5;-1:-1:-1;14210:2:89;14195:18;;14182:32;14223:33;14182:32;14223:33;:::i;:::-;14275:7;-1:-1:-1;14333:2:89;14318:18;;14305:32;-1:-1:-1;;;;;14386:14:89;;;14383:34;;;14413:1;14410;14403:12;14383:34;14436:61;14489:7;14480:6;14469:9;14465:22;14436:61;:::i;:::-;14426:71;;14550:2;14539:9;14535:18;14522:32;14506:48;;14579:2;14569:8;14566:16;14563:36;;;14595:1;14592;14585:12;14563:36;14618:63;14673:7;14662:8;14651:9;14647:24;14618:63;:::i;:::-;14608:73;;14734:3;14723:9;14719:19;14706:33;14690:49;;14764:2;14754:8;14751:16;14748:36;;;14780:1;14777;14770:12;14865:613;14953:6;14961;14969;14977;15030:2;15018:9;15009:7;15005:23;15001:32;14998:52;;;15046:1;15043;15036:12;14998:52;15085:9;15072:23;15104:31;15129:5;15104:31;:::i;:::-;15154:5;-1:-1:-1;15206:2:89;15191:18;;15178:32;;-1:-1:-1;15261:2:89;15246:18;;15233:32;-1:-1:-1;;;;;15277:30:89;;15274:50;;;15320:1;15317;15310:12;15691:315;15759:6;15767;15820:2;15808:9;15799:7;15795:23;15791:32;15788:52;;;15836:1;15833;15826:12;15788:52;15875:9;15862:23;15894:31;15919:5;15894:31;:::i;:::-;15944:5;15996:2;15981:18;;;;15968:32;;-1:-1:-1;;;15691:315:89:o;16011:734::-;16115:6;16123;16131;16139;16147;16200:3;16188:9;16179:7;16175:23;16171:33;16168:53;;;16217:1;16214;16207:12;16168:53;16256:9;16243:23;16275:31;16300:5;16275:31;:::i;:::-;16325:5;-1:-1:-1;16382:2:89;16367:18;;16354:32;16395:33;16354:32;16395:33;:::i;:::-;16447:7;-1:-1:-1;16501:2:89;16486:18;;16473:32;;-1:-1:-1;16552:2:89;16537:18;;16524:32;;-1:-1:-1;16607:3:89;16592:19;;16579:33;-1:-1:-1;;;;;16624:30:89;;16621:50;;;16667:1;16664;16657:12;16621:50;16690:49;16731:7;16722:6;16711:9;16707:22;16690:49;:::i;16973:271::-;17156:6;17148;17143:3;17130:33;17112:3;17182:16;;17207:13;;;17182:16;16973:271;-1:-1:-1;16973:271:89:o;17724:348::-;17926:2;17908:21;;;17965:2;17945:18;;;17938:30;18004:26;17999:2;17984:18;;17977:54;18063:2;18048:18;;17724:348::o;18077:380::-;18156:1;18152:12;;;;18199;;;18220:61;;18274:4;18266:6;18262:17;18252:27;;18220:61;18327:2;18319:6;18316:14;18296:18;18293:38;18290:161;;18373:10;18368:3;18364:20;18361:1;18354:31;18408:4;18405:1;18398:15;18436:4;18433:1;18426:15;18290:161;;18077:380;;;:::o;18462:397::-;18664:2;18646:21;;;18703:2;18683:18;;;18676:30;18742:34;18737:2;18722:18;;18715:62;-1:-1:-1;;;18808:2:89;18793:18;;18786:31;18849:3;18834:19;;18462:397::o;18864:184::-;18934:6;18987:2;18975:9;18966:7;18962:23;18958:32;18955:52;;;19003:1;19000;18993:12;18955:52;-1:-1:-1;19026:16:89;;18864:184;-1:-1:-1;18864:184:89:o;19053:461::-;19106:3;19144:5;19138:12;19171:6;19166:3;19159:19;19197:4;19226:2;19221:3;19217:12;19210:19;;19263:2;19256:5;19252:14;19284:1;19294:195;19308:6;19305:1;19302:13;19294:195;;;19373:13;;-1:-1:-1;;;;;19369:39:89;19357:52;;19429:12;;;;19464:15;;;;19405:1;19323:9;19294:195;;;-1:-1:-1;19505:3:89;;19053:461;-1:-1:-1;;;;;19053:461:89:o;19519:435::-;19572:3;19610:5;19604:12;19637:6;19632:3;19625:19;19663:4;19692:2;19687:3;19683:12;19676:19;;19729:2;19722:5;19718:14;19750:1;19760:169;19774:6;19771:1;19768:13;19760:169;;;19835:13;;19823:26;;19869:12;;;;19904:15;;;;19796:1;19789:9;19760:169;;19959:615;20010:3;20048:5;20042:12;20075:6;20070:3;20063:19;20101:4;20142:2;20137:3;20133:12;20167:11;20194;20187:18;;20244:6;20241:1;20237:14;20230:5;20226:26;20214:38;;20286:2;20279:5;20275:14;20307:1;20317:231;20331:6;20328:1;20325:13;20317:231;;;20402:5;20396:4;20392:16;20387:3;20380:29;20430:38;20463:4;20454:6;20448:13;20430:38;:::i;:::-;20526:12;;;;20422:46;-1:-1:-1;20491:15:89;;;;20353:1;20346:9;20317:231;;;-1:-1:-1;20564:4:89;;19959:615;-1:-1:-1;;;;;;;19959:615:89:o;20579:838::-;20996:3;20985:9;20978:22;20959:4;21023:57;21075:3;21064:9;21060:19;21052:6;21023:57;:::i;:::-;21128:9;21120:6;21116:22;21111:2;21100:9;21096:18;21089:50;21162:44;21199:6;21191;21162:44;:::i;:::-;21148:58;;21254:9;21246:6;21242:22;21237:2;21226:9;21222:18;21215:50;21282:42;21317:6;21309;21282:42;:::i;:::-;21355:2;21340:18;;21333:34;;;;-1:-1:-1;;21398:3:89;21383:19;21376:35;21274:50;20579:838;-1:-1:-1;;;20579:838:89:o;21611:910::-;22056:3;22045:9;22038:22;22019:4;22083:57;22135:3;22124:9;22120:19;22112:6;22083:57;:::i;:::-;22188:9;22180:6;22176:22;22171:2;22160:9;22156:18;22149:50;22222:44;22259:6;22251;22222:44;:::i;:::-;22208:58;;22314:9;22306:6;22302:22;22297:2;22286:9;22282:18;22275:50;22342:42;22377:6;22369;22342:42;:::i;:::-;22415:2;22400:18;;22393:34;;;;-1:-1:-1;;22458:3:89;22443:19;;22436:35;;;;22502:3;22487:19;;;22480:35;22334:50;21611:910;-1:-1:-1;;;21611:910:89:o;22526:127::-;22587:10;22582:3;22578:20;22575:1;22568:31;22618:4;22615:1;22608:15;22642:4;22639:1;22632:15;22658:125;22723:9;;;22744:10;;;22741:36;;;22757:18;;:::i;23372:128::-;23439:9;;;23460:11;;;23457:37;;;23474:18;;:::i;23505:127::-;23566:10;23561:3;23557:20;23554:1;23547:31;23597:4;23594:1;23587:15;23621:4;23618:1;23611:15;23637:758;24018:3;24007:9;24000:22;23981:4;24045:57;24097:3;24086:9;24082:19;24074:6;24045:57;:::i;:::-;24150:9;24142:6;24138:22;24133:2;24122:9;24118:18;24111:50;24184:44;24221:6;24213;24184:44;:::i;:::-;24170:58;;24276:9;24268:6;24264:22;24259:2;24248:9;24244:18;24237:50;24304:42;24339:6;24331;24304:42;:::i;:::-;24296:50;;;24382:6;24377:2;24366:9;24362:18;24355:34;23637:758;;;;;;;:::o;25619:442::-;25848:6;25837:9;25830:25;25903:4;25895:6;25891:17;25886:2;25875:9;25871:18;25864:45;25945:6;25940:2;25929:9;25925:18;25918:34;25988:3;25983:2;25972:9;25968:18;25961:31;25811:4;26009:46;26050:3;26039:9;26035:19;26027:6;26009:46;:::i;26066:604::-;26341:6;26330:9;26323:25;26396:4;26388:6;26384:17;26379:2;26368:9;26364:18;26357:45;26438:6;26433:2;26422:9;26418:18;26411:34;26481:3;26476:2;26465:9;26461:18;26454:31;26304:4;26508:46;26549:3;26538:9;26534:19;26526:6;26508:46;:::i;:::-;26603:9;26595:6;26591:22;26585:3;26574:9;26570:19;26563:51;26631:33;26657:6;26649;26631:33;:::i;:::-;26623:41;26066:604;-1:-1:-1;;;;;;;;26066:604:89:o;27151:135::-;27190:3;27211:17;;;27208:43;;27231:18;;:::i;:::-;-1:-1:-1;27278:1:89;27267:13;;27151:135::o;27291:277::-;27358:6;27411:2;27399:9;27390:7;27386:23;27382:32;27379:52;;;27427:1;27424;27417:12;27379:52;27459:9;27453:16;27512:5;27505:13;27498:21;27491:5;27488:32;27478:60;;27534:1;27531;27524:12;28352:397;28554:2;28536:21;;;28593:2;28573:18;;;28566:30;28632:34;28627:2;28612:18;;28605:62;-1:-1:-1;;;28698:2:89;28683:18;;28676:31;28739:3;28724:19;;28352:397::o;29509:180::-;-1:-1:-1;;;;;29614:10:89;;;29626;;;29610:27;;29649:11;;;29646:37;;;29663:18;;:::i;:::-;29646:37;29509:180;;;;:::o;29801:1884::-;30373:4;30402:3;30432:6;30421:9;30414:25;30458:2;30525:1;30521;30516:3;30512:11;30508:19;30500:6;30496:32;30491:2;30480:9;30476:18;30469:60;30565:2;30560;30549:9;30545:18;30538:30;30591:56;30643:2;30632:9;30628:18;30620:6;30591:56;:::i;:::-;30577:70;;30695:9;30687:6;30683:22;30678:2;30667:9;30663:18;30656:50;30729:44;30766:6;30758;30729:44;:::i;:::-;30715:58;;30822:9;30814:6;30810:22;30804:3;30793:9;30789:19;30782:51;30853:6;30888;30882:13;30919:6;30911;30904:22;30954:2;30946:6;30942:15;30935:22;;31013:2;31003:6;31000:1;30996:14;30988:6;30984:27;30980:36;31051:2;31043:6;31039:15;31072:1;31082:252;31096:6;31093:1;31090:13;31082:252;;;31186:2;31182:7;31173:6;31165;31161:19;31157:33;31152:3;31145:46;31214:40;31247:6;31238;31232:13;31214:40;:::i;:::-;31312:12;;;;31204:50;-1:-1:-1;31277:15:89;;;;31118:1;31111:9;31082:252;;;31086:3;;31383:9;31375:6;31371:22;31365:3;31354:9;31350:19;31343:51;31417:42;31452:6;31444;31417:42;:::i;:::-;31403:56;;;;;;31468:46;31509:3;31498:9;31494:19;31486:6;-1:-1:-1;;;;;29759:30:89;29747:43;;29694:102;31468:46;-1:-1:-1;;;;;29759:30:89;;31564:3;31549:19;;29747:43;31618:9;31610:6;31606:22;31600:3;31589:9;31585:19;31578:51;31646:33;31672:6;31664;31646:33;:::i;:::-;31638:41;29801:1884;-1:-1:-1;;;;;;;;;;;;29801:1884:89:o;32686:168::-;32759:9;;;32790;;32807:15;;;32801:22;;32787:37;32777:71;;32828:18;;:::i;32859:217::-;32899:1;32925;32915:132;;32969:10;32964:3;32960:20;32957:1;32950:31;33004:4;33001:1;32994:15;33032:4;33029:1;33022:15;32915:132;-1:-1:-1;33061:9:89;;32859:217::o"},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","COUNTING_MODE()":"dd4e2ba5","EXTENDED_BALLOT_TYPEHASH()":"2fe3e261","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","castVoteWithReasonAndParams(uint256,uint8,string,bytes)":"5f398a14","castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)":"03420181","execute(address[],uint256[],bytes[],bytes32)":"2656227d","getVotes(address,uint256)":"eb9019d4","getVotesWithParams(address,uint256,bytes)":"9a802a6d","hasVoted(uint256,address)":"43859632","hashProposal(address[],uint256[],bytes[],bytes32)":"c59057e4","name()":"06fdde03","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","proposalDeadline(uint256)":"c01f9e37","proposalEta(uint256)":"ab58fb8e","proposalSnapshot(uint256)":"2d63f693","proposalThreshold()":"b58131b0","proposalVotes(uint256)":"544ffc9c","propose(address[],uint256[],bytes[],string)":"7d5e81e2","queue(address[],uint256[],bytes[],bytes32)":"160cbed7","quorum(uint256)":"f8ce560a","quorumDenominator()":"97c3d334","quorumNumerator()":"a7713a70","quorumNumerator(uint256)":"60c4247f","relay(address,uint256,bytes)":"c28bc2fa","setProposalThreshold(uint256)":"ece40cc1","setVotingDelay(uint256)":"70b0f660","setVotingPeriod(uint256)":"ea0217cf","state(uint256)":"3e4f49e6","supportsInterface(bytes4)":"01ffc9a7","timelock()":"d33219b4","token()":"fc0c546a","updateQuorumNumerator(uint256)":"06f3f9e6","updateTimelock(address)":"a890c910","version()":"54fd4d50","votingDelay()":"3932abb1","votingPeriod()":"02a251a3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"contract TimelockController\",\"name\":\"_timelock\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Empty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldQuorumNumerator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"QuorumNumeratorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldTimelock\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"TimelockChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"VoteCastWithParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXTENDED_BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"castVoteWithReasonAndParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteWithReasonAndParamsBySig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"name\":\"getVotesWithParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasVoted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalEta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"descriptionHash\",\"type\":\"bytes32\"}],\"name\":\"queue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"quorumNumerator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"relay\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"setProposalThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"setVotingDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"setVotingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IVotes\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuorumNumerator\",\"type\":\"uint256\"}],\"name\":\"updateQuorumNumerator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TimelockController\",\"name\":\"newTimelock\",\"type\":\"address\"}],\"name\":\"updateTimelock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"Empty()\":[{\"details\":\"An operation (e.g. {front}) couldn't be completed due to the queue being empty.\"}]},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"castVote(uint256,uint8)\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteBySig}.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"details\":\"See {IGovernor-castVoteWithReason}.\"},\"castVoteWithReasonAndParams(uint256,uint8,string,bytes)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParams}.\"},\"castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)\":{\"details\":\"See {IGovernor-castVoteWithReasonAndParamsBySig}.\"},\"execute(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-execute}.\"},\"getVotes(address,uint256)\":{\"details\":\"See {IGovernor-getVotes}.\"},\"getVotesWithParams(address,uint256,bytes)\":{\"details\":\"See {IGovernor-getVotesWithParams}.\"},\"hasVoted(uint256,address)\":{\"details\":\"See {IGovernor-hasVoted}.\"},\"hashProposal(address[],uint256[],bytes[],bytes32)\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the ABI encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"proposalDeadline(uint256)\":{\"details\":\"See {IGovernor-proposalDeadline}.\"},\"proposalEta(uint256)\":{\"details\":\"Public accessor to check the eta of a queued proposal\"},\"proposalSnapshot(uint256)\":{\"details\":\"See {IGovernor-proposalSnapshot}.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts.\"},\"queue(address[],uint256[],bytes[],bytes32)\":{\"details\":\"Function to queue a proposal to the timelock.\"},\"quorumDenominator()\":{\"details\":\"Returns the quorum denominator. Defaults to 100, but may be overridden.\"},\"quorumNumerator()\":{\"details\":\"Returns the current quorum numerator. See {quorumDenominator}.\"},\"quorumNumerator(uint256)\":{\"details\":\"Returns the quorum numerator at a specific block number. See {quorumDenominator}.\"},\"relay(address,uint256,bytes)\":{\"details\":\"Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant.\"},\"setProposalThreshold(uint256)\":{\"details\":\"Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event.\"},\"setVotingDelay(uint256)\":{\"details\":\"Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event.\"},\"setVotingPeriod(uint256)\":{\"details\":\"Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event.\"},\"timelock()\":{\"details\":\"Public accessor to check the address of the timelock\"},\"updateQuorumNumerator(uint256)\":{\"details\":\"Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator.\"},\"updateTimelock(address)\":{\"details\":\"Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/My3SecGovernance.sol\":\"My3SecGovernance\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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/governance/Governor.sol\":{\"keccak256\":\"0x57da86c5f5c46ab8f2cf67ada4258567a9270f89499690f40ed8160788733a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9fab32423b6dbc9cf70737380a9444731acbe042945b65674858e064370be3a\",\"dweb:/ipfs/QmPLopcmcMBLkazDRVEVgts5ADMjXBba1vqtZcRGCRHtbF\"]},\"@openzeppelin/contracts/governance/IGovernor.sol\":{\"keccak256\":\"0xa52d593ff06a2353f78fa149da31f2ca94f03d1eff99bde41977fa2fe985a92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d275abef31363d629e2a1a06f439bb7d2f26f66545ddb61f74b174de6f034a8\",\"dweb:/ipfs/QmPfjkyNcfiiZnPtYCvGfSHikbYzZxut3D4pBhBZ2VwfoT\"]},\"@openzeppelin/contracts/governance/TimelockController.sol\":{\"keccak256\":\"0xf3ffa69c5f7c9ebb35775be2f3b27389550a102f0e1cdfff99a54663c7b162ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f4294b5223d7823b86c0bd92516cca895f800b8db605df60d088ed89a05fede\",\"dweb:/ipfs/QmRfMZ9JYTuKYFrmkn4C3CQLnd7GxLKswBxJwpYB6HDEvD\"]},\"@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0f9c01248b04279913cc08936e9d15494ec3700c21768a175f91e72ba52c7789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60518084110ae055e83e9d75c47334aabb3e9db45f6895557bb4ad7f1a658b91\",\"dweb:/ipfs/QmVKJnESDYK52gy59iMChFibs4XWuUxRNxo23zY72h2crY\"]},\"@openzeppelin/contracts/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0xab3781f09dfb447d0c2f5bbb2aafc9ff86333f16c61580ab85d7c8a87491eab9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58571bc89cd0e54fa9af6b41e53e2110c6f5767eb691af8ad88759dbde07b3fd\",\"dweb:/ipfs/QmbeoatuYT5ukpGLWZh4DHb7yrC3TpBbm9hDdWwkdUuUy4\"]},\"@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol\":{\"keccak256\":\"0xde79bde0691601228cdf27fc2fdc85cb01eea836d41780e6e73f778e0a886a5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490f0e0d12ff73a9f891930c842630d4d50f0088562801d635a68319a772e19\",\"dweb:/ipfs/QmeSBTTHkxiXQ5hnJyhpCGAA42XFGfNPZxfRnkK28x4Aii\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotes.sol\":{\"keccak256\":\"0xf818ee82b0faf7938ced9fcc851600b17202c8f6b1b33e01035702cadda684bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aaea7133e6c40ce2c9c2235c72ffec8befbe50c6df0414565675f2648562484\",\"dweb:/ipfs/QmSvUuPuorTqpscvfmhV4PCJCjJDFpMmjcxTnJUB64cj98\"]},\"@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\":{\"keccak256\":\"0x78a9387835f2dd3409988348661df2724630c7bb31bb3da54146c568460c42af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe76999864eaa47e124dfa6f3124eb5d42d5ef705508fb8ad696372f0f40da92\",\"dweb:/ipfs/Qmbjd3L2Rz1sp9rZ5yzwCH2nQFZTQThR9naCkGZY5DVN2p\"]},\"@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol\":{\"keccak256\":\"0xe6234ac4ba0508a3371a46543cdf4bf3a1a404d2d3c3470006741a0da294f974\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f65e0806425afa3946ba400879444d73b0b9320534eaecb2c64dc3689cff0614\",\"dweb:/ipfs/QmbpjBrErEMrx9qbS529XXbfooHfkihCj9iBz2QWiw4Xe4\"]},\"@openzeppelin/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xf5324a55ee9c0b4a840ea57c055ac9d046f88986ceef567e1cf68113e46a79c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f41fe2bddc33c17ccccfc25379b1869354e9ee62d8b28d2acc95229eeba37a86\",\"dweb:/ipfs/Qmb6SF2XL2uSvH6k5JSjtx4Xoqz41ACkhdAhtbW1Yh3RiY\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Checkpoints.sol\":{\"keccak256\":\"0xf586981d605e0c0f07a44e158a3da023bd526409d3709e969d323b2d91398078\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df93b9e4731d4e904a7216af640c5ec0a4ef5f87051fedc2a272b3b3039f1247\",\"dweb:/ipfs/QmYvPqBpuZXxnedpn1vAMuHfustou2hByanL8zRA3qm3ob\"]},\"@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/Timers.sol\":{\"keccak256\":\"0x29791a62950a7983e02a673639c1a781d1e448691800456c2ce4b99715391b14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38f37b3c682657d4b1790b5e564d4c9445856c93aa79ffed43fd076959118118\",\"dweb:/ipfs/QmcBGSacnV1JDz7kicsFijDYBxx5CmLSjUSJVLqyn7zH3G\"]},\"@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/DoubleEndedQueue.sol\":{\"keccak256\":\"0x4859ffd6dd69382a1462930c00b6e394007da80e78e510f56930271034737bf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0497f84a7fdfafac2046d23b456a05454365d38bb59883b7d8ce398a26704f4f\",\"dweb:/ipfs/QmZSXpAvoXWkxQ4U2GJ4juWvmn4Fd7zeH9wXZq6wKUbfi6\"]},\"contracts/common/libraries/Constants.sol\":{\"keccak256\":\"0x1c22a5150d72c2ef9baef07a7b1e74c3e30ba8ebb2cbfa339b3392c662ac6239\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3303822a495220b88d79244edcfdbf851c3fc26cdc056bf4e8e4f04f5331807\",\"dweb:/ipfs/QmXpkrctAvQ3dXerWEFu79Qy8jcGFaUZK3QLW1XK2hFCsG\"]},\"contracts/governance/My3SecGovernance.sol\":{\"keccak256\":\"0x34f97d684b1206fcccd809dd90bfdcd020713ad180d800dd17394f3d2be11080\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59a2844c795173e6ee888a5bff6fbb6566db0772b02e55a522e1ebd12413810a\",\"dweb:/ipfs/QmfQUDhzNRrfnF61urLw6jTC4xNfucD5qhiCFdunuwjcV8\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5700,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5705,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_proposals","offset":0,"slot":"1","type":"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)"},{"astId":5708,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_governanceCall","offset":0,"slot":"2","type":"t_struct(Bytes32Deque)17763_storage"},{"astId":8393,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_votingDelay","offset":0,"slot":"4","type":"t_uint256"},{"astId":8395,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_votingPeriod","offset":0,"slot":"5","type":"t_uint256"},{"astId":8397,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_proposalThreshold","offset":0,"slot":"6","type":"t_uint256"},{"astId":8185,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_proposalVotes","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_struct(ProposalVote)8180_storage)"},{"astId":8996,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_quorumNumerator","offset":0,"slot":"8","type":"t_uint256"},{"astId":8999,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_quorumNumeratorHistory","offset":0,"slot":"9","type":"t_struct(History)12941_storage"},{"astId":8576,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_timelock","offset":0,"slot":"10","type":"t_contract(TimelockController)8159"},{"astId":8580,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_timelockIds","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_bytes32)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(Checkpoint)12946_storage)dyn_storage":{"base":"t_struct(Checkpoint)12946_storage","encoding":"dynamic_array","label":"struct Checkpoints.Checkpoint[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(TimelockController)8159":{"encoding":"inplace","label":"contract TimelockController","numberOfBytes":"20"},"t_int128":{"encoding":"inplace","label":"int128","numberOfBytes":"16"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_int128,t_bytes32)":{"encoding":"mapping","key":"t_int128","label":"mapping(int128 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_bytes32)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_uint256,t_struct(ProposalCore)5698_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct Governor.ProposalCore)","numberOfBytes":"32","value":"t_struct(ProposalCore)5698_storage"},"t_mapping(t_uint256,t_struct(ProposalVote)8180_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorCountingSimple.ProposalVote)","numberOfBytes":"32","value":"t_struct(ProposalVote)8180_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(BlockNumber)14684_storage":{"encoding":"inplace","label":"struct Timers.BlockNumber","members":[{"astId":14683,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_deadline","offset":0,"slot":"0","type":"t_uint64"}],"numberOfBytes":"32"},"t_struct(Bytes32Deque)17763_storage":{"encoding":"inplace","label":"struct DoubleEndedQueue.Bytes32Deque","members":[{"astId":17756,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_begin","offset":0,"slot":"0","type":"t_int128"},{"astId":17758,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_end","offset":16,"slot":"0","type":"t_int128"},{"astId":17762,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_data","offset":0,"slot":"1","type":"t_mapping(t_int128,t_bytes32)"}],"numberOfBytes":"64"},"t_struct(Checkpoint)12946_storage":{"encoding":"inplace","label":"struct Checkpoints.Checkpoint","members":[{"astId":12943,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_blockNumber","offset":0,"slot":"0","type":"t_uint32"},{"astId":12945,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_value","offset":4,"slot":"0","type":"t_uint224"}],"numberOfBytes":"32"},"t_struct(History)12941_storage":{"encoding":"inplace","label":"struct Checkpoints.History","members":[{"astId":12940,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"_checkpoints","offset":0,"slot":"0","type":"t_array(t_struct(Checkpoint)12946_storage)dyn_storage"}],"numberOfBytes":"32"},"t_struct(ProposalCore)5698_storage":{"encoding":"inplace","label":"struct Governor.ProposalCore","members":[{"astId":5690,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"voteStart","offset":0,"slot":"0","type":"t_struct(BlockNumber)14684_storage"},{"astId":5693,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"voteEnd","offset":0,"slot":"1","type":"t_struct(BlockNumber)14684_storage"},{"astId":5695,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"executed","offset":0,"slot":"2","type":"t_bool"},{"astId":5697,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"canceled","offset":1,"slot":"2","type":"t_bool"}],"numberOfBytes":"96"},"t_struct(ProposalVote)8180_storage":{"encoding":"inplace","label":"struct GovernorCountingSimple.ProposalVote","members":[{"astId":8171,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"againstVotes","offset":0,"slot":"0","type":"t_uint256"},{"astId":8173,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"forVotes","offset":0,"slot":"1","type":"t_uint256"},{"astId":8175,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"abstainVotes","offset":0,"slot":"2","type":"t_uint256"},{"astId":8179,"contract":"contracts/governance/My3SecGovernance.sol:My3SecGovernance","label":"hasVoted","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"}],"numberOfBytes":"128"},"t_uint224":{"encoding":"inplace","label":"uint224","numberOfBytes":"28"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"contracts/governance/My3SecToken.sol":{"My3SecToken":{"abi":[{"inputs":[{"internalType":"address","name":"hub","type":"address"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"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":[],"name":"HUB","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"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":[{"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":[],"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":{"@_10819":{"entryPoint":null,"id":10819,"parameterSlots":1,"returnSlots":0},"@_15229":{"entryPoint":null,"id":15229,"parameterSlots":2,"returnSlots":0},"@_21055":{"entryPoint":null,"id":21055,"parameterSlots":1,"returnSlots":0},"@_22587":{"entryPoint":null,"id":22587,"parameterSlots":2,"returnSlots":0},"@_9390":{"entryPoint":null,"id":9390,"parameterSlots":2,"returnSlots":0},"@_add_10722":{"entryPoint":881,"id":10722,"parameterSlots":2,"returnSlots":1},"@_afterTokenTransfer_10498":{"entryPoint":1549,"id":10498,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_22624":{"entryPoint":1311,"id":22624,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_9931":{"entryPoint":null,"id":9931,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9920":{"entryPoint":1306,"id":9920,"parameterSlots":3,"returnSlots":0},"@_buildDomainSeparator_15285":{"entryPoint":null,"id":15285,"parameterSlots":3,"returnSlots":1},"@_maxSupply_10413":{"entryPoint":null,"id":10413,"parameterSlots":0,"returnSlots":1},"@_mint_10445":{"entryPoint":487,"id":10445,"parameterSlots":2,"returnSlots":0},"@_mint_22642":{"entryPoint":460,"id":22642,"parameterSlots":2,"returnSlots":0},"@_mint_9749":{"entryPoint":670,"id":9749,"parameterSlots":2,"returnSlots":0},"@_moveVotingPower_10608":{"entryPoint":null,"id":10608,"parameterSlots":3,"returnSlots":0},"@_subtract_10736":{"entryPoint":1916,"id":10736,"parameterSlots":2,"returnSlots":1},"@_unsafeAccess_10751":{"entryPoint":null,"id":10751,"parameterSlots":2,"returnSlots":1},"@_writeCheckpoint_10708":{"entryPoint":904,"id":10708,"parameterSlots":3,"returnSlots":2},"@decimals_9420":{"entryPoint":null,"id":9420,"parameterSlots":0,"returnSlots":1},"@delegates_10139":{"entryPoint":null,"id":10139,"parameterSlots":1,"returnSlots":1},"@toUint224_16306":{"entryPoint":1335,"id":16306,"parameterSlots":1,"returnSlots":1},"@toUint32_16906":{"entryPoint":1446,"id":16906,"parameterSlots":1,"returnSlots":1},"@totalSupply_9430":{"entryPoint":875,"id":9430,"parameterSlots":0,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":1930,"id":null,"parameterSlots":2,"returnSlots":2},"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":2676,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_helper":{"entryPoint":2380,"id":null,"parameterSlots":2,"returnSlots":2},"checked_exp_t_uint256_t_uint8":{"entryPoint":2633,"id":null,"parameterSlots":2,"returnSlots":1},"checked_exp_unsigned":{"entryPoint":2453,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2650,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2698,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":2072,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":2154,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2012,"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":2358,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1990,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7560:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"112:253:89","statements":[{"body":{"nodeType":"YulBlock","src":"158:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"167:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"170:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:89"},"nodeType":"YulFunctionCall","src":"160:12:89"},"nodeType":"YulExpressionStatement","src":"160:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"133:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"142:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"129:3:89"},"nodeType":"YulFunctionCall","src":"129:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"154:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"125:3:89"},"nodeType":"YulFunctionCall","src":"125:32:89"},"nodeType":"YulIf","src":"122:52:89"},{"nodeType":"YulVariableDeclaration","src":"183:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"202:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"196:5:89"},"nodeType":"YulFunctionCall","src":"196:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"187:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"275:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"284:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"287:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"277:6:89"},"nodeType":"YulFunctionCall","src":"277:12:89"},"nodeType":"YulExpressionStatement","src":"277:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"245:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"260:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"265:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"256:3:89"},"nodeType":"YulFunctionCall","src":"256:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"269:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"252:3:89"},"nodeType":"YulFunctionCall","src":"252:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"241:3:89"},"nodeType":"YulFunctionCall","src":"241:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"231:2:89"},"nodeType":"YulFunctionCall","src":"231:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"224:6:89"},"nodeType":"YulFunctionCall","src":"224:50:89"},"nodeType":"YulIf","src":"221:70:89"},{"nodeType":"YulAssignment","src":"300:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"310:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"300:6:89"}]},{"nodeType":"YulAssignment","src":"324:35:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"344:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"355:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"340:3:89"},"nodeType":"YulFunctionCall","src":"340:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"334:5:89"},"nodeType":"YulFunctionCall","src":"334:25:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"324:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:89","type":""}],"src":"14:351:89"},{"body":{"nodeType":"YulBlock","src":"402:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"419:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"426:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"431:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"422:3:89"},"nodeType":"YulFunctionCall","src":"422:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"412:6:89"},"nodeType":"YulFunctionCall","src":"412:31:89"},"nodeType":"YulExpressionStatement","src":"412:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"459:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"462:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"452:6:89"},"nodeType":"YulFunctionCall","src":"452:15:89"},"nodeType":"YulExpressionStatement","src":"452:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"483:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"486:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"476:6:89"},"nodeType":"YulFunctionCall","src":"476:15:89"},"nodeType":"YulExpressionStatement","src":"476:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"370:127:89"},{"body":{"nodeType":"YulBlock","src":"557:325:89","statements":[{"nodeType":"YulAssignment","src":"567:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"581:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"584:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"577:3:89"},"nodeType":"YulFunctionCall","src":"577:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"567:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"598:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"628:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"634:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"624:3:89"},"nodeType":"YulFunctionCall","src":"624:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"602:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"675:31:89","statements":[{"nodeType":"YulAssignment","src":"677:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"691:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"699:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"687:3:89"},"nodeType":"YulFunctionCall","src":"687:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"677:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"655:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"648:6:89"},"nodeType":"YulFunctionCall","src":"648:26:89"},"nodeType":"YulIf","src":"645:61:89"},{"body":{"nodeType":"YulBlock","src":"765:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"786:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"793:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"798:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"789:3:89"},"nodeType":"YulFunctionCall","src":"789:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"779:6:89"},"nodeType":"YulFunctionCall","src":"779:31:89"},"nodeType":"YulExpressionStatement","src":"779:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"830:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"833:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"823:6:89"},"nodeType":"YulFunctionCall","src":"823:15:89"},"nodeType":"YulExpressionStatement","src":"823:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"858:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"861:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"851:6:89"},"nodeType":"YulFunctionCall","src":"851:15:89"},"nodeType":"YulExpressionStatement","src":"851:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"721:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"744:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"752:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"741:2:89"},"nodeType":"YulFunctionCall","src":"741:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"718:2:89"},"nodeType":"YulFunctionCall","src":"718:38:89"},"nodeType":"YulIf","src":"715:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"537:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"546:6:89","type":""}],"src":"502:380:89"},{"body":{"nodeType":"YulBlock","src":"943:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"960:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"963:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"953:6:89"},"nodeType":"YulFunctionCall","src":"953:14:89"},"nodeType":"YulExpressionStatement","src":"953:14:89"},{"nodeType":"YulAssignment","src":"976:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"994:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"997:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"984:9:89"},"nodeType":"YulFunctionCall","src":"984:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"976:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"926:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"934:4:89","type":""}],"src":"887:121:89"},{"body":{"nodeType":"YulBlock","src":"1094:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"1127:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1141:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1151:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1145:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1172:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"1176:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1165:6:89"},"nodeType":"YulFunctionCall","src":"1165:17:89"},"nodeType":"YulExpressionStatement","src":"1165:17:89"},{"nodeType":"YulVariableDeclaration","src":"1195:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1221:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1207:9:89"},"nodeType":"YulFunctionCall","src":"1207:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1199:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1239:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1262:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1272:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1279:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1291:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1275:3:89"},"nodeType":"YulFunctionCall","src":"1275:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1268:3:89"},"nodeType":"YulFunctionCall","src":"1268:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1258:3:89"},"nodeType":"YulFunctionCall","src":"1258:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1243:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1333:23:89","statements":[{"nodeType":"YulAssignment","src":"1335:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"1350:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"1335:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1315:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1327:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1312:2:89"},"nodeType":"YulFunctionCall","src":"1312:20:89"},"nodeType":"YulIf","src":"1309:47:89"},{"nodeType":"YulVariableDeclaration","src":"1369:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1383:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1393:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1400:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1405:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1396:3:89"},"nodeType":"YulFunctionCall","src":"1396:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1389:3:89"},"nodeType":"YulFunctionCall","src":"1389:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1379:3:89"},"nodeType":"YulFunctionCall","src":"1379:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1373:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1423:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1436:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1427:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1521:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1530:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1537:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1523:6:89"},"nodeType":"YulFunctionCall","src":"1523:17:89"},"nodeType":"YulExpressionStatement","src":"1523:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1471:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1478:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1468:2:89"},"nodeType":"YulFunctionCall","src":"1468:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1482:26:89","statements":[{"nodeType":"YulAssignment","src":"1484:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1497:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1504:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1493:3:89"},"nodeType":"YulFunctionCall","src":"1493:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1484:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1464:3:89","statements":[]},"src":"1460:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1110:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1115:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1107:2:89"},"nodeType":"YulFunctionCall","src":"1107:11:89"},"nodeType":"YulIf","src":"1104:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1066:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1073:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1078:10:89","type":""}],"src":"1013:545:89"},{"body":{"nodeType":"YulBlock","src":"1648:81:89","statements":[{"nodeType":"YulAssignment","src":"1658:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1673:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1691:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1694:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1687:3:89"},"nodeType":"YulFunctionCall","src":"1687:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1704:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1700:3:89"},"nodeType":"YulFunctionCall","src":"1700:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1683:3:89"},"nodeType":"YulFunctionCall","src":"1683:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1679:3:89"},"nodeType":"YulFunctionCall","src":"1679:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1669:3:89"},"nodeType":"YulFunctionCall","src":"1669:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1715:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1718:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1711:3:89"},"nodeType":"YulFunctionCall","src":"1711:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1666:2:89"},"nodeType":"YulFunctionCall","src":"1666:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1658:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1625:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1631:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1639:4:89","type":""}],"src":"1563:166:89"},{"body":{"nodeType":"YulBlock","src":"1830:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1840:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1860:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:89"},"nodeType":"YulFunctionCall","src":"1854:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1844:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:89"},"nodeType":"YulFunctionCall","src":"1909:18:89"},"nodeType":"YulExpressionStatement","src":"1909:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1879:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1895:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1899:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1891:3:89"},"nodeType":"YulFunctionCall","src":"1891:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1903:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1887:3:89"},"nodeType":"YulFunctionCall","src":"1887:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1876:2:89"},"nodeType":"YulFunctionCall","src":"1876:30:89"},"nodeType":"YulIf","src":"1873:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1982:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2020:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2014:5:89"},"nodeType":"YulFunctionCall","src":"2014:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1988:25:89"},"nodeType":"YulFunctionCall","src":"1988:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2028:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1938:43:89"},"nodeType":"YulFunctionCall","src":"1938:97:89"},"nodeType":"YulExpressionStatement","src":"1938:97:89"},{"nodeType":"YulVariableDeclaration","src":"2044:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2061:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"2048:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2071:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2090:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2075:11:89","type":""}]},{"nodeType":"YulAssignment","src":"2103:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2116:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2103:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2173:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2187:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2206:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2218:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2214:3:89"},"nodeType":"YulFunctionCall","src":"2214:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2202:3:89"},"nodeType":"YulFunctionCall","src":"2202:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2191:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2235:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2279:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2249:29:89"},"nodeType":"YulFunctionCall","src":"2249:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2239:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2297:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2306:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2301:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2384:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2409:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2427:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2432:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2423:3:89"},"nodeType":"YulFunctionCall","src":"2423:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2417:5:89"},"nodeType":"YulFunctionCall","src":"2417:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2402:6:89"},"nodeType":"YulFunctionCall","src":"2402:42:89"},"nodeType":"YulExpressionStatement","src":"2402:42:89"},{"nodeType":"YulAssignment","src":"2461:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2475:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2483:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2471:3:89"},"nodeType":"YulFunctionCall","src":"2471:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2461:6:89"}]},{"nodeType":"YulAssignment","src":"2502:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2519:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2530:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2515:3:89"},"nodeType":"YulFunctionCall","src":"2515:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2502:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2331:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"2334:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2328:2:89"},"nodeType":"YulFunctionCall","src":"2328:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2343:28:89","statements":[{"nodeType":"YulAssignment","src":"2345:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2354:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2357:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2350:3:89"},"nodeType":"YulFunctionCall","src":"2350:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2345:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2324:3:89","statements":[]},"src":"2320:236:89"},{"body":{"nodeType":"YulBlock","src":"2604:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2622:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2649:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2654:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2645:3:89"},"nodeType":"YulFunctionCall","src":"2645:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2639:5:89"},"nodeType":"YulFunctionCall","src":"2639:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2626:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2689:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2701:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2728:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2731:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2724:3:89"},"nodeType":"YulFunctionCall","src":"2724:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"2740:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2720:3:89"},"nodeType":"YulFunctionCall","src":"2720:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2750:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2746:3:89"},"nodeType":"YulFunctionCall","src":"2746:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2716:3:89"},"nodeType":"YulFunctionCall","src":"2716:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2712:3:89"},"nodeType":"YulFunctionCall","src":"2712:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2697:3:89"},"nodeType":"YulFunctionCall","src":"2697:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2682:6:89"},"nodeType":"YulFunctionCall","src":"2682:74:89"},"nodeType":"YulExpressionStatement","src":"2682:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2575:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2584:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2572:2:89"},"nodeType":"YulFunctionCall","src":"2572:19:89"},"nodeType":"YulIf","src":"2569:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2790:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2804:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2807:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2800:3:89"},"nodeType":"YulFunctionCall","src":"2800:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"2816:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2796:3:89"},"nodeType":"YulFunctionCall","src":"2796:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2783:6:89"},"nodeType":"YulFunctionCall","src":"2783:36:89"},"nodeType":"YulExpressionStatement","src":"2783:36:89"}]},"nodeType":"YulCase","src":"2166:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2171:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2846:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2860:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2873:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2864:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2909:67:89","statements":[{"nodeType":"YulAssignment","src":"2927:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2946:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2951:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2942:3:89"},"nodeType":"YulFunctionCall","src":"2942:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2936:5:89"},"nodeType":"YulFunctionCall","src":"2936:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2927:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2890:6:89"},"nodeType":"YulIf","src":"2887:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2996:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3055:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3062:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"3002:52:89"},"nodeType":"YulFunctionCall","src":"3002:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2989:6:89"},"nodeType":"YulFunctionCall","src":"2989:81:89"},"nodeType":"YulExpressionStatement","src":"2989:81:89"}]},"nodeType":"YulCase","src":"2838:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2146:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2154:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2143:2:89"},"nodeType":"YulFunctionCall","src":"2143:14:89"},"nodeType":"YulSwitch","src":"2136:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1815:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"1821:3:89","type":""}],"src":"1734:1352:89"},{"body":{"nodeType":"YulBlock","src":"3123:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3140:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3147:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3152:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3143:3:89"},"nodeType":"YulFunctionCall","src":"3143:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3133:6:89"},"nodeType":"YulFunctionCall","src":"3133:31:89"},"nodeType":"YulExpressionStatement","src":"3133:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3180:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3183:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3173:6:89"},"nodeType":"YulFunctionCall","src":"3173:15:89"},"nodeType":"YulExpressionStatement","src":"3173:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3204:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3207:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3197:6:89"},"nodeType":"YulFunctionCall","src":"3197:15:89"},"nodeType":"YulExpressionStatement","src":"3197:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"3091:127:89"},{"body":{"nodeType":"YulBlock","src":"3287:358:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3297:16:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3312:1:89","type":"","value":"1"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"3301:7:89","type":""}]},{"nodeType":"YulAssignment","src":"3322:16:89","value":{"name":"power_1","nodeType":"YulIdentifier","src":"3331:7:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3322:5:89"}]},{"nodeType":"YulAssignment","src":"3347:13:89","value":{"name":"_base","nodeType":"YulIdentifier","src":"3355:5:89"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"3347:4:89"}]},{"body":{"nodeType":"YulBlock","src":"3411:228:89","statements":[{"body":{"nodeType":"YulBlock","src":"3456:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"3458:16:89"},"nodeType":"YulFunctionCall","src":"3458:18:89"},"nodeType":"YulExpressionStatement","src":"3458:18:89"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3431:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3445:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3441:3:89"},"nodeType":"YulFunctionCall","src":"3441:6:89"},{"name":"base","nodeType":"YulIdentifier","src":"3449:4:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3437:3:89"},"nodeType":"YulFunctionCall","src":"3437:17:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3428:2:89"},"nodeType":"YulFunctionCall","src":"3428:27:89"},"nodeType":"YulIf","src":"3425:53:89"},{"body":{"nodeType":"YulBlock","src":"3517:29:89","statements":[{"nodeType":"YulAssignment","src":"3519:25:89","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"3532:5:89"},{"name":"base","nodeType":"YulIdentifier","src":"3539:4:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3528:3:89"},"nodeType":"YulFunctionCall","src":"3528:16:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3519:5:89"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3498:8:89"},{"name":"power_1","nodeType":"YulIdentifier","src":"3508:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3494:3:89"},"nodeType":"YulFunctionCall","src":"3494:22:89"},"nodeType":"YulIf","src":"3491:55:89"},{"nodeType":"YulAssignment","src":"3559:23:89","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3571:4:89"},{"name":"base","nodeType":"YulIdentifier","src":"3577:4:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3567:3:89"},"nodeType":"YulFunctionCall","src":"3567:15:89"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"3559:4:89"}]},{"nodeType":"YulAssignment","src":"3595:34:89","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"3611:7:89"},{"name":"exponent","nodeType":"YulIdentifier","src":"3620:8:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3607:3:89"},"nodeType":"YulFunctionCall","src":"3607:22:89"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"3595:8:89"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3380:8:89"},{"name":"power_1","nodeType":"YulIdentifier","src":"3390:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3377:2:89"},"nodeType":"YulFunctionCall","src":"3377:21:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3399:3:89","statements":[]},"pre":{"nodeType":"YulBlock","src":"3373:3:89","statements":[]},"src":"3369:270:89"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_base","nodeType":"YulTypedName","src":"3251:5:89","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"3258:8:89","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"3271:5:89","type":""},{"name":"base","nodeType":"YulTypedName","src":"3278:4:89","type":""}],"src":"3223:422:89"},{"body":{"nodeType":"YulBlock","src":"3709:747:89","statements":[{"body":{"nodeType":"YulBlock","src":"3747:52:89","statements":[{"nodeType":"YulAssignment","src":"3761:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3770:1:89","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3761:5:89"}]},{"nodeType":"YulLeave","src":"3784:5:89"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"3729:8:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3722:6:89"},"nodeType":"YulFunctionCall","src":"3722:16:89"},"nodeType":"YulIf","src":"3719:80:89"},{"body":{"nodeType":"YulBlock","src":"3832:52:89","statements":[{"nodeType":"YulAssignment","src":"3846:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3855:1:89","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3846:5:89"}]},{"nodeType":"YulLeave","src":"3869:5:89"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"3818:4:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3811:6:89"},"nodeType":"YulFunctionCall","src":"3811:12:89"},"nodeType":"YulIf","src":"3808:76:89"},{"cases":[{"body":{"nodeType":"YulBlock","src":"3920:52:89","statements":[{"nodeType":"YulAssignment","src":"3934:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3943:1:89","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"3934:5:89"}]},{"nodeType":"YulLeave","src":"3957:5:89"}]},"nodeType":"YulCase","src":"3913:59:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3918:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3988:123:89","statements":[{"body":{"nodeType":"YulBlock","src":"4023:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4025:16:89"},"nodeType":"YulFunctionCall","src":"4025:18:89"},"nodeType":"YulExpressionStatement","src":"4025:18:89"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4008:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"4018:3:89","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4005:2:89"},"nodeType":"YulFunctionCall","src":"4005:17:89"},"nodeType":"YulIf","src":"4002:43:89"},{"nodeType":"YulAssignment","src":"4058:25:89","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4071:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"4081:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4067:3:89"},"nodeType":"YulFunctionCall","src":"4067:16:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4058:5:89"}]},{"nodeType":"YulLeave","src":"4096:5:89"}]},"nodeType":"YulCase","src":"3981:130:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3986:1:89","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"3900:4:89"},"nodeType":"YulSwitch","src":"3893:218:89"},{"body":{"nodeType":"YulBlock","src":"4209:70:89","statements":[{"nodeType":"YulAssignment","src":"4223:28:89","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4236:4:89"},{"name":"exponent","nodeType":"YulIdentifier","src":"4242:8:89"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"4232:3:89"},"nodeType":"YulFunctionCall","src":"4232:19:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4223:5:89"}]},{"nodeType":"YulLeave","src":"4264:5:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4133:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"4139:2:89","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4130:2:89"},"nodeType":"YulFunctionCall","src":"4130:12:89"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4147:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"4157:2:89","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4144:2:89"},"nodeType":"YulFunctionCall","src":"4144:16:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4126:3:89"},"nodeType":"YulFunctionCall","src":"4126:35:89"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4170:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"4176:3:89","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4167:2:89"},"nodeType":"YulFunctionCall","src":"4167:13:89"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4185:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"4195:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4182:2:89"},"nodeType":"YulFunctionCall","src":"4182:16:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4163:3:89"},"nodeType":"YulFunctionCall","src":"4163:36:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4123:2:89"},"nodeType":"YulFunctionCall","src":"4123:77:89"},"nodeType":"YulIf","src":"4120:159:89"},{"nodeType":"YulVariableDeclaration","src":"4288:57:89","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4330:4:89"},{"name":"exponent","nodeType":"YulIdentifier","src":"4336:8:89"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"4311:18:89"},"nodeType":"YulFunctionCall","src":"4311:34:89"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"4292:7:89","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"4301:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4390:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4392:16:89"},"nodeType":"YulFunctionCall","src":"4392:18:89"},"nodeType":"YulExpressionStatement","src":"4392:18:89"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"4360:7:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4377:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4373:3:89"},"nodeType":"YulFunctionCall","src":"4373:6:89"},{"name":"base_1","nodeType":"YulIdentifier","src":"4381:6:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4369:3:89"},"nodeType":"YulFunctionCall","src":"4369:19:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4357:2:89"},"nodeType":"YulFunctionCall","src":"4357:32:89"},"nodeType":"YulIf","src":"4354:58:89"},{"nodeType":"YulAssignment","src":"4421:29:89","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"4434:7:89"},{"name":"base_1","nodeType":"YulIdentifier","src":"4443:6:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4430:3:89"},"nodeType":"YulFunctionCall","src":"4430:20:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4421:5:89"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"3680:4:89","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"3686:8:89","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"3699:5:89","type":""}],"src":"3650:806:89"},{"body":{"nodeType":"YulBlock","src":"4529:72:89","statements":[{"nodeType":"YulAssignment","src":"4539:56:89","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"4569:4:89"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"4579:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"4589:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4575:3:89"},"nodeType":"YulFunctionCall","src":"4575:19:89"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"4548:20:89"},"nodeType":"YulFunctionCall","src":"4548:47:89"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"4539:5:89"}]}]},"name":"checked_exp_t_uint256_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"4500:4:89","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"4506:8:89","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"4519:5:89","type":""}],"src":"4461:140:89"},{"body":{"nodeType":"YulBlock","src":"4658:116:89","statements":[{"nodeType":"YulAssignment","src":"4668:20:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4683:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"4686:1:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4679:3:89"},"nodeType":"YulFunctionCall","src":"4679:9:89"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4668:7:89"}]},{"body":{"nodeType":"YulBlock","src":"4746:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4748:16:89"},"nodeType":"YulFunctionCall","src":"4748:18:89"},"nodeType":"YulExpressionStatement","src":"4748:18:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4717:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4710:6:89"},"nodeType":"YulFunctionCall","src":"4710:9:89"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4724:1:89"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"4731:7:89"},{"name":"x","nodeType":"YulIdentifier","src":"4740:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4727:3:89"},"nodeType":"YulFunctionCall","src":"4727:15:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4721:2:89"},"nodeType":"YulFunctionCall","src":"4721:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4707:2:89"},"nodeType":"YulFunctionCall","src":"4707:37:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4700:6:89"},"nodeType":"YulFunctionCall","src":"4700:45:89"},"nodeType":"YulIf","src":"4697:71:89"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4637:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"4640:1:89","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4646:7:89","type":""}],"src":"4606:168:89"},{"body":{"nodeType":"YulBlock","src":"4992:276:89","statements":[{"nodeType":"YulAssignment","src":"5002:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5014:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5025:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5010:3:89"},"nodeType":"YulFunctionCall","src":"5010:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5002:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5045:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"5056:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5038:6:89"},"nodeType":"YulFunctionCall","src":"5038:25:89"},"nodeType":"YulExpressionStatement","src":"5038:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5083:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5094:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5079:3:89"},"nodeType":"YulFunctionCall","src":"5079:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"5099:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5072:6:89"},"nodeType":"YulFunctionCall","src":"5072:34:89"},"nodeType":"YulExpressionStatement","src":"5072:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5126:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5137:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:89"},"nodeType":"YulFunctionCall","src":"5122:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"5142:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5115:6:89"},"nodeType":"YulFunctionCall","src":"5115:34:89"},"nodeType":"YulExpressionStatement","src":"5115:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5169:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5180:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5165:3:89"},"nodeType":"YulFunctionCall","src":"5165:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"5185:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5158:6:89"},"nodeType":"YulFunctionCall","src":"5158:34:89"},"nodeType":"YulExpressionStatement","src":"5158:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5212:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5223:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5208:3:89"},"nodeType":"YulFunctionCall","src":"5208:19:89"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"5233:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5249:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5254:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5245:3:89"},"nodeType":"YulFunctionCall","src":"5245:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"5258:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5241:3:89"},"nodeType":"YulFunctionCall","src":"5241:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5229:3:89"},"nodeType":"YulFunctionCall","src":"5229:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5201:6:89"},"nodeType":"YulFunctionCall","src":"5201:61:89"},"nodeType":"YulExpressionStatement","src":"5201:61:89"}]},"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":"4929:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4940:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4948:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4956:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4964:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4972:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4983:4:89","type":""}],"src":"4779:489:89"},{"body":{"nodeType":"YulBlock","src":"5447:238:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5464:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5475:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5457:6:89"},"nodeType":"YulFunctionCall","src":"5457:21:89"},"nodeType":"YulExpressionStatement","src":"5457:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5498:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5509:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5494:3:89"},"nodeType":"YulFunctionCall","src":"5494:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5514:2:89","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5487:6:89"},"nodeType":"YulFunctionCall","src":"5487:30:89"},"nodeType":"YulExpressionStatement","src":"5487:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5537:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5548:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5533:3:89"},"nodeType":"YulFunctionCall","src":"5533:18:89"},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f","kind":"string","nodeType":"YulLiteral","src":"5553:34:89","type":"","value":"ERC20Votes: total supply risks o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5526:6:89"},"nodeType":"YulFunctionCall","src":"5526:62:89"},"nodeType":"YulExpressionStatement","src":"5526:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5608:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5619:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5604:3:89"},"nodeType":"YulFunctionCall","src":"5604:18:89"},{"hexValue":"766572666c6f77696e6720766f746573","kind":"string","nodeType":"YulLiteral","src":"5624:18:89","type":"","value":"verflowing votes"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:89"},"nodeType":"YulFunctionCall","src":"5597:46:89"},"nodeType":"YulExpressionStatement","src":"5597:46:89"},{"nodeType":"YulAssignment","src":"5652:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5664:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5675:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5660:3:89"},"nodeType":"YulFunctionCall","src":"5660:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5652:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5424:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5438:4:89","type":""}],"src":"5273:412:89"},{"body":{"nodeType":"YulBlock","src":"5864:181:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5881:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5892:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5874:6:89"},"nodeType":"YulFunctionCall","src":"5874:21:89"},"nodeType":"YulExpressionStatement","src":"5874:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5915:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5926:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5911:3:89"},"nodeType":"YulFunctionCall","src":"5911:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5931:2:89","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:89"},"nodeType":"YulFunctionCall","src":"5904:30:89"},"nodeType":"YulExpressionStatement","src":"5904:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5954:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5965:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5950:3:89"},"nodeType":"YulFunctionCall","src":"5950:18:89"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"5970:33:89","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5943:6:89"},"nodeType":"YulFunctionCall","src":"5943:61:89"},"nodeType":"YulExpressionStatement","src":"5943:61:89"},{"nodeType":"YulAssignment","src":"6013:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6025:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6036:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6021:3:89"},"nodeType":"YulFunctionCall","src":"6021:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6013:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5841:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5855:4:89","type":""}],"src":"5690:355:89"},{"body":{"nodeType":"YulBlock","src":"6098:77:89","statements":[{"nodeType":"YulAssignment","src":"6108:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6119:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"6122:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6115:3:89"},"nodeType":"YulFunctionCall","src":"6115:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6108:3:89"}]},{"body":{"nodeType":"YulBlock","src":"6147:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6149:16:89"},"nodeType":"YulFunctionCall","src":"6149:18:89"},"nodeType":"YulExpressionStatement","src":"6149:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6139:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"6142:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6136:2:89"},"nodeType":"YulFunctionCall","src":"6136:10:89"},"nodeType":"YulIf","src":"6133:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6081:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"6084:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6090:3:89","type":""}],"src":"6050:125:89"},{"body":{"nodeType":"YulBlock","src":"6281:76:89","statements":[{"nodeType":"YulAssignment","src":"6291:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6303:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6314:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6299:3:89"},"nodeType":"YulFunctionCall","src":"6299:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6291:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6333:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"6344:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6326:6:89"},"nodeType":"YulFunctionCall","src":"6326:25:89"},"nodeType":"YulExpressionStatement","src":"6326:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6250:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6261:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6272:4:89","type":""}],"src":"6180:177:89"},{"body":{"nodeType":"YulBlock","src":"6411:79:89","statements":[{"nodeType":"YulAssignment","src":"6421:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6433:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"6436:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6429:3:89"},"nodeType":"YulFunctionCall","src":"6429:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6421:4:89"}]},{"body":{"nodeType":"YulBlock","src":"6462:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6464:16:89"},"nodeType":"YulFunctionCall","src":"6464:18:89"},"nodeType":"YulExpressionStatement","src":"6464:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"6453:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"6459:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6450:2:89"},"nodeType":"YulFunctionCall","src":"6450:11:89"},"nodeType":"YulIf","src":"6447:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6393:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"6396:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6402:4:89","type":""}],"src":"6362:128:89"},{"body":{"nodeType":"YulBlock","src":"6669:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6686:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6697:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6679:6:89"},"nodeType":"YulFunctionCall","src":"6679:21:89"},"nodeType":"YulExpressionStatement","src":"6679:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6720:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6731:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6716:3:89"},"nodeType":"YulFunctionCall","src":"6716:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6736:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6709:6:89"},"nodeType":"YulFunctionCall","src":"6709:30:89"},"nodeType":"YulExpressionStatement","src":"6709:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6759:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6770:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6755:3:89"},"nodeType":"YulFunctionCall","src":"6755:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"6775:34:89","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6748:6:89"},"nodeType":"YulFunctionCall","src":"6748:62:89"},"nodeType":"YulExpressionStatement","src":"6748:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6830:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6841:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6826:3:89"},"nodeType":"YulFunctionCall","src":"6826:18:89"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"6846:9:89","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6819:6:89"},"nodeType":"YulFunctionCall","src":"6819:37:89"},"nodeType":"YulExpressionStatement","src":"6819:37:89"},{"nodeType":"YulAssignment","src":"6865:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6877:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6888:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6873:3:89"},"nodeType":"YulFunctionCall","src":"6873:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6865:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6646:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6660:4:89","type":""}],"src":"6495:403:89"},{"body":{"nodeType":"YulBlock","src":"7077:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7094:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7105:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7087:6:89"},"nodeType":"YulFunctionCall","src":"7087:21:89"},"nodeType":"YulExpressionStatement","src":"7087:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7128:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7139:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7124:3:89"},"nodeType":"YulFunctionCall","src":"7124:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7144:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7117:6:89"},"nodeType":"YulFunctionCall","src":"7117:30:89"},"nodeType":"YulExpressionStatement","src":"7117:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7167:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7178:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7163:3:89"},"nodeType":"YulFunctionCall","src":"7163:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"7183:34:89","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7156:6:89"},"nodeType":"YulFunctionCall","src":"7156:62:89"},"nodeType":"YulExpressionStatement","src":"7156:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7238:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7249:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7234:3:89"},"nodeType":"YulFunctionCall","src":"7234:18:89"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"7254:8:89","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7227:6:89"},"nodeType":"YulFunctionCall","src":"7227:36:89"},"nodeType":"YulExpressionStatement","src":"7227:36:89"},{"nodeType":"YulAssignment","src":"7272:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7284:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7295:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7280:3:89"},"nodeType":"YulFunctionCall","src":"7280:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7272:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7054:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7068:4:89","type":""}],"src":"6903:402:89"},{"body":{"nodeType":"YulBlock","src":"7439:119:89","statements":[{"nodeType":"YulAssignment","src":"7449:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7461:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7472:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7457:3:89"},"nodeType":"YulFunctionCall","src":"7457:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7449:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7491:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"7502:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7484:6:89"},"nodeType":"YulFunctionCall","src":"7484:25:89"},"nodeType":"YulExpressionStatement","src":"7484:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7529:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7540:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7525:3:89"},"nodeType":"YulFunctionCall","src":"7525:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"7545:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7518:6:89"},"nodeType":"YulFunctionCall","src":"7518:34:89"},"nodeType":"YulExpressionStatement","src":"7518:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7400:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7411:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7419:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7430:4:89","type":""}],"src":"7310:248:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_uint256_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        value1 := mload(add(headStart, 32))\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 panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\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_uint8(base, exponent) -> power\n    {\n        power := checked_exp_unsigned(base, and(exponent, 0xff))\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\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 checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\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        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\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":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040523480156200001257600080fd5b5060405162002a4538038062002a4583398101604081905262000035916200078a565b816040518060400160405280600c81526020016b26bc99a9b2b1902a37b5b2b760a11b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600c81526020016b26bc99a9b2b1902a37b5b2b760a11b815250604051806040016040528060038152602001624d335360e81b8152508160039081620000c891906200086a565b506004620000d782826200086a565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c0948501909152815191909601209052929092526101205250506001600160a01b03811662000192576040516348be0eb360e01b815260040160405180910390fd5b6001600160a01b031661014052620001c433620001b26012600a62000a49565b620001be908462000a5a565b620001cc565b505062000aa0565b620001e38282620001e760201b62000b241760201c565b5050565b620001fe82826200029e60201b62000bb41760201c565b6001600160e01b03620002126200036b8216565b11156200027f5760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b62000298600962000c7b6200037160201b178362000388565b50505050565b6001600160a01b038216620002f65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000276565b80600260008282546200030a919062000a74565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001e3600083836200051f565b60025490565b60006200037f828462000a74565b90505b92915050565b82546000908190818115620003e857620003b787620003a960018562000a8a565b600091825260209091200190565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152620003fd565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200041b84868860201c565b9250600082118015620004345750805163ffffffff1643145b156200048b5762000450836200053760201b62000c871760201c565b6200046288620003a960018662000a8a565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000510565b866040518060400160405280620004ad43620005a660201b62000cf41760201c565b63ffffffff168152602001620004ce866200053760201b62000c871760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b505050565b6200051a8383836200060d60201b62000d591760201c565b60006001600160e01b03821115620005a25760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000276565b5090565b600063ffffffff821115620005a25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000276565b620006258383836200051a60201b62000d8b1760201c565b6001600160a01b038381166000908152600760205260408082205485841683529120546200051a92918216911683818314801590620006645750600081115b156200051a576001600160a01b03831615620006f1576001600160a01b038316600090815260086020908152604082208291620006ae91906200077c901b62000d90178562000388565b91509150846001600160a01b031660008051602062002a258339815191528383604051620006e6929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156200051a576001600160a01b03821660009081526008602090815260408220829162000735919062000371901b62000c7b178562000388565b91509150836001600160a01b031660008051602062002a2583398151915283836040516200076d929190918252602082015260400190565b60405180910390a25050505050565b60006200037f828462000a8a565b600080604083850312156200079e57600080fd5b82516001600160a01b0381168114620007b657600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007f157607f821691505b6020821081036200081257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051a57600081815260208120601f850160051c81016020861015620008415750805b601f850160051c820191505b8181101562000862578281556001016200084d565b505050505050565b81516001600160401b03811115620008865762000886620007c6565b6200089e81620008978454620007dc565b8462000818565b602080601f831160018114620008d65760008415620008bd5750858301515b600019600386901b1c1916600185901b17855562000862565b600085815260208120601f198616915b828110156200090757888601518255948401946001909101908401620008e6565b5085821015620009265787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200098d57816000190482111562000971576200097162000936565b808516156200097f57918102915b93841c939080029062000951565b509250929050565b600082620009a65750600162000382565b81620009b55750600062000382565b8160018114620009ce5760028114620009d957620009f9565b600191505062000382565b60ff841115620009ed57620009ed62000936565b50506001821b62000382565b5060208310610133831016604e8410600b841016171562000a1e575081810a62000382565b62000a2a83836200094c565b806000190482111562000a415762000a4162000936565b029392505050565b60006200037f60ff84168362000995565b808202811582820484141762000382576200038262000936565b8082018082111562000382576200038262000936565b8181038181111562000382576200038262000936565b60805160a05160c05160e051610100516101205161014051611f2362000b026000396000818161037201526105a801526000611168015260006111b701526000611192015260006110eb015260006111150152600061113f0152611f236000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a457c2d711610097578063c3cda52011610071578063c3cda520146103a7578063d505accf146103ba578063dd62ed3e146103cd578063f1127ed8146103e057600080fd5b8063a457c2d71461035a578063a4c52b861461036d578063a9059cbb1461039457600080fd5b806370a08231146102dd57806379cc6790146103065780637ecebe00146103195780638e539e8c1461032c57806395d89b411461033f5780639ab24eb01461034757600080fd5b8063395093511161014b57806342966c681161012557806342966c681461024b578063587cde1e1461025e5780635c19a95c146102a25780636fcfff45146102b557600080fd5b806339509351146102105780633a46b1a81461022357806340c10f191461023657600080fd5b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101d457806323b872dd146101e6578063313ce567146101f95780633644e51514610208575b600080fd5b61019b61041d565b6040516101a89190611bcf565b60405180910390f35b6101c46101bf366004611c39565b6104af565b60405190151581526020016101a8565b6002545b6040519081526020016101a8565b6101c46101f4366004611c63565b6104c9565b604051601281526020016101a8565b6101d86104ed565b6101c461021e366004611c39565b6104fc565b6101d8610231366004611c39565b61051e565b610249610244366004611c39565b61059d565b005b610249610259366004611c9f565b6105f4565b61028a61026c366004611cb8565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101a8565b6102496102b0366004611cb8565b610601565b6102c86102c3366004611cb8565b61060b565b60405163ffffffff90911681526020016101a8565b6101d86102eb366004611cb8565b6001600160a01b031660009081526020819052604090205490565b610249610314366004611c39565b61062d565b6101d8610327366004611cb8565b610642565b6101d861033a366004611c9f565b610660565b61019b6106bc565b6101d8610355366004611cb8565b6106cb565b6101c4610368366004611c39565b610752565b61028a7f000000000000000000000000000000000000000000000000000000000000000081565b6101c46103a2366004611c39565b6107cd565b6102496103b5366004611ce4565b6107db565b6102496103c8366004611d3c565b610911565b6101d86103db366004611da6565b610a75565b6103f36103ee366004611dd9565b610aa0565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101a8565b60606003805461042c90611e19565b80601f016020809104026020016040519081016040528092919081815260200182805461045890611e19565b80156104a55780601f1061047a576101008083540402835291602001916104a5565b820191906000526020600020905b81548152906001019060200180831161048857829003601f168201915b5050505050905090565b6000336104bd818585610d9c565b60019150505b92915050565b6000336104d7858285610ec0565b6104e2858585610f34565b506001949350505050565b60006104f76110de565b905090565b6000336104bd81858561050f8383610a75565b6105199190611e63565b610d9c565b60004382106105745760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090206105969083611205565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105e6576040516313bd2e8360e31b815260040160405180910390fd5b6105f082826112fc565b5050565b6105fe3382611306565b50565b6105fe3382611310565b6001600160a01b0381166000908152600860205260408120546104c390610cf4565b610638823383610ec0565b6105f08282611306565b6001600160a01b0381166000908152600560205260408120546104c3565b60004382106106b15760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161056b565b6104c3600983611205565b60606004805461042c90611e19565b6001600160a01b038116600090815260086020526040812054801561073f576001600160a01b038316600090815260086020526040902061070d600183611e76565b8154811061071d5761071d611e89565b60009182526020909120015464010000000090046001600160e01b0316610742565b60005b6001600160e01b03169392505050565b600033816107608286610a75565b9050838110156107c05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161056b565b6104e28286868403610d9c565b6000336104bd818585610f34565b8342111561082b5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161056b565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108a59061089d9060a00160405160208183030381529060405280519060200120611389565b8585856113d7565b90506108b0816113ff565b86146108fe5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161056b565b6109088188611310565b50505050505050565b834211156109615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161056b565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109908c6113ff565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109eb82611389565b905060006109fb828787876113d7565b9050896001600160a01b0316816001600160a01b031614610a5e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161056b565b610a698a8a8a610d9c565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610ae457610ae4611e89565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610b2e8282610bb4565b6002546001600160e01b031015610ba05760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161056b565b610bae6009610c7b83611427565b50505050565b6001600160a01b038216610c0a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161056b565b8060026000828254610c1c9190611e63565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105f06000838361157b565b60006105968284611e63565b60006001600160e01b03821115610cf05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161056b565b5090565b600063ffffffff821115610cf05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161056b565b6001600160a01b03838116600090815260076020526040808220548584168352912054610d8b92918216911683611586565b505050565b60006105968284611e76565b6001600160a01b038316610dfe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056b565b6001600160a01b038216610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ecc8484610a75565b90506000198114610bae5781811015610f275760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161056b565b610bae8484848403610d9c565b6001600160a01b038316610f985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056b565b6001600160a01b038216610ffa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056b565b6001600160a01b038316600090815260208190526040902054818110156110725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161056b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610bae84848461157b565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561113757507f000000000000000000000000000000000000000000000000000000000000000046145b1561116157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b81546000908181600581111561125f576000611220846116c3565b61122a9085611e76565b600088815260209020909150869082015463ffffffff16111561124f5780915061125d565b61125a816001611e63565b92505b505b808210156112ac57600061127383836117ab565b600088815260209020909150869082015463ffffffff161115611298578091506112a6565b6112a3816001611e63565b92505b5061125f565b80156112e6576112cf866112c1600184611e76565b600091825260209091200190565b5464010000000090046001600160e01b03166112e9565b60005b6001600160e01b03169695505050505050565b6105f08282610b24565b6105f082826117c6565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610bae828483611586565b60006104c36113966110de565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006113e8878787876117de565b915091506113f5816118a2565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b8254600090819081811561147457611444876112c1600185611e76565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611489565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506114a984868863ffffffff16565b92506000821180156114c15750805163ffffffff1643145b15611506576114cf83610c87565b6114de886112c1600186611e76565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611571565b86604051806040016040528061151b43610cf4565b63ffffffff16815260200161152f86610c87565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b610d8b838383610d59565b816001600160a01b0316836001600160a01b0316141580156115a85750600081115b15610d8b576001600160a01b03831615611636576001600160a01b038316600090815260086020526040812081906115e390610d9085611427565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161162b929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610d8b576001600160a01b0382166000908152600860205260408120819061166c90610c7b85611427565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516116b4929190918252602082015260400190565b60405180910390a25050505050565b6000816000036116d557506000919050565b600060016116e2846119ec565b901c6001901b905060018184816116fb576116fb611e9f565b048201901c9050600181848161171357611713611e9f565b048201901c9050600181848161172b5761172b611e9f565b048201901c9050600181848161174357611743611e9f565b048201901c9050600181848161175b5761175b611e9f565b048201901c9050600181848161177357611773611e9f565b048201901c9050600181848161178b5761178b611e9f565b048201901c9050610596818285816117a5576117a5611e9f565b04611a80565b60006117ba6002848418611eb5565b61059690848416611e63565b6117d08282611a96565b610bae6009610d9083611427565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118155750600090506003611899565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611869573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661189257600060019250925050611899565b9150600090505b94509492505050565b60008160048111156118b6576118b6611ed7565b036118be5750565b60018160048111156118d2576118d2611ed7565b0361191f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161056b565b600281600481111561193357611933611ed7565b036119805760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161056b565b600381600481111561199457611994611ed7565b036105fe5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161056b565b600080608083901c15611a0157608092831c92015b604083901c15611a1357604092831c92015b602083901c15611a2557602092831c92015b601083901c15611a3757601092831c92015b600883901c15611a4957600892831c92015b600483901c15611a5b57600492831c92015b600283901c15611a6d57600292831c92015b600183901c156104c35760010192915050565b6000818310611a8f5781610596565b5090919050565b6001600160a01b038216611af65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161056b565b6001600160a01b03821660009081526020819052604090205481811015611b6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161056b565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d8b8360008461157b565b600060208083528351808285015260005b81811015611bfc57858101830151858201604001528201611be0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c3457600080fd5b919050565b60008060408385031215611c4c57600080fd5b611c5583611c1d565b946020939093013593505050565b600080600060608486031215611c7857600080fd5b611c8184611c1d565b9250611c8f60208501611c1d565b9150604084013590509250925092565b600060208284031215611cb157600080fd5b5035919050565b600060208284031215611cca57600080fd5b61059682611c1d565b803560ff81168114611c3457600080fd5b60008060008060008060c08789031215611cfd57600080fd5b611d0687611c1d565b95506020870135945060408701359350611d2260608801611cd3565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611d5757600080fd5b611d6088611c1d565b9650611d6e60208901611c1d565b95506040880135945060608801359350611d8a60808901611cd3565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611db957600080fd5b611dc283611c1d565b9150611dd060208401611c1d565b90509250929050565b60008060408385031215611dec57600080fd5b611df583611c1d565b9150602083013563ffffffff81168114611e0e57600080fd5b809150509250929050565b600181811c90821680611e2d57607f821691505b60208210810361142157634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156104c3576104c3611e4d565b818103818111156104c3576104c3611e4d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082611ed257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea26469706673582212205750ee7e6c36936272ddc47e4edcc296b811102e932b7d22c09415b4f2479b7b64736f6c63430008110033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2A45 CODESIZE SUB DUP1 PUSH3 0x2A45 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x78A JUMP JUMPDEST DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x26BC99A9B2B1902A37B5B2B7 PUSH1 0xA1 SHL DUP2 MSTORE POP DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x31 PUSH1 0xF8 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x26BC99A9B2B1902A37B5B2B7 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x4D3353 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0xC8 SWAP2 SWAP1 PUSH3 0x86A JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0xD7 DUP3 DUP3 PUSH3 0x86A JUMP JUMPDEST POP POP DUP3 MLOAD PUSH1 0x20 SWAP4 DUP5 ADD KECCAK256 DUP3 MLOAD SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 KECCAK256 PUSH1 0xE0 DUP4 SWAP1 MSTORE PUSH2 0x100 DUP2 SWAP1 MSTORE CHAINID PUSH1 0xA0 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 DUP10 ADD DUP2 SWAP1 MSTORE DUP2 DUP4 ADD SWAP8 SWAP1 SWAP8 MSTORE PUSH1 0x60 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP1 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE ADDRESS DUP5 DUP4 ADD DUP2 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH1 0xC0 SWAP5 DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 MLOAD SWAP2 SWAP1 SWAP7 ADD KECCAK256 SWAP1 MSTORE SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x120 MSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x192 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 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 AND PUSH2 0x140 MSTORE PUSH3 0x1C4 CALLER PUSH3 0x1B2 PUSH1 0x12 PUSH1 0xA PUSH3 0xA49 JUMP JUMPDEST PUSH3 0x1BE SWAP1 DUP5 PUSH3 0xA5A JUMP JUMPDEST PUSH3 0x1CC JUMP JUMPDEST POP POP PUSH3 0xAA0 JUMP JUMPDEST PUSH3 0x1E3 DUP3 DUP3 PUSH3 0x1E7 PUSH1 0x20 SHL PUSH3 0xB24 OR PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH3 0x1FE DUP3 DUP3 PUSH3 0x29E PUSH1 0x20 SHL PUSH3 0xBB4 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x212 PUSH3 0x36B DUP3 AND JUMP JUMPDEST GT ISZERO PUSH3 0x27F 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 0x298 PUSH1 0x9 PUSH3 0xC7B PUSH3 0x371 PUSH1 0x20 SHL OR DUP4 PUSH3 0x388 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x2F6 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 0x276 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x30A SWAP2 SWAP1 PUSH3 0xA74 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 0x1E3 PUSH1 0x0 DUP4 DUP4 PUSH3 0x51F JUMP JUMPDEST PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x37F DUP3 DUP5 PUSH3 0xA74 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH3 0x3E8 JUMPI PUSH3 0x3B7 DUP8 PUSH3 0x3A9 PUSH1 0x1 DUP6 PUSH3 0xA8A 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 0x3FD 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 0x41B DUP5 DUP7 DUP9 PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH3 0x434 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH3 0x48B JUMPI PUSH3 0x450 DUP4 PUSH3 0x537 PUSH1 0x20 SHL PUSH3 0xC87 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x462 DUP9 PUSH3 0x3A9 PUSH1 0x1 DUP7 PUSH3 0xA8A 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 0x510 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x4AD NUMBER PUSH3 0x5A6 PUSH1 0x20 SHL PUSH3 0xCF4 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x4CE DUP7 PUSH3 0x537 PUSH1 0x20 SHL PUSH3 0xC87 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 POP POP POP JUMP JUMPDEST PUSH3 0x51A DUP4 DUP4 DUP4 PUSH3 0x60D PUSH1 0x20 SHL PUSH3 0xD59 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH3 0x5A2 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 0x276 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH3 0x5A2 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 0x276 JUMP JUMPDEST PUSH3 0x625 DUP4 DUP4 DUP4 PUSH3 0x51A PUSH1 0x20 SHL PUSH3 0xD8B 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 0x51A SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 DUP2 DUP4 EQ DUP1 ISZERO SWAP1 PUSH3 0x664 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH3 0x51A JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH3 0x6F1 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 0x6AE SWAP2 SWAP1 PUSH3 0x77C SWAP1 SHL PUSH3 0xD90 OR DUP6 PUSH3 0x388 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2A25 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 PUSH1 0x40 MLOAD PUSH3 0x6E6 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 0x51A 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 0x735 SWAP2 SWAP1 PUSH3 0x371 SWAP1 SHL PUSH3 0xC7B OR DUP6 PUSH3 0x388 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x2A25 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP4 DUP4 PUSH1 0x40 MLOAD PUSH3 0x76D 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 0x37F DUP3 DUP5 PUSH3 0xA8A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x79E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x7B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 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 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x7F1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x812 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 0x51A 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 0x841 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x862 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x84D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x886 JUMPI PUSH3 0x886 PUSH3 0x7C6 JUMP JUMPDEST PUSH3 0x89E DUP2 PUSH3 0x897 DUP5 SLOAD PUSH3 0x7DC JUMP JUMPDEST DUP5 PUSH3 0x818 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x8D6 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x8BD 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 0x862 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x907 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x8E6 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x926 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 0x1 DUP2 DUP2 JUMPDEST DUP1 DUP6 GT ISZERO PUSH3 0x98D JUMPI DUP2 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0x971 JUMPI PUSH3 0x971 PUSH3 0x936 JUMP JUMPDEST DUP1 DUP6 AND ISZERO PUSH3 0x97F JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP4 DUP5 SHR SWAP4 SWAP1 DUP1 MUL SWAP1 PUSH3 0x951 JUMP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH3 0x9A6 JUMPI POP PUSH1 0x1 PUSH3 0x382 JUMP JUMPDEST DUP2 PUSH3 0x9B5 JUMPI POP PUSH1 0x0 PUSH3 0x382 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0x9CE JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0x9D9 JUMPI PUSH3 0x9F9 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0x382 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0x9ED JUMPI PUSH3 0x9ED PUSH3 0x936 JUMP JUMPDEST POP POP PUSH1 0x1 DUP3 SHL PUSH3 0x382 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0xA1E JUMPI POP DUP2 DUP2 EXP PUSH3 0x382 JUMP JUMPDEST PUSH3 0xA2A DUP4 DUP4 PUSH3 0x94C JUMP JUMPDEST DUP1 PUSH1 0x0 NOT DIV DUP3 GT ISZERO PUSH3 0xA41 JUMPI PUSH3 0xA41 PUSH3 0x936 JUMP JUMPDEST MUL SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x37F PUSH1 0xFF DUP5 AND DUP4 PUSH3 0x995 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH3 0x382 JUMPI PUSH3 0x382 PUSH3 0x936 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH3 0x382 JUMPI PUSH3 0x382 PUSH3 0x936 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH3 0x382 JUMPI PUSH3 0x382 PUSH3 0x936 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x1F23 PUSH3 0xB02 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x372 ADD MSTORE PUSH2 0x5A8 ADD MSTORE PUSH1 0x0 PUSH2 0x1168 ADD MSTORE PUSH1 0x0 PUSH2 0x11B7 ADD MSTORE PUSH1 0x0 PUSH2 0x1192 ADD MSTORE PUSH1 0x0 PUSH2 0x10EB ADD MSTORE PUSH1 0x0 PUSH2 0x1115 ADD MSTORE PUSH1 0x0 PUSH2 0x113F ADD MSTORE PUSH2 0x1F23 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 0x18E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC3CDA520 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x3E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19B PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1BCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x21E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x231 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x59D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x249 PUSH2 0x259 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C9F JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 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 0x1A8 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x601 JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 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 0x249 PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x62D JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x327 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x1C9F JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x19B PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x355 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH2 0x28A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST PUSH2 0x249 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH2 0x249 PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x3DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA6 JUMP JUMPDEST PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3F3 PUSH2 0x3EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1DD9 JUMP JUMPDEST PUSH2 0xAA0 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 0x1A8 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x42C SWAP1 PUSH2 0x1E19 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 0x458 SWAP1 PUSH2 0x1E19 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A5 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 0x488 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 0x4BD DUP2 DUP6 DUP6 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4D7 DUP6 DUP3 DUP6 PUSH2 0xEC0 JUMP JUMPDEST PUSH2 0x4E2 DUP6 DUP6 DUP6 PUSH2 0xF34 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F7 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4BD DUP2 DUP6 DUP6 PUSH2 0x50F DUP4 DUP4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x519 SWAP2 SWAP1 PUSH2 0x1E63 JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x574 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x596 SWAP1 DUP4 PUSH2 0x1205 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x5E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x12FC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5FE CALLER DUP3 PUSH2 0x1306 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FE CALLER DUP3 PUSH2 0x1310 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 0x4C3 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x638 DUP3 CALLER DUP4 PUSH2 0xEC0 JUMP JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x1306 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 0x4C3 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x6B1 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 0x56B JUMP JUMPDEST PUSH2 0x4C3 PUSH1 0x9 DUP4 PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x42C SWAP1 PUSH2 0x1E19 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 0x73F 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 0x70D PUSH1 0x1 DUP4 PUSH2 0x1E76 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x71D JUMPI PUSH2 0x71D PUSH2 0x1E89 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 0x742 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x760 DUP3 DUP7 PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH2 0x4E2 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4BD DUP2 DUP6 DUP6 PUSH2 0xF34 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0x82B 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 0x56B 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 0x8A5 SWAP1 PUSH2 0x89D 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 0x1389 JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x13D7 JUMP JUMPDEST SWAP1 POP PUSH2 0x8B0 DUP2 PUSH2 0x13FF JUMP JUMPDEST DUP7 EQ PUSH2 0x8FE 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 0x56B JUMP JUMPDEST PUSH2 0x908 DUP2 DUP9 PUSH2 0x1310 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0x961 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 0x56B JUMP JUMPDEST PUSH1 0x0 PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP9 DUP9 DUP9 PUSH2 0x990 DUP13 PUSH2 0x13FF 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 0x9EB DUP3 PUSH2 0x1389 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9FB DUP3 DUP8 DUP8 DUP8 PUSH2 0x13D7 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 0xA5E 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 0x56B JUMP JUMPDEST PUSH2 0xA69 DUP11 DUP11 DUP11 PUSH2 0xD9C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP 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 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 0xAE4 JUMPI PUSH2 0xAE4 PUSH2 0x1E89 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 0xB2E DUP3 DUP3 PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB LT ISZERO PUSH2 0xBA0 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 PUSH2 0x56B JUMP JUMPDEST PUSH2 0xBAE PUSH1 0x9 PUSH2 0xC7B DUP4 PUSH2 0x1427 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC0A 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 0x56B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC1C SWAP2 SWAP1 PUSH2 0x1E63 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 0x5F0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 DUP3 DUP5 PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xD8B SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1586 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 DUP3 DUP5 PUSH2 0x1E76 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xE5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECC DUP5 DUP5 PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xBAE JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xF27 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 0x56B JUMP JUMPDEST PUSH2 0xBAE DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xBAE DUP5 DUP5 DUP5 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1137 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1161 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 DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 DUP2 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x125F JUMPI PUSH1 0x0 PUSH2 0x1220 DUP5 PUSH2 0x16C3 JUMP JUMPDEST PUSH2 0x122A SWAP1 DUP6 PUSH2 0x1E76 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 0x124F JUMPI DUP1 SWAP2 POP PUSH2 0x125D JUMP JUMPDEST PUSH2 0x125A DUP2 PUSH1 0x1 PUSH2 0x1E63 JUMP JUMPDEST SWAP3 POP JUMPDEST POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH2 0x1273 DUP4 DUP4 PUSH2 0x17AB 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 0x1298 JUMPI DUP1 SWAP2 POP PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x12A3 DUP2 PUSH1 0x1 PUSH2 0x1E63 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x125F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12CF DUP7 PUSH2 0x12C1 PUSH1 0x1 DUP5 PUSH2 0x1E76 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 0x12E9 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 0x5F0 DUP3 DUP3 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x17C6 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT 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 0xBAE DUP3 DUP5 DUP4 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C3 PUSH2 0x1396 PUSH2 0x10DE JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13E8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x17DE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13F5 DUP2 PUSH2 0x18A2 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 DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH2 0x1474 JUMPI PUSH2 0x1444 DUP8 PUSH2 0x12C1 PUSH1 0x1 DUP6 PUSH2 0x1E76 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 0x1489 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 0x14A9 DUP5 DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x14C1 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH2 0x1506 JUMPI PUSH2 0x14CF DUP4 PUSH2 0xC87 JUMP JUMPDEST PUSH2 0x14DE DUP9 PUSH2 0x12C1 PUSH1 0x1 DUP7 PUSH2 0x1E76 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 0x1571 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x151B NUMBER PUSH2 0xCF4 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x152F DUP7 PUSH2 0xC87 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 PUSH2 0xD8B DUP4 DUP4 DUP4 PUSH2 0xD59 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 0x15A8 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0xD8B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1636 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 0x15E3 SWAP1 PUSH2 0xD90 DUP6 PUSH2 0x1427 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x162B 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 0xD8B 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 0x166C SWAP1 PUSH2 0xC7B DUP6 PUSH2 0x1427 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x16B4 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 DUP2 PUSH1 0x0 SUB PUSH2 0x16D5 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x16E2 DUP5 PUSH2 0x19EC JUMP JUMPDEST SWAP1 SHR PUSH1 0x1 SWAP1 SHL SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x16FB JUMPI PUSH2 0x16FB PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1713 JUMPI PUSH2 0x1713 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x172B JUMPI PUSH2 0x172B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1743 JUMPI PUSH2 0x1743 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x175B JUMPI PUSH2 0x175B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1773 JUMPI PUSH2 0x1773 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x178B JUMPI PUSH2 0x178B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH2 0x596 DUP2 DUP3 DUP6 DUP2 PUSH2 0x17A5 JUMPI PUSH2 0x17A5 PUSH2 0x1E9F JUMP JUMPDEST DIV PUSH2 0x1A80 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17BA PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x596 SWAP1 DUP5 DUP5 AND PUSH2 0x1E63 JUMP JUMPDEST PUSH2 0x17D0 DUP3 DUP3 PUSH2 0x1A96 JUMP JUMPDEST PUSH2 0xBAE PUSH1 0x9 PUSH2 0xD90 DUP4 PUSH2 0x1427 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x1815 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1899 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 0x1869 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 0x1892 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1899 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 0x18B6 JUMPI PUSH2 0x18B6 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x18BE JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x18D2 JUMPI PUSH2 0x18D2 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x191F 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 0x56B JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1933 JUMPI PUSH2 0x1933 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x1980 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 0x56B JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1994 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x5FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x80 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A01 JUMPI PUSH1 0x80 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x40 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A13 JUMPI PUSH1 0x40 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x20 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A25 JUMPI PUSH1 0x20 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x10 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A37 JUMPI PUSH1 0x10 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x8 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A49 JUMPI PUSH1 0x8 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x4 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x4 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x2 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A6D JUMPI PUSH1 0x2 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x1 DUP4 SWAP1 SHR ISZERO PUSH2 0x4C3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1A8F JUMPI DUP2 PUSH2 0x596 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AF6 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 PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0x1B6A 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 PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xD8B DUP4 PUSH1 0x0 DUP5 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BFC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x1BE0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C55 DUP4 PUSH2 0x1C1D 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 0x1C78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C81 DUP5 PUSH2 0x1C1D JUMP JUMPDEST SWAP3 POP PUSH2 0x1C8F PUSH1 0x20 DUP6 ADD PUSH2 0x1C1D 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 0x1CB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x596 DUP3 PUSH2 0x1C1D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP8 PUSH2 0x1C1D JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x1D22 PUSH1 0x60 DUP9 ADD PUSH2 0x1CD3 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 0x1D57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D60 DUP9 PUSH2 0x1C1D JUMP JUMPDEST SWAP7 POP PUSH2 0x1D6E PUSH1 0x20 DUP10 ADD PUSH2 0x1C1D JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x1D8A PUSH1 0x80 DUP10 ADD PUSH2 0x1CD3 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 0x1DB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC2 DUP4 PUSH2 0x1C1D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DD0 PUSH1 0x20 DUP5 ADD PUSH2 0x1C1D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF5 DUP4 PUSH2 0x1C1D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1E0E 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 0x1E2D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1421 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C3 JUMPI PUSH2 0x4C3 PUSH2 0x1E4D JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x4C3 JUMPI PUSH2 0x4C3 PUSH2 0x1E4D 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 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1ED2 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI POP 0xEE PUSH31 0x6C36936272DDC47E4EDCC296B811102E932B7D22C09415B4F2479B7B64736F PUSH13 0x63430008110033DEC2BACDD2F0 JUMPDEST MSIZE 0xDE CALLVALUE 0xDA SWAP12 MSTORE RETURNDATASIZE SELFDESTRUCT DUP12 0xE4 0x2E 0x5E CODESIZE 0xE8 XOR 0xC8 0x2F 0xDB SIGNEXTEND 0xAE PUSH24 0x4387A7240000000000000000000000000000000000000000 ","sourceMap":"830:1168:79:-:0;;;1036:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1179:3;1829:52:36;;;;;;;;;;;;;-1:-1:-1;;;1829:52:36;;;1868:4;2464:602:52;;;;;;;;;;;;;-1:-1:-1;;;2464:602:52;;;1976:113:31;;;;;;;;;;;;;-1:-1:-1;;;1976:113:31;;;;;;;;;;;;;;;;-1:-1:-1;;;1976:113:31;;;2050:5;2042;:13;;;;;;:::i;:::-;-1:-1:-1;2065:7:31;:17;2075:7;2065;:17;:::i;:::-;-1:-1:-1;;2550:22:52;;;;;;;2606:25;;;;;;;;;2787;;;;2822:31;;;;2882:13;2863:32;;;;-1:-1:-1;3642:73:52;;2660:117;3642:73;;;5038:25:89;;;5079:18;;;5072:34;;;;-1:-1:-1;5122:18:89;;5115:34;;;;5165:18;;;;5158:34;;;;3709:4:52;5208:19:89;;;5201:61;;;3642:73:52;;;;;;;;;;5010:19:89;;;;3642:73:52;;;3632:84;;;;;;;2905:85;;3000:28;;;;3038:21;;-1:-1:-1;;;;;;;311:17:61;;307:56;;337:26;;-1:-1:-1;;;337:26:61;;;;;;;;;;;307:56;-1:-1:-1;;;;;373:9:61;;;1194:51:79::3;1200:10;1228:16;3173:2:31::0;1228::79::3;:16;:::i;:::-;1212:32;::::0;:13;:32:::3;:::i;:::-;1194:5;:51::i;:::-;1036:216:::0;;830:1168;;1740:120;1830:23;1842:2;1846:6;1830:11;;;;;:23;;:::i;:::-;1740:120;;:::o;6705:285:34:-;6789:28;6801:7;6810:6;6789:11;;;;;:28;;:::i;:::-;-1:-1:-1;;;;;6835:13:34;:11;:13;;:::i;:::-;:29;;6827:90;;;;-1:-1:-1;;;6827:90:34;;5475:2:89;6827:90:34;;;5457:21:89;5514:2;5494:18;;;5487:30;5553:34;5533:18;;;5526:62;-1:-1:-1;;;5604:18:89;;;5597:46;5660:19;;6827:90:34;;;;;;;;;6928:55;6945:23;6970:4;;;;;6976:6;6928:16;:55::i;:::-;;;6705:285;;:::o;8567:535:31:-;-1:-1:-1;;;;;8650:21:31;;8642:65;;;;-1:-1:-1;;;8642:65:31;;5892:2:89;8642:65:31;;;5874:21:89;5931:2;5911:18;;;5904:30;5970:33;5950:18;;;5943:61;6021:18;;8642:65:31;5690:355:89;8642:65:31;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:31;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;6326:25:89;;;8999:37:31;;6299:18:89;8999:37:31;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;3242:106::-;3329:12;;;3242:106::o;9575:96:34:-;9633:7;9659:5;9663:1;9659;:5;:::i;:::-;9652:12;;9575:96;;;;;:::o;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:34;;;;;;;;9147:16;;;;;;;;;-1:-1:-1;9147:16:34;;;;;;;9136:59;9108:87;;9218:7;:13;;;-1:-1:-1;;;;;9206:25:34;;;9253:20;9256:9;9267:5;9253:2;:20;;:::i;:::-;9241:32;;9294:1;9288:3;:7;:44;;;;-1:-1:-1;9299:17:34;;: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:34;;;;;;;;;;;;;;;;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:34;;;;;;9446:106;;;;;;;-1:-1:-1;9446:106:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9284:279;9061:508;;8853:716;;;;;;:::o;12180:121:31:-;;;;:::o;1566:168:79:-;1684:43;1710:4;1716:2;1720:6;1684:25;;;;;:43;;:::i;2836:192:56:-;2893:7;-1:-1:-1;;;;;2920:26:56;;;2912:78;;;;-1:-1:-1;;;2912:78:56;;6697:2:89;2912:78:56;;;6679:21:89;6736:2;6716:18;;;6709:30;6775:34;6755:18;;;6748:62;-1:-1:-1;;;6826:18:89;;;6819:37;6873:19;;2912:78:56;6495:403:89;2912:78:56;-1:-1:-1;3015:5:56;2836:192::o;15264:187::-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:56;;7105:2:89;15338:76:56;;;7087:21:89;7144:2;7124:18;;;7117:30;7183:34;7163:18;;;7156:62;-1:-1:-1;;;7234:18:89;;;7227:36;7280:19;;15338:76:56;6903:402:89;7409:254:34;7546:43;7572:4;7578:2;7582:6;7546:25;;;;;:43;;:::i;:::-;-1:-1:-1;;;;;2318:19:34;;;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:34;;;8380:221;;-1:-1:-1;;;;;8479:17:34;;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:34;-1:-1:-1;;;;;;;;;;;8565:9:34;8576;8539:47;;;;;;7484:25:89;;;7540:2;7525:18;;7518:34;7472:2;7457:18;;7310:248;8539:47:34;;;;;;;;8403:198;;8380:221;-1:-1:-1;;;;;8619:17:34;;;8615:216;;-1:-1:-1;;;;;8714:17:34;;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:34;-1:-1:-1;;;;;;;;;;;8795:9:34;8806;8769:47;;;;;;7484:25:89;;;7540:2;7525:18;;7518:34;7472:2;7457:18;;7310:248;8769:47:34;;;;;;;;8638:193;;8220:627;;;:::o;9677:101::-;9740:7;9766:5;9770:1;9766;:5;:::i;14:351:89:-;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:89;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:89:o;370:127::-;431:10;426:3;422:20;419:1;412:31;462:4;459:1;452:15;486:4;483:1;476:15;502:380;581:1;577:12;;;;624;;;645:61;;699:4;691:6;687:17;677:27;;645:61;752:2;744:6;741:14;721:18;718:38;715:161;;798:10;793:3;789:20;786:1;779:31;833:4;830:1;823:15;861:4;858:1;851:15;715:161;;502:380;;;:::o;1013:545::-;1115:2;1110:3;1107:11;1104:448;;;1151:1;1176:5;1172:2;1165:17;1221:4;1217:2;1207:19;1291:2;1279:10;1275:19;1272:1;1268:27;1262:4;1258:38;1327:4;1315:10;1312:20;1309:47;;;-1:-1:-1;1350:4:89;1309:47;1405:2;1400:3;1396:12;1393:1;1389:20;1383:4;1379:31;1369:41;;1460:82;1478:2;1471:5;1468:13;1460:82;;;1523:17;;;1504:1;1493:13;1460:82;;;1464:3;;;1013:545;;;:::o;1734:1352::-;1854:10;;-1:-1:-1;;;;;1876:30:89;;1873:56;;;1909:18;;:::i;:::-;1938:97;2028:6;1988:38;2020:4;2014:11;1988:38;:::i;:::-;1982:4;1938:97;:::i;:::-;2090:4;;2154:2;2143:14;;2171:1;2166:663;;;;2873:1;2890:6;2887:89;;;-1:-1:-1;2942:19:89;;;2936:26;2887:89;-1:-1:-1;;1691:1:89;1687:11;;;1683:24;1679:29;1669:40;1715:1;1711:11;;;1666:57;2989:81;;2136:944;;2166:663;960:1;953:14;;;997:4;984:18;;-1:-1:-1;;2202:20:89;;;2320:236;2334:7;2331:1;2328:14;2320:236;;;2423:19;;;2417:26;2402:42;;2515:27;;;;2483:1;2471:14;;;;2350:19;;2320:236;;;2324:3;2584:6;2575:7;2572:19;2569:201;;;2645:19;;;2639:26;-1:-1:-1;;2728:1:89;2724:14;;;2740:3;2720:24;2716:37;2712:42;2697:58;2682:74;;2569:201;-1:-1:-1;;;;;2816:1:89;2800:14;;;2796:22;2783:36;;-1:-1:-1;1734:1352:89:o;3091:127::-;3152:10;3147:3;3143:20;3140:1;3133:31;3183:4;3180:1;3173:15;3207:4;3204:1;3197:15;3223:422;3312:1;3355:5;3312:1;3369:270;3390:7;3380:8;3377:21;3369:270;;;3449:4;3445:1;3441:6;3437:17;3431:4;3428:27;3425:53;;;3458:18;;:::i;:::-;3508:7;3498:8;3494:22;3491:55;;;3528:16;;;;3491:55;3607:22;;;;3567:15;;;;3369:270;;;3373:3;3223:422;;;;;:::o;3650:806::-;3699:5;3729:8;3719:80;;-1:-1:-1;3770:1:89;3784:5;;3719:80;3818:4;3808:76;;-1:-1:-1;3855:1:89;3869:5;;3808:76;3900:4;3918:1;3913:59;;;;3986:1;3981:130;;;;3893:218;;3913:59;3943:1;3934:10;;3957:5;;;3981:130;4018:3;4008:8;4005:17;4002:43;;;4025:18;;:::i;:::-;-1:-1:-1;;4081:1:89;4067:16;;4096:5;;3893:218;;4195:2;4185:8;4182:16;4176:3;4170:4;4167:13;4163:36;4157:2;4147:8;4144:16;4139:2;4133:4;4130:12;4126:35;4123:77;4120:159;;;-1:-1:-1;4232:19:89;;;4264:5;;4120:159;4311:34;4336:8;4330:4;4311:34;:::i;:::-;4381:6;4377:1;4373:6;4369:19;4360:7;4357:32;4354:58;;;4392:18;;:::i;:::-;4430:20;;3650:806;-1:-1:-1;;;3650:806:89:o;4461:140::-;4519:5;4548:47;4589:4;4579:8;4575:19;4569:4;4548:47;:::i;4606:168::-;4679:9;;;4710;;4727:15;;;4721:22;;4707:37;4697:71;;4748:18;;:::i;6050:125::-;6115:9;;;6136:10;;;6133:36;;;6149:18;;:::i;6362:128::-;6429:9;;;6450:11;;;6447:37;;;6464:18;;:::i;7310:248::-;830:1168:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_10919":{"entryPoint":1261,"id":10919,"parameterSlots":0,"returnSlots":1},"@HUB_21019":{"entryPoint":null,"id":21019,"parameterSlots":0,"returnSlots":0},"@_add_10722":{"entryPoint":3195,"id":10722,"parameterSlots":2,"returnSlots":1},"@_afterTokenTransfer_10498":{"entryPoint":3417,"id":10498,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_22624":{"entryPoint":5499,"id":22624,"parameterSlots":3,"returnSlots":0},"@_afterTokenTransfer_9931":{"entryPoint":null,"id":9931,"parameterSlots":3,"returnSlots":0},"@_approve_9866":{"entryPoint":3484,"id":9866,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9920":{"entryPoint":null,"id":9920,"parameterSlots":3,"returnSlots":0},"@_buildDomainSeparator_15285":{"entryPoint":null,"id":15285,"parameterSlots":3,"returnSlots":1},"@_burn_10468":{"entryPoint":6086,"id":10468,"parameterSlots":2,"returnSlots":0},"@_burn_22660":{"entryPoint":4870,"id":22660,"parameterSlots":2,"returnSlots":0},"@_burn_9821":{"entryPoint":6806,"id":9821,"parameterSlots":2,"returnSlots":0},"@_checkpointsLookup_10326":{"entryPoint":4613,"id":10326,"parameterSlots":2,"returnSlots":1},"@_delegate_10537":{"entryPoint":4880,"id":10537,"parameterSlots":2,"returnSlots":0},"@_domainSeparatorV4_15258":{"entryPoint":4318,"id":15258,"parameterSlots":0,"returnSlots":1},"@_hashTypedDataV4_15301":{"entryPoint":5001,"id":15301,"parameterSlots":1,"returnSlots":1},"@_maxSupply_10413":{"entryPoint":null,"id":10413,"parameterSlots":0,"returnSlots":1},"@_mint_10445":{"entryPoint":2852,"id":10445,"parameterSlots":2,"returnSlots":0},"@_mint_22642":{"entryPoint":4860,"id":22642,"parameterSlots":2,"returnSlots":0},"@_mint_9749":{"entryPoint":2996,"id":9749,"parameterSlots":2,"returnSlots":0},"@_moveVotingPower_10608":{"entryPoint":5510,"id":10608,"parameterSlots":3,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_9909":{"entryPoint":3776,"id":9909,"parameterSlots":3,"returnSlots":0},"@_subtract_10736":{"entryPoint":3472,"id":10736,"parameterSlots":2,"returnSlots":1},"@_throwError_14841":{"entryPoint":6306,"id":14841,"parameterSlots":1,"returnSlots":0},"@_transfer_9692":{"entryPoint":3892,"id":9692,"parameterSlots":3,"returnSlots":0},"@_unsafeAccess_10751":{"entryPoint":null,"id":10751,"parameterSlots":2,"returnSlots":1},"@_useNonce_10948":{"entryPoint":5119,"id":10948,"parameterSlots":1,"returnSlots":1},"@_writeCheckpoint_10708":{"entryPoint":5159,"id":10708,"parameterSlots":3,"returnSlots":2},"@allowance_9487":{"entryPoint":2677,"id":9487,"parameterSlots":2,"returnSlots":1},"@approve_9512":{"entryPoint":1199,"id":9512,"parameterSlots":2,"returnSlots":1},"@average_15404":{"entryPoint":6059,"id":15404,"parameterSlots":2,"returnSlots":1},"@balanceOf_9444":{"entryPoint":null,"id":9444,"parameterSlots":1,"returnSlots":1},"@burnFrom_10053":{"entryPoint":1581,"id":10053,"parameterSlots":2,"returnSlots":0},"@burn_10032":{"entryPoint":1524,"id":10032,"parameterSlots":1,"returnSlots":0},"@checkpoints_10108":{"entryPoint":2720,"id":10108,"parameterSlots":2,"returnSlots":1},"@current_14342":{"entryPoint":null,"id":14342,"parameterSlots":1,"returnSlots":1},"@decimals_9420":{"entryPoint":null,"id":9420,"parameterSlots":0,"returnSlots":1},"@decreaseAllowance_9615":{"entryPoint":1874,"id":9615,"parameterSlots":2,"returnSlots":1},"@delegateBySig_10400":{"entryPoint":2011,"id":10400,"parameterSlots":6,"returnSlots":0},"@delegate_10340":{"entryPoint":1537,"id":10340,"parameterSlots":1,"returnSlots":0},"@delegates_10139":{"entryPoint":null,"id":10139,"parameterSlots":1,"returnSlots":1},"@getPastTotalSupply_10220":{"entryPoint":1632,"id":10220,"parameterSlots":1,"returnSlots":1},"@getPastVotes_10197":{"entryPoint":1310,"id":10197,"parameterSlots":2,"returnSlots":1},"@getVotes_10170":{"entryPoint":1739,"id":10170,"parameterSlots":1,"returnSlots":1},"@increaseAllowance_9574":{"entryPoint":1276,"id":9574,"parameterSlots":2,"returnSlots":1},"@increment_14356":{"entryPoint":null,"id":14356,"parameterSlots":1,"returnSlots":0},"@log2_15875":{"entryPoint":6636,"id":15875,"parameterSlots":1,"returnSlots":1},"@min_15381":{"entryPoint":6784,"id":15381,"parameterSlots":2,"returnSlots":1},"@mint_22603":{"entryPoint":1437,"id":22603,"parameterSlots":2,"returnSlots":0},"@name_9400":{"entryPoint":1053,"id":9400,"parameterSlots":0,"returnSlots":1},"@nonces_10908":{"entryPoint":1602,"id":10908,"parameterSlots":1,"returnSlots":1},"@numCheckpoints_10125":{"entryPoint":1547,"id":10125,"parameterSlots":1,"returnSlots":1},"@permit_10892":{"entryPoint":2321,"id":10892,"parameterSlots":7,"returnSlots":0},"@recover_15088":{"entryPoint":5079,"id":15088,"parameterSlots":4,"returnSlots":1},"@sqrt_15707":{"entryPoint":5827,"id":15707,"parameterSlots":1,"returnSlots":1},"@symbol_9410":{"entryPoint":1724,"id":9410,"parameterSlots":0,"returnSlots":1},"@toTypedDataHash_15147":{"entryPoint":null,"id":15147,"parameterSlots":2,"returnSlots":1},"@toUint224_16306":{"entryPoint":3207,"id":16306,"parameterSlots":1,"returnSlots":1},"@toUint32_16906":{"entryPoint":3316,"id":16906,"parameterSlots":1,"returnSlots":1},"@totalSupply_9430":{"entryPoint":null,"id":9430,"parameterSlots":0,"returnSlots":1},"@transferFrom_9545":{"entryPoint":1225,"id":9545,"parameterSlots":3,"returnSlots":1},"@transfer_9469":{"entryPoint":1997,"id":9469,"parameterSlots":2,"returnSlots":1},"@tryRecover_15055":{"entryPoint":6110,"id":15055,"parameterSlots":4,"returnSlots":2},"abi_decode_address":{"entryPoint":7197,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7590,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":7267,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":7484,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7225,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":7396,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint32":{"entryPoint":7641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":7327,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_uint8":{"entryPoint":7379,"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_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":7119,"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_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__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_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Checkpoint_$10071_memory_ptr__to_t_struct$_Checkpoint_$10071_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},"checked_add_t_uint256":{"entryPoint":7779,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":7861,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7798,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":7705,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":7757,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":7839,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":7895,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7817,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17195:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:89"},"nodeType":"YulFunctionCall","src":"166:21:89"},"nodeType":"YulExpressionStatement","src":"166:21:89"},{"nodeType":"YulVariableDeclaration","src":"196:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:89"},"nodeType":"YulFunctionCall","src":"210:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:89"},"nodeType":"YulFunctionCall","src":"239:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:89"},"nodeType":"YulFunctionCall","src":"232:34:89"},"nodeType":"YulExpressionStatement","src":"232:34:89"},{"nodeType":"YulVariableDeclaration","src":"275:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:89"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:89"},"nodeType":"YulFunctionCall","src":"369:17:89"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:89"},"nodeType":"YulFunctionCall","src":"365:26:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:89"},"nodeType":"YulFunctionCall","src":"403:14:89"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:89"},"nodeType":"YulFunctionCall","src":"399:23:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:89"},"nodeType":"YulFunctionCall","src":"393:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:89"},"nodeType":"YulFunctionCall","src":"358:66:89"},"nodeType":"YulExpressionStatement","src":"358:66:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:89"},"nodeType":"YulFunctionCall","src":"302:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:89","statements":[{"nodeType":"YulAssignment","src":"318:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:89"},"nodeType":"YulFunctionCall","src":"323:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:89","statements":[]},"src":"294:140:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:89"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:89"},"nodeType":"YulFunctionCall","src":"454:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:89"},"nodeType":"YulFunctionCall","src":"450:31:89"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:89"},"nodeType":"YulFunctionCall","src":"443:42:89"},"nodeType":"YulExpressionStatement","src":"443:42:89"},{"nodeType":"YulAssignment","src":"494:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:89"},"nodeType":"YulFunctionCall","src":"525:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:89"},"nodeType":"YulFunctionCall","src":"542:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:89"},"nodeType":"YulFunctionCall","src":"521:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:89"},"nodeType":"YulFunctionCall","src":"506:45:89"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:89"},"nodeType":"YulFunctionCall","src":"502:54:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:89"}]}]},"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:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:89","type":""}],"src":"14:548:89"},{"body":{"nodeType":"YulBlock","src":"616:124:89","statements":[{"nodeType":"YulAssignment","src":"626:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:89"},"nodeType":"YulFunctionCall","src":"635:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:89"}]},{"body":{"nodeType":"YulBlock","src":"718:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:89"},"nodeType":"YulFunctionCall","src":"720:12:89"},"nodeType":"YulExpressionStatement","src":"720:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:89"},"nodeType":"YulFunctionCall","src":"699:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:89"},"nodeType":"YulFunctionCall","src":"695:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:89"},"nodeType":"YulFunctionCall","src":"684:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:89"},"nodeType":"YulFunctionCall","src":"674:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:89"},"nodeType":"YulFunctionCall","src":"667:50:89"},"nodeType":"YulIf","src":"664:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:89","type":""}],"src":"567:173:89"},{"body":{"nodeType":"YulBlock","src":"832:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:89"},"nodeType":"YulFunctionCall","src":"880:12:89"},"nodeType":"YulExpressionStatement","src":"880:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:89"},"nodeType":"YulFunctionCall","src":"849:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:89"},"nodeType":"YulFunctionCall","src":"845:32:89"},"nodeType":"YulIf","src":"842:52:89"},{"nodeType":"YulAssignment","src":"903:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:89"},"nodeType":"YulFunctionCall","src":"913:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:89"}]},{"nodeType":"YulAssignment","src":"951:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:89"},"nodeType":"YulFunctionCall","src":"974:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:89"},"nodeType":"YulFunctionCall","src":"961:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:89","type":""}],"src":"745:254:89"},{"body":{"nodeType":"YulBlock","src":"1099:92:89","statements":[{"nodeType":"YulAssignment","src":"1109:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:89"},"nodeType":"YulFunctionCall","src":"1117:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:89"},"nodeType":"YulFunctionCall","src":"1169:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:89"},"nodeType":"YulFunctionCall","src":"1162:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:89"},"nodeType":"YulFunctionCall","src":"1144:41:89"},"nodeType":"YulExpressionStatement","src":"1144:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:89","type":""}],"src":"1004:187:89"},{"body":{"nodeType":"YulBlock","src":"1297:76:89","statements":[{"nodeType":"YulAssignment","src":"1307:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:89"},"nodeType":"YulFunctionCall","src":"1315:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:89"},"nodeType":"YulFunctionCall","src":"1342:25:89"},"nodeType":"YulExpressionStatement","src":"1342:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:89","type":""}],"src":"1196:177:89"},{"body":{"nodeType":"YulBlock","src":"1482:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:89"},"nodeType":"YulFunctionCall","src":"1530:12:89"},"nodeType":"YulExpressionStatement","src":"1530:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:89"},"nodeType":"YulFunctionCall","src":"1499:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:89"},"nodeType":"YulFunctionCall","src":"1495:32:89"},"nodeType":"YulIf","src":"1492:52:89"},{"nodeType":"YulAssignment","src":"1553:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:89"},"nodeType":"YulFunctionCall","src":"1563:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:89"}]},{"nodeType":"YulAssignment","src":"1601:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:89"},"nodeType":"YulFunctionCall","src":"1630:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:89"},"nodeType":"YulFunctionCall","src":"1611:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:89"}]},{"nodeType":"YulAssignment","src":"1658:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:89"},"nodeType":"YulFunctionCall","src":"1681:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:89"},"nodeType":"YulFunctionCall","src":"1668:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:89","type":""}],"src":"1378:328:89"},{"body":{"nodeType":"YulBlock","src":"1808:87:89","statements":[{"nodeType":"YulAssignment","src":"1818:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:89"},"nodeType":"YulFunctionCall","src":"1826:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:89"},"nodeType":"YulFunctionCall","src":"1871:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:89"},"nodeType":"YulFunctionCall","src":"1853:36:89"},"nodeType":"YulExpressionStatement","src":"1853:36:89"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:89","type":""}],"src":"1711:184:89"},{"body":{"nodeType":"YulBlock","src":"2001:76:89","statements":[{"nodeType":"YulAssignment","src":"2011:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2034:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:89"},"nodeType":"YulFunctionCall","src":"2019:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2011:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2053:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2064:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2046:6:89"},"nodeType":"YulFunctionCall","src":"2046:25:89"},"nodeType":"YulExpressionStatement","src":"2046:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1970:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1981:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1992:4:89","type":""}],"src":"1900:177:89"},{"body":{"nodeType":"YulBlock","src":"2152:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"2198:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2207:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2210:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2200:6:89"},"nodeType":"YulFunctionCall","src":"2200:12:89"},"nodeType":"YulExpressionStatement","src":"2200:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2173:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2182:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2169:3:89"},"nodeType":"YulFunctionCall","src":"2169:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2194:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2165:3:89"},"nodeType":"YulFunctionCall","src":"2165:32:89"},"nodeType":"YulIf","src":"2162:52:89"},{"nodeType":"YulAssignment","src":"2223:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2246:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2233:12:89"},"nodeType":"YulFunctionCall","src":"2233:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2223:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2118:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2129:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2141:6:89","type":""}],"src":"2082:180:89"},{"body":{"nodeType":"YulBlock","src":"2337:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"2383:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2392:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2395:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2385:6:89"},"nodeType":"YulFunctionCall","src":"2385:12:89"},"nodeType":"YulExpressionStatement","src":"2385:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2358:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2367:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2354:3:89"},"nodeType":"YulFunctionCall","src":"2354:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2379:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2350:3:89"},"nodeType":"YulFunctionCall","src":"2350:32:89"},"nodeType":"YulIf","src":"2347:52:89"},{"nodeType":"YulAssignment","src":"2408:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2437:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2418:18:89"},"nodeType":"YulFunctionCall","src":"2418:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2408:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2303:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2314:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2326:6:89","type":""}],"src":"2267:186:89"},{"body":{"nodeType":"YulBlock","src":"2559:102:89","statements":[{"nodeType":"YulAssignment","src":"2569:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2581:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2592:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:89"},"nodeType":"YulFunctionCall","src":"2577:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2569:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2611:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2626:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2642:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2647:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2638:3:89"},"nodeType":"YulFunctionCall","src":"2638:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"2651:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2634:3:89"},"nodeType":"YulFunctionCall","src":"2634:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2622:3:89"},"nodeType":"YulFunctionCall","src":"2622:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2604:6:89"},"nodeType":"YulFunctionCall","src":"2604:51:89"},"nodeType":"YulExpressionStatement","src":"2604:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2528:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2539:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2550:4:89","type":""}],"src":"2458:203:89"},{"body":{"nodeType":"YulBlock","src":"2765:93:89","statements":[{"nodeType":"YulAssignment","src":"2775:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2787:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2798:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2783:3:89"},"nodeType":"YulFunctionCall","src":"2783:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2775:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2817:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2832:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2840:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2828:3:89"},"nodeType":"YulFunctionCall","src":"2828:23:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2810:6:89"},"nodeType":"YulFunctionCall","src":"2810:42:89"},"nodeType":"YulExpressionStatement","src":"2810:42:89"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2734:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2745:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2756:4:89","type":""}],"src":"2666:192:89"},{"body":{"nodeType":"YulBlock","src":"2910:109:89","statements":[{"nodeType":"YulAssignment","src":"2920:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2942:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2929:12:89"},"nodeType":"YulFunctionCall","src":"2929:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2920:5:89"}]},{"body":{"nodeType":"YulBlock","src":"2997:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3006:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3009:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2999:6:89"},"nodeType":"YulFunctionCall","src":"2999:12:89"},"nodeType":"YulExpressionStatement","src":"2999:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2971:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2982:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2989:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2978:3:89"},"nodeType":"YulFunctionCall","src":"2978:16:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2968:2:89"},"nodeType":"YulFunctionCall","src":"2968:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2961:6:89"},"nodeType":"YulFunctionCall","src":"2961:35:89"},"nodeType":"YulIf","src":"2958:55:89"}]},"name":"abi_decode_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2889:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2900:5:89","type":""}],"src":"2863:156:89"},{"body":{"nodeType":"YulBlock","src":"3177:378:89","statements":[{"body":{"nodeType":"YulBlock","src":"3224:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3233:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3236:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3226:6:89"},"nodeType":"YulFunctionCall","src":"3226:12:89"},"nodeType":"YulExpressionStatement","src":"3226:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3198:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3207:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3194:3:89"},"nodeType":"YulFunctionCall","src":"3194:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3219:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3190:3:89"},"nodeType":"YulFunctionCall","src":"3190:33:89"},"nodeType":"YulIf","src":"3187:53:89"},{"nodeType":"YulAssignment","src":"3249:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3278:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3259:18:89"},"nodeType":"YulFunctionCall","src":"3259:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3249:6:89"}]},{"nodeType":"YulAssignment","src":"3297:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3324:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3335:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3320:3:89"},"nodeType":"YulFunctionCall","src":"3320:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3307:12:89"},"nodeType":"YulFunctionCall","src":"3307:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3297:6:89"}]},{"nodeType":"YulAssignment","src":"3348:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3375:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3386:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3371:3:89"},"nodeType":"YulFunctionCall","src":"3371:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3358:12:89"},"nodeType":"YulFunctionCall","src":"3358:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3348:6:89"}]},{"nodeType":"YulAssignment","src":"3399:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3430:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3441:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3426:3:89"},"nodeType":"YulFunctionCall","src":"3426:18:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"3409:16:89"},"nodeType":"YulFunctionCall","src":"3409:36:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3399:6:89"}]},{"nodeType":"YulAssignment","src":"3454:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3481:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3492:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3477:3:89"},"nodeType":"YulFunctionCall","src":"3477:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3464:12:89"},"nodeType":"YulFunctionCall","src":"3464:33:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3454:6:89"}]},{"nodeType":"YulAssignment","src":"3506:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3533:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3544:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3529:3:89"},"nodeType":"YulFunctionCall","src":"3529:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3516:12:89"},"nodeType":"YulFunctionCall","src":"3516:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"3506:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3103:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3114:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3126:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3134:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3142:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3150:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3158:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3166:6:89","type":""}],"src":"3024:531:89"},{"body":{"nodeType":"YulBlock","src":"3730:436:89","statements":[{"body":{"nodeType":"YulBlock","src":"3777:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3786:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3789:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3779:6:89"},"nodeType":"YulFunctionCall","src":"3779:12:89"},"nodeType":"YulExpressionStatement","src":"3779:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3751:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3760:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3747:3:89"},"nodeType":"YulFunctionCall","src":"3747:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3772:3:89","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3743:3:89"},"nodeType":"YulFunctionCall","src":"3743:33:89"},"nodeType":"YulIf","src":"3740:53:89"},{"nodeType":"YulAssignment","src":"3802:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3831:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3812:18:89"},"nodeType":"YulFunctionCall","src":"3812:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3802:6:89"}]},{"nodeType":"YulAssignment","src":"3850:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3883:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3894:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3879:3:89"},"nodeType":"YulFunctionCall","src":"3879:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3860:18:89"},"nodeType":"YulFunctionCall","src":"3860:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3850:6:89"}]},{"nodeType":"YulAssignment","src":"3907:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3934:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3945:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3930:3:89"},"nodeType":"YulFunctionCall","src":"3930:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3917:12:89"},"nodeType":"YulFunctionCall","src":"3917:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3907:6:89"}]},{"nodeType":"YulAssignment","src":"3958:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3985:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3996:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3981:3:89"},"nodeType":"YulFunctionCall","src":"3981:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3968:12:89"},"nodeType":"YulFunctionCall","src":"3968:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3958:6:89"}]},{"nodeType":"YulAssignment","src":"4009:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4040:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4051:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4036:3:89"},"nodeType":"YulFunctionCall","src":"4036:19:89"}],"functionName":{"name":"abi_decode_uint8","nodeType":"YulIdentifier","src":"4019:16:89"},"nodeType":"YulFunctionCall","src":"4019:37:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4009:6:89"}]},{"nodeType":"YulAssignment","src":"4065:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4092:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4103:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4088:3:89"},"nodeType":"YulFunctionCall","src":"4088:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4075:12:89"},"nodeType":"YulFunctionCall","src":"4075:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4065:6:89"}]},{"nodeType":"YulAssignment","src":"4117:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4144:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4155:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4140:3:89"},"nodeType":"YulFunctionCall","src":"4140:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4127:12:89"},"nodeType":"YulFunctionCall","src":"4127:33:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4117:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3648:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3659:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3671:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3679:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3687:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3695:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3703:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3711:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3719:6:89","type":""}],"src":"3560:606:89"},{"body":{"nodeType":"YulBlock","src":"4258:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"4304:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4313:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4316:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4306:6:89"},"nodeType":"YulFunctionCall","src":"4306:12:89"},"nodeType":"YulExpressionStatement","src":"4306:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4279:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4288:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4275:3:89"},"nodeType":"YulFunctionCall","src":"4275:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4300:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4271:3:89"},"nodeType":"YulFunctionCall","src":"4271:32:89"},"nodeType":"YulIf","src":"4268:52:89"},{"nodeType":"YulAssignment","src":"4329:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4358:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4339:18:89"},"nodeType":"YulFunctionCall","src":"4339:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4329:6:89"}]},{"nodeType":"YulAssignment","src":"4377:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4410:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4421:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4406:3:89"},"nodeType":"YulFunctionCall","src":"4406:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4387:18:89"},"nodeType":"YulFunctionCall","src":"4387:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4377:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4216:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4227:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4239:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4247:6:89","type":""}],"src":"4171:260:89"},{"body":{"nodeType":"YulBlock","src":"4522:264:89","statements":[{"body":{"nodeType":"YulBlock","src":"4568:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4577:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4580:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4570:6:89"},"nodeType":"YulFunctionCall","src":"4570:12:89"},"nodeType":"YulExpressionStatement","src":"4570:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4543:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4552:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4539:3:89"},"nodeType":"YulFunctionCall","src":"4539:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4564:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4535:3:89"},"nodeType":"YulFunctionCall","src":"4535:32:89"},"nodeType":"YulIf","src":"4532:52:89"},{"nodeType":"YulAssignment","src":"4593:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4622:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4603:18:89"},"nodeType":"YulFunctionCall","src":"4603:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4593:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4641:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4682:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4667:3:89"},"nodeType":"YulFunctionCall","src":"4667:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4654:12:89"},"nodeType":"YulFunctionCall","src":"4654:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4645:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4740:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4749:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4752:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4742:6:89"},"nodeType":"YulFunctionCall","src":"4742:12:89"},"nodeType":"YulExpressionStatement","src":"4742:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4708:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4719:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"4726:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4715:3:89"},"nodeType":"YulFunctionCall","src":"4715:22:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4705:2:89"},"nodeType":"YulFunctionCall","src":"4705:33:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4698:6:89"},"nodeType":"YulFunctionCall","src":"4698:41:89"},"nodeType":"YulIf","src":"4695:61:89"},{"nodeType":"YulAssignment","src":"4765:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"4775:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4765:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4480:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4491:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4503:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4511:6:89","type":""}],"src":"4436:350:89"},{"body":{"nodeType":"YulBlock","src":"4950:189:89","statements":[{"nodeType":"YulAssignment","src":"4960:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4972:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4983:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4968:3:89"},"nodeType":"YulFunctionCall","src":"4968:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4960:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5002:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5023:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5017:5:89"},"nodeType":"YulFunctionCall","src":"5017:13:89"},{"kind":"number","nodeType":"YulLiteral","src":"5032:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5013:3:89"},"nodeType":"YulFunctionCall","src":"5013:30:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4995:6:89"},"nodeType":"YulFunctionCall","src":"4995:49:89"},"nodeType":"YulExpressionStatement","src":"4995:49:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5064:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5075:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5060:3:89"},"nodeType":"YulFunctionCall","src":"5060:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5096:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5104:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5092:3:89"},"nodeType":"YulFunctionCall","src":"5092:17:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5086:5:89"},"nodeType":"YulFunctionCall","src":"5086:24:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5120:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5125:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5116:3:89"},"nodeType":"YulFunctionCall","src":"5116:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"5129:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5112:3:89"},"nodeType":"YulFunctionCall","src":"5112:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5082:3:89"},"nodeType":"YulFunctionCall","src":"5082:50:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5053:6:89"},"nodeType":"YulFunctionCall","src":"5053:80:89"},"nodeType":"YulExpressionStatement","src":"5053:80:89"}]},"name":"abi_encode_tuple_t_struct$_Checkpoint_$10071_memory_ptr__to_t_struct$_Checkpoint_$10071_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4919:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4930:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4941:4:89","type":""}],"src":"4791:348:89"},{"body":{"nodeType":"YulBlock","src":"5199:325:89","statements":[{"nodeType":"YulAssignment","src":"5209:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5223:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"5226:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5219:3:89"},"nodeType":"YulFunctionCall","src":"5219:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5209:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5240:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5270:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"5276:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5266:3:89"},"nodeType":"YulFunctionCall","src":"5266:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5244:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5317:31:89","statements":[{"nodeType":"YulAssignment","src":"5319:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5333:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5341:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5329:3:89"},"nodeType":"YulFunctionCall","src":"5329:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5319:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5297:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5290:6:89"},"nodeType":"YulFunctionCall","src":"5290:26:89"},"nodeType":"YulIf","src":"5287:61:89"},{"body":{"nodeType":"YulBlock","src":"5407:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5428:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5435:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5440:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5431:3:89"},"nodeType":"YulFunctionCall","src":"5431:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5421:6:89"},"nodeType":"YulFunctionCall","src":"5421:31:89"},"nodeType":"YulExpressionStatement","src":"5421:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5472:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5475:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5465:6:89"},"nodeType":"YulFunctionCall","src":"5465:15:89"},"nodeType":"YulExpressionStatement","src":"5465:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5500:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5503:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5493:6:89"},"nodeType":"YulFunctionCall","src":"5493:15:89"},"nodeType":"YulExpressionStatement","src":"5493:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5363:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5386:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5394:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5383:2:89"},"nodeType":"YulFunctionCall","src":"5383:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5360:2:89"},"nodeType":"YulFunctionCall","src":"5360:38:89"},"nodeType":"YulIf","src":"5357:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5179:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5188:6:89","type":""}],"src":"5144:380:89"},{"body":{"nodeType":"YulBlock","src":"5561:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5578:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5585:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5590:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5581:3:89"},"nodeType":"YulFunctionCall","src":"5581:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5571:6:89"},"nodeType":"YulFunctionCall","src":"5571:31:89"},"nodeType":"YulExpressionStatement","src":"5571:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5618:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5621:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5611:6:89"},"nodeType":"YulFunctionCall","src":"5611:15:89"},"nodeType":"YulExpressionStatement","src":"5611:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5642:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5645:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5635:6:89"},"nodeType":"YulFunctionCall","src":"5635:15:89"},"nodeType":"YulExpressionStatement","src":"5635:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"5529:127:89"},{"body":{"nodeType":"YulBlock","src":"5709:77:89","statements":[{"nodeType":"YulAssignment","src":"5719:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5730:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"5733:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5726:3:89"},"nodeType":"YulFunctionCall","src":"5726:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5719:3:89"}]},{"body":{"nodeType":"YulBlock","src":"5758:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5760:16:89"},"nodeType":"YulFunctionCall","src":"5760:18:89"},"nodeType":"YulExpressionStatement","src":"5760:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5750:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"5753:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5747:2:89"},"nodeType":"YulFunctionCall","src":"5747:10:89"},"nodeType":"YulIf","src":"5744:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5692:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"5695:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5701:3:89","type":""}],"src":"5661:125:89"},{"body":{"nodeType":"YulBlock","src":"5965:181:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5982:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5993:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5975:6:89"},"nodeType":"YulFunctionCall","src":"5975:21:89"},"nodeType":"YulExpressionStatement","src":"5975:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6016:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6027:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6012:3:89"},"nodeType":"YulFunctionCall","src":"6012:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6032:2:89","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6005:6:89"},"nodeType":"YulFunctionCall","src":"6005:30:89"},"nodeType":"YulExpressionStatement","src":"6005:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6055:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6066:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6051:3:89"},"nodeType":"YulFunctionCall","src":"6051:18:89"},{"hexValue":"4552433230566f7465733a20626c6f636b206e6f7420796574206d696e6564","kind":"string","nodeType":"YulLiteral","src":"6071:33:89","type":"","value":"ERC20Votes: block not yet mined"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6044:6:89"},"nodeType":"YulFunctionCall","src":"6044:61:89"},"nodeType":"YulExpressionStatement","src":"6044:61:89"},{"nodeType":"YulAssignment","src":"6114:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6126:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6137:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6122:3:89"},"nodeType":"YulFunctionCall","src":"6122:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6114:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_06e5bbaaa109e1d058e1026fbdce9ec5e51f304d46ad524d922a17511e41fd0d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5942:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5956:4:89","type":""}],"src":"5791:355:89"},{"body":{"nodeType":"YulBlock","src":"6200:79:89","statements":[{"nodeType":"YulAssignment","src":"6210:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6222:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"6225:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6218:3:89"},"nodeType":"YulFunctionCall","src":"6218:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"6210:4:89"}]},{"body":{"nodeType":"YulBlock","src":"6251:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"6253:16:89"},"nodeType":"YulFunctionCall","src":"6253:18:89"},"nodeType":"YulExpressionStatement","src":"6253:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"6242:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"6248:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6239:2:89"},"nodeType":"YulFunctionCall","src":"6239:11:89"},"nodeType":"YulIf","src":"6236:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6182:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"6185:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"6191:4:89","type":""}],"src":"6151:128:89"},{"body":{"nodeType":"YulBlock","src":"6316:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6333:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6340:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6345:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6336:3:89"},"nodeType":"YulFunctionCall","src":"6336:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6326:6:89"},"nodeType":"YulFunctionCall","src":"6326:31:89"},"nodeType":"YulExpressionStatement","src":"6326:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6373:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6376:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6366:6:89"},"nodeType":"YulFunctionCall","src":"6366:15:89"},"nodeType":"YulExpressionStatement","src":"6366:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6397:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6400:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6390:6:89"},"nodeType":"YulFunctionCall","src":"6390:15:89"},"nodeType":"YulExpressionStatement","src":"6390:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"6284:127:89"},{"body":{"nodeType":"YulBlock","src":"6590:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6607:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6618:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6600:6:89"},"nodeType":"YulFunctionCall","src":"6600:21:89"},"nodeType":"YulExpressionStatement","src":"6600:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6641:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6652:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6637:3:89"},"nodeType":"YulFunctionCall","src":"6637:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6657:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6630:6:89"},"nodeType":"YulFunctionCall","src":"6630:30:89"},"nodeType":"YulExpressionStatement","src":"6630:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6680:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6691:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6676:3:89"},"nodeType":"YulFunctionCall","src":"6676:18:89"},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77","kind":"string","nodeType":"YulLiteral","src":"6696:34:89","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6669:6:89"},"nodeType":"YulFunctionCall","src":"6669:62:89"},"nodeType":"YulExpressionStatement","src":"6669:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6751:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6762:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6747:3:89"},"nodeType":"YulFunctionCall","src":"6747:18:89"},{"hexValue":"207a65726f","kind":"string","nodeType":"YulLiteral","src":"6767:7:89","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6740:6:89"},"nodeType":"YulFunctionCall","src":"6740:35:89"},"nodeType":"YulExpressionStatement","src":"6740:35:89"},{"nodeType":"YulAssignment","src":"6784:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6796:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6807:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6792:3:89"},"nodeType":"YulFunctionCall","src":"6792:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6784:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6567:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6581:4:89","type":""}],"src":"6416:401:89"},{"body":{"nodeType":"YulBlock","src":"6996:179:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7013:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7024:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7006:6:89"},"nodeType":"YulFunctionCall","src":"7006:21:89"},"nodeType":"YulExpressionStatement","src":"7006:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7047:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7058:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7043:3:89"},"nodeType":"YulFunctionCall","src":"7043:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7063:2:89","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7036:6:89"},"nodeType":"YulFunctionCall","src":"7036:30:89"},"nodeType":"YulExpressionStatement","src":"7036:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7086:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7097:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7082:3:89"},"nodeType":"YulFunctionCall","src":"7082:18:89"},{"hexValue":"4552433230566f7465733a207369676e61747572652065787069726564","kind":"string","nodeType":"YulLiteral","src":"7102:31:89","type":"","value":"ERC20Votes: signature expired"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7075:6:89"},"nodeType":"YulFunctionCall","src":"7075:59:89"},"nodeType":"YulExpressionStatement","src":"7075:59:89"},{"nodeType":"YulAssignment","src":"7143:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7155:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7166:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7151:3:89"},"nodeType":"YulFunctionCall","src":"7151:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7143:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_136d0f69bc85a5c125b5cc368e2880ebdb3c89d4d9828f6476431c386ea60257__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6973:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6987:4:89","type":""}],"src":"6822:353:89"},{"body":{"nodeType":"YulBlock","src":"7365:232:89","statements":[{"nodeType":"YulAssignment","src":"7375:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7387:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7398:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7383:3:89"},"nodeType":"YulFunctionCall","src":"7383:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7375:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7418:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"7429:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7411:6:89"},"nodeType":"YulFunctionCall","src":"7411:25:89"},"nodeType":"YulExpressionStatement","src":"7411:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7456:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7467:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7452:3:89"},"nodeType":"YulFunctionCall","src":"7452:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7476:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7492:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7497:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7488:3:89"},"nodeType":"YulFunctionCall","src":"7488:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"7501:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7484:3:89"},"nodeType":"YulFunctionCall","src":"7484:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7472:3:89"},"nodeType":"YulFunctionCall","src":"7472:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7445:6:89"},"nodeType":"YulFunctionCall","src":"7445:60:89"},"nodeType":"YulExpressionStatement","src":"7445:60:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7525:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7536:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7521:3:89"},"nodeType":"YulFunctionCall","src":"7521:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"7541:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7514:6:89"},"nodeType":"YulFunctionCall","src":"7514:34:89"},"nodeType":"YulExpressionStatement","src":"7514:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7568:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7579:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7564:3:89"},"nodeType":"YulFunctionCall","src":"7564:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"7584:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7557:6:89"},"nodeType":"YulFunctionCall","src":"7557:34:89"},"nodeType":"YulExpressionStatement","src":"7557:34:89"}]},"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":"7310:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7321:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7329:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7337:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7345:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7356:4:89","type":""}],"src":"7180:417:89"},{"body":{"nodeType":"YulBlock","src":"7776:175:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7793:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7804:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7786:6:89"},"nodeType":"YulFunctionCall","src":"7786:21:89"},"nodeType":"YulExpressionStatement","src":"7786:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7827:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7838:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7823:3:89"},"nodeType":"YulFunctionCall","src":"7823:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7843:2:89","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7816:6:89"},"nodeType":"YulFunctionCall","src":"7816:30:89"},"nodeType":"YulExpressionStatement","src":"7816:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7866:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7877:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7862:3:89"},"nodeType":"YulFunctionCall","src":"7862:18:89"},{"hexValue":"4552433230566f7465733a20696e76616c6964206e6f6e6365","kind":"string","nodeType":"YulLiteral","src":"7882:27:89","type":"","value":"ERC20Votes: invalid nonce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7855:6:89"},"nodeType":"YulFunctionCall","src":"7855:55:89"},"nodeType":"YulExpressionStatement","src":"7855:55:89"},{"nodeType":"YulAssignment","src":"7919:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7931:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7942:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7927:3:89"},"nodeType":"YulFunctionCall","src":"7927:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7919:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1a23b43d95073d55a7380117ca03cace60cd22fee15d5cb140d51e46236e6872__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7753:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7767:4:89","type":""}],"src":"7602:349:89"},{"body":{"nodeType":"YulBlock","src":"8130:179:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8147:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8158:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8140:6:89"},"nodeType":"YulFunctionCall","src":"8140:21:89"},"nodeType":"YulExpressionStatement","src":"8140:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8181:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8192:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8177:3:89"},"nodeType":"YulFunctionCall","src":"8177:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8197:2:89","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8170:6:89"},"nodeType":"YulFunctionCall","src":"8170:30:89"},"nodeType":"YulExpressionStatement","src":"8170:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8231:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8216:3:89"},"nodeType":"YulFunctionCall","src":"8216:18:89"},{"hexValue":"45524332305065726d69743a206578706972656420646561646c696e65","kind":"string","nodeType":"YulLiteral","src":"8236:31:89","type":"","value":"ERC20Permit: expired deadline"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8209:6:89"},"nodeType":"YulFunctionCall","src":"8209:59:89"},"nodeType":"YulExpressionStatement","src":"8209:59:89"},{"nodeType":"YulAssignment","src":"8277:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8289:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8300:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8285:3:89"},"nodeType":"YulFunctionCall","src":"8285:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8277:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_3e89525a63fb9c966b61cf8f5305156de8420bc773a2b60828a2f32c3c5797bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8107:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8121:4:89","type":""}],"src":"7956:353:89"},{"body":{"nodeType":"YulBlock","src":"8555:350:89","statements":[{"nodeType":"YulAssignment","src":"8565:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8577:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8588:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8573:3:89"},"nodeType":"YulFunctionCall","src":"8573:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8565:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8608:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"8619:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8601:6:89"},"nodeType":"YulFunctionCall","src":"8601:25:89"},"nodeType":"YulExpressionStatement","src":"8601:25:89"},{"nodeType":"YulVariableDeclaration","src":"8635:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8653:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8658:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8649:3:89"},"nodeType":"YulFunctionCall","src":"8649:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"8662:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8645:3:89"},"nodeType":"YulFunctionCall","src":"8645:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8639:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8684:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8695:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8680:3:89"},"nodeType":"YulFunctionCall","src":"8680:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8704:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8712:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8700:3:89"},"nodeType":"YulFunctionCall","src":"8700:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8673:6:89"},"nodeType":"YulFunctionCall","src":"8673:43:89"},"nodeType":"YulExpressionStatement","src":"8673:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8736:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8747:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8732:3:89"},"nodeType":"YulFunctionCall","src":"8732:18:89"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8756:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8764:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8752:3:89"},"nodeType":"YulFunctionCall","src":"8752:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8725:6:89"},"nodeType":"YulFunctionCall","src":"8725:43:89"},"nodeType":"YulExpressionStatement","src":"8725:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8788:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8799:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8784:3:89"},"nodeType":"YulFunctionCall","src":"8784:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"8804:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8777:6:89"},"nodeType":"YulFunctionCall","src":"8777:34:89"},"nodeType":"YulExpressionStatement","src":"8777:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8831:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8842:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8827:3:89"},"nodeType":"YulFunctionCall","src":"8827:19:89"},{"name":"value4","nodeType":"YulIdentifier","src":"8848:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8820:6:89"},"nodeType":"YulFunctionCall","src":"8820:35:89"},"nodeType":"YulExpressionStatement","src":"8820:35:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8875:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8886:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8871:3:89"},"nodeType":"YulFunctionCall","src":"8871:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"8892:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8864:6:89"},"nodeType":"YulFunctionCall","src":"8864:35:89"},"nodeType":"YulExpressionStatement","src":"8864:35:89"}]},"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":"8484:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8495:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8503:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8511:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8519:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8527:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8535:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8546:4:89","type":""}],"src":"8314:591:89"},{"body":{"nodeType":"YulBlock","src":"9084:180:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9101:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9112:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9094:6:89"},"nodeType":"YulFunctionCall","src":"9094:21:89"},"nodeType":"YulExpressionStatement","src":"9094:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9135:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9146:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9131:3:89"},"nodeType":"YulFunctionCall","src":"9131:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9151:2:89","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9124:6:89"},"nodeType":"YulFunctionCall","src":"9124:30:89"},"nodeType":"YulExpressionStatement","src":"9124:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9174:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9185:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9170:3:89"},"nodeType":"YulFunctionCall","src":"9170:18:89"},{"hexValue":"45524332305065726d69743a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"9190:32:89","type":"","value":"ERC20Permit: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9163:6:89"},"nodeType":"YulFunctionCall","src":"9163:60:89"},"nodeType":"YulExpressionStatement","src":"9163:60:89"},{"nodeType":"YulAssignment","src":"9232:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9244:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9255:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9240:3:89"},"nodeType":"YulFunctionCall","src":"9240:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9232:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_94ca1ab58dfda790a1782ffbb0c0a140ec51d4148dbeecc6c39e37b25ff4b124__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9061:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9075:4:89","type":""}],"src":"8910:354:89"},{"body":{"nodeType":"YulBlock","src":"9443:238:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9460:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9471:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9453:6:89"},"nodeType":"YulFunctionCall","src":"9453:21:89"},"nodeType":"YulExpressionStatement","src":"9453:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9494:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9505:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9490:3:89"},"nodeType":"YulFunctionCall","src":"9490:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9510:2:89","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9483:6:89"},"nodeType":"YulFunctionCall","src":"9483:30:89"},"nodeType":"YulExpressionStatement","src":"9483:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9533:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9544:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9529:3:89"},"nodeType":"YulFunctionCall","src":"9529:18:89"},{"hexValue":"4552433230566f7465733a20746f74616c20737570706c79207269736b73206f","kind":"string","nodeType":"YulLiteral","src":"9549:34:89","type":"","value":"ERC20Votes: total supply risks o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9522:6:89"},"nodeType":"YulFunctionCall","src":"9522:62:89"},"nodeType":"YulExpressionStatement","src":"9522:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9604:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9615:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9600:3:89"},"nodeType":"YulFunctionCall","src":"9600:18:89"},{"hexValue":"766572666c6f77696e6720766f746573","kind":"string","nodeType":"YulLiteral","src":"9620:18:89","type":"","value":"verflowing votes"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9593:6:89"},"nodeType":"YulFunctionCall","src":"9593:46:89"},"nodeType":"YulExpressionStatement","src":"9593:46:89"},{"nodeType":"YulAssignment","src":"9648:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9660:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9671:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9656:3:89"},"nodeType":"YulFunctionCall","src":"9656:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9648:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_97859f657b3d95198b68f29ae96ee966779795bec3ef1e76700d2d39fefd7699__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9420:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9434:4:89","type":""}],"src":"9269:412:89"},{"body":{"nodeType":"YulBlock","src":"9860:181:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9877:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9888:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9870:6:89"},"nodeType":"YulFunctionCall","src":"9870:21:89"},"nodeType":"YulExpressionStatement","src":"9870:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9911:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9922:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9907:3:89"},"nodeType":"YulFunctionCall","src":"9907:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9927:2:89","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9900:6:89"},"nodeType":"YulFunctionCall","src":"9900:30:89"},"nodeType":"YulExpressionStatement","src":"9900:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9950:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9961:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9946:3:89"},"nodeType":"YulFunctionCall","src":"9946:18:89"},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"9966:33:89","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9939:6:89"},"nodeType":"YulFunctionCall","src":"9939:61:89"},"nodeType":"YulExpressionStatement","src":"9939:61:89"},{"nodeType":"YulAssignment","src":"10009:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10021:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10032:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10017:3:89"},"nodeType":"YulFunctionCall","src":"10017:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10009:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9837:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9851:4:89","type":""}],"src":"9686:355:89"},{"body":{"nodeType":"YulBlock","src":"10220:229:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10237:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10248:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10230:6:89"},"nodeType":"YulFunctionCall","src":"10230:21:89"},"nodeType":"YulExpressionStatement","src":"10230:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10271:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10282:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10267:3:89"},"nodeType":"YulFunctionCall","src":"10267:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10287:2:89","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10260:6:89"},"nodeType":"YulFunctionCall","src":"10260:30:89"},"nodeType":"YulExpressionStatement","src":"10260:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10310:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10321:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10306:3:89"},"nodeType":"YulFunctionCall","src":"10306:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2032","kind":"string","nodeType":"YulLiteral","src":"10326:34:89","type":"","value":"SafeCast: value doesn't fit in 2"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10299:6:89"},"nodeType":"YulFunctionCall","src":"10299:62:89"},"nodeType":"YulExpressionStatement","src":"10299:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10381:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10392:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10377:3:89"},"nodeType":"YulFunctionCall","src":"10377:18:89"},{"hexValue":"32342062697473","kind":"string","nodeType":"YulLiteral","src":"10397:9:89","type":"","value":"24 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10370:6:89"},"nodeType":"YulFunctionCall","src":"10370:37:89"},"nodeType":"YulExpressionStatement","src":"10370:37:89"},{"nodeType":"YulAssignment","src":"10416:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10428:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10439:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10424:3:89"},"nodeType":"YulFunctionCall","src":"10424:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10416:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d2acf551b2466898443b9bc3a403a4d86037386bc5a8960c1bbb0f204e69b79__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10197:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10211:4:89","type":""}],"src":"10046:403:89"},{"body":{"nodeType":"YulBlock","src":"10628:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10645:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10656:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10638:6:89"},"nodeType":"YulFunctionCall","src":"10638:21:89"},"nodeType":"YulExpressionStatement","src":"10638:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10679:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10690:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10675:3:89"},"nodeType":"YulFunctionCall","src":"10675:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10695:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10668:6:89"},"nodeType":"YulFunctionCall","src":"10668:30:89"},"nodeType":"YulExpressionStatement","src":"10668:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10718:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10729:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10714:3:89"},"nodeType":"YulFunctionCall","src":"10714:18:89"},{"hexValue":"53616665436173743a2076616c756520646f65736e27742066697420696e2033","kind":"string","nodeType":"YulLiteral","src":"10734:34:89","type":"","value":"SafeCast: value doesn't fit in 3"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10707:6:89"},"nodeType":"YulFunctionCall","src":"10707:62:89"},"nodeType":"YulExpressionStatement","src":"10707:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10789:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10800:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10785:3:89"},"nodeType":"YulFunctionCall","src":"10785:18:89"},{"hexValue":"322062697473","kind":"string","nodeType":"YulLiteral","src":"10805:8:89","type":"","value":"2 bits"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10778:6:89"},"nodeType":"YulFunctionCall","src":"10778:36:89"},"nodeType":"YulExpressionStatement","src":"10778:36:89"},{"nodeType":"YulAssignment","src":"10823:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10835:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10846:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10831:3:89"},"nodeType":"YulFunctionCall","src":"10831:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10823:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c907489dafcfb622d3b83f2657a14d6da2f59e0de3116af0d6a80554c1a7cb19__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10605:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10619:4:89","type":""}],"src":"10454:402:89"},{"body":{"nodeType":"YulBlock","src":"11035:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11052:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11063:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11045:6:89"},"nodeType":"YulFunctionCall","src":"11045:21:89"},"nodeType":"YulExpressionStatement","src":"11045:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11086:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11097:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11082:3:89"},"nodeType":"YulFunctionCall","src":"11082:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11102:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11075:6:89"},"nodeType":"YulFunctionCall","src":"11075:30:89"},"nodeType":"YulExpressionStatement","src":"11075:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11136:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11121:3:89"},"nodeType":"YulFunctionCall","src":"11121:18:89"},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"11141:34:89","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11114:6:89"},"nodeType":"YulFunctionCall","src":"11114:62:89"},"nodeType":"YulExpressionStatement","src":"11114:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11196:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11207:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11192:3:89"},"nodeType":"YulFunctionCall","src":"11192:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"11212:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11185:6:89"},"nodeType":"YulFunctionCall","src":"11185:34:89"},"nodeType":"YulExpressionStatement","src":"11185:34:89"},{"nodeType":"YulAssignment","src":"11228:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11240:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11251:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11236:3:89"},"nodeType":"YulFunctionCall","src":"11236:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11228:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11012:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11026:4:89","type":""}],"src":"10861:400:89"},{"body":{"nodeType":"YulBlock","src":"11440:224:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11457:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11468:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11450:6:89"},"nodeType":"YulFunctionCall","src":"11450:21:89"},"nodeType":"YulExpressionStatement","src":"11450:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11491:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11502:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11487:3:89"},"nodeType":"YulFunctionCall","src":"11487:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11507:2:89","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11480:6:89"},"nodeType":"YulFunctionCall","src":"11480:30:89"},"nodeType":"YulExpressionStatement","src":"11480:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11530:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11541:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11526:3:89"},"nodeType":"YulFunctionCall","src":"11526:18:89"},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f206164647265","kind":"string","nodeType":"YulLiteral","src":"11546:34:89","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11519:6:89"},"nodeType":"YulFunctionCall","src":"11519:62:89"},"nodeType":"YulExpressionStatement","src":"11519:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11601:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11612:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11597:3:89"},"nodeType":"YulFunctionCall","src":"11597:18:89"},{"hexValue":"7373","kind":"string","nodeType":"YulLiteral","src":"11617:4:89","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11590:6:89"},"nodeType":"YulFunctionCall","src":"11590:32:89"},"nodeType":"YulExpressionStatement","src":"11590:32:89"},{"nodeType":"YulAssignment","src":"11631:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11643:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11654:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11639:3:89"},"nodeType":"YulFunctionCall","src":"11639:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11631:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11417:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11431:4:89","type":""}],"src":"11266:398:89"},{"body":{"nodeType":"YulBlock","src":"11843:179:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11860:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11871:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11853:6:89"},"nodeType":"YulFunctionCall","src":"11853:21:89"},"nodeType":"YulExpressionStatement","src":"11853:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11894:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11905:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11890:3:89"},"nodeType":"YulFunctionCall","src":"11890:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11910:2:89","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11883:6:89"},"nodeType":"YulFunctionCall","src":"11883:30:89"},"nodeType":"YulExpressionStatement","src":"11883:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11933:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11944:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11929:3:89"},"nodeType":"YulFunctionCall","src":"11929:18:89"},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","kind":"string","nodeType":"YulLiteral","src":"11949:31:89","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11922:6:89"},"nodeType":"YulFunctionCall","src":"11922:59:89"},"nodeType":"YulExpressionStatement","src":"11922:59:89"},{"nodeType":"YulAssignment","src":"11990:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12002:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12013:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11998:3:89"},"nodeType":"YulFunctionCall","src":"11998:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11990:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11820:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11834:4:89","type":""}],"src":"11669:353:89"},{"body":{"nodeType":"YulBlock","src":"12201:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12218:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12229:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12211:6:89"},"nodeType":"YulFunctionCall","src":"12211:21:89"},"nodeType":"YulExpressionStatement","src":"12211:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12252:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12263:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12248:3:89"},"nodeType":"YulFunctionCall","src":"12248:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12268:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12241:6:89"},"nodeType":"YulFunctionCall","src":"12241:30:89"},"nodeType":"YulExpressionStatement","src":"12241:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12291:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12302:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12287:3:89"},"nodeType":"YulFunctionCall","src":"12287:18:89"},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f206164","kind":"string","nodeType":"YulLiteral","src":"12307:34:89","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12280:6:89"},"nodeType":"YulFunctionCall","src":"12280:62:89"},"nodeType":"YulExpressionStatement","src":"12280:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12362:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12373:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12358:3:89"},"nodeType":"YulFunctionCall","src":"12358:18:89"},{"hexValue":"6472657373","kind":"string","nodeType":"YulLiteral","src":"12378:7:89","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12351:6:89"},"nodeType":"YulFunctionCall","src":"12351:35:89"},"nodeType":"YulExpressionStatement","src":"12351:35:89"},{"nodeType":"YulAssignment","src":"12395:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12407:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12418:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12403:3:89"},"nodeType":"YulFunctionCall","src":"12403:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12395:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12178:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12192:4:89","type":""}],"src":"12027:401:89"},{"body":{"nodeType":"YulBlock","src":"12607:225:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12624:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12635:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12617:6:89"},"nodeType":"YulFunctionCall","src":"12617:21:89"},"nodeType":"YulExpressionStatement","src":"12617:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12658:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12669:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12654:3:89"},"nodeType":"YulFunctionCall","src":"12654:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12674:2:89","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12647:6:89"},"nodeType":"YulFunctionCall","src":"12647:30:89"},"nodeType":"YulExpressionStatement","src":"12647:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12697:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12708:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12693:3:89"},"nodeType":"YulFunctionCall","src":"12693:18:89"},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472","kind":"string","nodeType":"YulLiteral","src":"12713:34:89","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12686:6:89"},"nodeType":"YulFunctionCall","src":"12686:62:89"},"nodeType":"YulExpressionStatement","src":"12686:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12768:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12779:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12764:3:89"},"nodeType":"YulFunctionCall","src":"12764:18:89"},{"hexValue":"657373","kind":"string","nodeType":"YulLiteral","src":"12784:5:89","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12757:6:89"},"nodeType":"YulFunctionCall","src":"12757:33:89"},"nodeType":"YulExpressionStatement","src":"12757:33:89"},{"nodeType":"YulAssignment","src":"12799:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12811:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12822:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12807:3:89"},"nodeType":"YulFunctionCall","src":"12807:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12799:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12584:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12598:4:89","type":""}],"src":"12433:399:89"},{"body":{"nodeType":"YulBlock","src":"13011:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13028:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13039:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13021:6:89"},"nodeType":"YulFunctionCall","src":"13021:21:89"},"nodeType":"YulExpressionStatement","src":"13021:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13062:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13073:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13058:3:89"},"nodeType":"YulFunctionCall","src":"13058:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"13078:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13051:6:89"},"nodeType":"YulFunctionCall","src":"13051:30:89"},"nodeType":"YulExpressionStatement","src":"13051:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13101:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13112:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13097:3:89"},"nodeType":"YulFunctionCall","src":"13097:18:89"},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062","kind":"string","nodeType":"YulLiteral","src":"13117:34:89","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13090:6:89"},"nodeType":"YulFunctionCall","src":"13090:62:89"},"nodeType":"YulExpressionStatement","src":"13090:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13172:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13183:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13168:3:89"},"nodeType":"YulFunctionCall","src":"13168:18:89"},{"hexValue":"616c616e6365","kind":"string","nodeType":"YulLiteral","src":"13188:8:89","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13161:6:89"},"nodeType":"YulFunctionCall","src":"13161:36:89"},"nodeType":"YulExpressionStatement","src":"13161:36:89"},{"nodeType":"YulAssignment","src":"13206:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13218:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13229:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13214:3:89"},"nodeType":"YulFunctionCall","src":"13214:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13206:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12988:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13002:4:89","type":""}],"src":"12837:402:89"},{"body":{"nodeType":"YulBlock","src":"13373:119:89","statements":[{"nodeType":"YulAssignment","src":"13383:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13395:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13406:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13391:3:89"},"nodeType":"YulFunctionCall","src":"13391:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13383:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13425:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"13436:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13418:6:89"},"nodeType":"YulFunctionCall","src":"13418:25:89"},"nodeType":"YulExpressionStatement","src":"13418:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13463:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13474:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:89"},"nodeType":"YulFunctionCall","src":"13459:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"13479:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13452:6:89"},"nodeType":"YulFunctionCall","src":"13452:34:89"},"nodeType":"YulExpressionStatement","src":"13452:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13334:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13345:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13353:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13364:4:89","type":""}],"src":"13244:248:89"},{"body":{"nodeType":"YulBlock","src":"13710:276:89","statements":[{"nodeType":"YulAssignment","src":"13720:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13732:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13743:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13728:3:89"},"nodeType":"YulFunctionCall","src":"13728:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13720:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13763:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"13774:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13756:6:89"},"nodeType":"YulFunctionCall","src":"13756:25:89"},"nodeType":"YulExpressionStatement","src":"13756:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13801:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13812:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13797:3:89"},"nodeType":"YulFunctionCall","src":"13797:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"13817:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13790:6:89"},"nodeType":"YulFunctionCall","src":"13790:34:89"},"nodeType":"YulExpressionStatement","src":"13790:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13844:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13855:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13840:3:89"},"nodeType":"YulFunctionCall","src":"13840:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"13860:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13833:6:89"},"nodeType":"YulFunctionCall","src":"13833:34:89"},"nodeType":"YulExpressionStatement","src":"13833:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13887:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13898:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13883:3:89"},"nodeType":"YulFunctionCall","src":"13883:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"13903:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13876:6:89"},"nodeType":"YulFunctionCall","src":"13876:34:89"},"nodeType":"YulExpressionStatement","src":"13876:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13930:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13941:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13926:3:89"},"nodeType":"YulFunctionCall","src":"13926:19:89"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13951:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13967:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13972:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13963:3:89"},"nodeType":"YulFunctionCall","src":"13963:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"13976:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13959:3:89"},"nodeType":"YulFunctionCall","src":"13959:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13947:3:89"},"nodeType":"YulFunctionCall","src":"13947:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13919:6:89"},"nodeType":"YulFunctionCall","src":"13919:61:89"},"nodeType":"YulExpressionStatement","src":"13919:61:89"}]},"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":"13647:9:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13658:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13666:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13674:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13682:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13690:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13701:4:89","type":""}],"src":"13497:489:89"},{"body":{"nodeType":"YulBlock","src":"14023:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14040:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14047:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14052:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14043:3:89"},"nodeType":"YulFunctionCall","src":"14043:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14033:6:89"},"nodeType":"YulFunctionCall","src":"14033:31:89"},"nodeType":"YulExpressionStatement","src":"14033:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14080:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14083:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14073:6:89"},"nodeType":"YulFunctionCall","src":"14073:15:89"},"nodeType":"YulExpressionStatement","src":"14073:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14104:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14107:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14097:6:89"},"nodeType":"YulFunctionCall","src":"14097:15:89"},"nodeType":"YulExpressionStatement","src":"14097:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"13991:127:89"},{"body":{"nodeType":"YulBlock","src":"14169:171:89","statements":[{"body":{"nodeType":"YulBlock","src":"14200:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14221:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14228:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14233:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14224:3:89"},"nodeType":"YulFunctionCall","src":"14224:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14214:6:89"},"nodeType":"YulFunctionCall","src":"14214:31:89"},"nodeType":"YulExpressionStatement","src":"14214:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14265:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14268:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14258:6:89"},"nodeType":"YulFunctionCall","src":"14258:15:89"},"nodeType":"YulExpressionStatement","src":"14258:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14293:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14296:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14286:6:89"},"nodeType":"YulFunctionCall","src":"14286:15:89"},"nodeType":"YulExpressionStatement","src":"14286:15:89"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14189:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14182:6:89"},"nodeType":"YulFunctionCall","src":"14182:9:89"},"nodeType":"YulIf","src":"14179:132:89"},{"nodeType":"YulAssignment","src":"14320:14:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14329:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"14332:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14325:3:89"},"nodeType":"YulFunctionCall","src":"14325:9:89"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"14320:1:89"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14154:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"14157:1:89","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14163:1:89","type":""}],"src":"14123:217:89"},{"body":{"nodeType":"YulBlock","src":"14593:144:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14610:3:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14619:3:89","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"14624:4:89","type":"","value":"6401"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14615:3:89"},"nodeType":"YulFunctionCall","src":"14615:14:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14603:6:89"},"nodeType":"YulFunctionCall","src":"14603:27:89"},"nodeType":"YulExpressionStatement","src":"14603:27:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14650:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"14655:1:89","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14646:3:89"},"nodeType":"YulFunctionCall","src":"14646:11:89"},{"name":"value0","nodeType":"YulIdentifier","src":"14659:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14639:6:89"},"nodeType":"YulFunctionCall","src":"14639:27:89"},"nodeType":"YulExpressionStatement","src":"14639:27:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14686:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"14691:2:89","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14682:3:89"},"nodeType":"YulFunctionCall","src":"14682:12:89"},{"name":"value1","nodeType":"YulIdentifier","src":"14696:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14675:6:89"},"nodeType":"YulFunctionCall","src":"14675:28:89"},"nodeType":"YulExpressionStatement","src":"14675:28:89"},{"nodeType":"YulAssignment","src":"14712:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14723:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"14728:2:89","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14719:3:89"},"nodeType":"YulFunctionCall","src":"14719:12:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14712:3:89"}]}]},"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":"14561:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14566:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14574:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14585:3:89","type":""}],"src":"14345:392:89"},{"body":{"nodeType":"YulBlock","src":"14923:217:89","statements":[{"nodeType":"YulAssignment","src":"14933:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14945:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14956:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14941:3:89"},"nodeType":"YulFunctionCall","src":"14941:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14933:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14976:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"14987:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14969:6:89"},"nodeType":"YulFunctionCall","src":"14969:25:89"},"nodeType":"YulExpressionStatement","src":"14969:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15014:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15025:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15010:3:89"},"nodeType":"YulFunctionCall","src":"15010:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15034:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"15042:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15030:3:89"},"nodeType":"YulFunctionCall","src":"15030:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15003:6:89"},"nodeType":"YulFunctionCall","src":"15003:45:89"},"nodeType":"YulExpressionStatement","src":"15003:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15068:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15079:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15064:3:89"},"nodeType":"YulFunctionCall","src":"15064:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"15084:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15057:6:89"},"nodeType":"YulFunctionCall","src":"15057:34:89"},"nodeType":"YulExpressionStatement","src":"15057:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15111:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15122:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15107:3:89"},"nodeType":"YulFunctionCall","src":"15107:18:89"},{"name":"value3","nodeType":"YulIdentifier","src":"15127:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15100:6:89"},"nodeType":"YulFunctionCall","src":"15100:34:89"},"nodeType":"YulExpressionStatement","src":"15100:34:89"}]},"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":"14868:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14879:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14887:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14895:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14903:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14914:4:89","type":""}],"src":"14742:398:89"},{"body":{"nodeType":"YulBlock","src":"15177:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15194:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15201:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15206:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15197:3:89"},"nodeType":"YulFunctionCall","src":"15197:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15187:6:89"},"nodeType":"YulFunctionCall","src":"15187:31:89"},"nodeType":"YulExpressionStatement","src":"15187:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15234:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15237:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15227:6:89"},"nodeType":"YulFunctionCall","src":"15227:15:89"},"nodeType":"YulExpressionStatement","src":"15227:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15258:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15261:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15251:6:89"},"nodeType":"YulFunctionCall","src":"15251:15:89"},"nodeType":"YulExpressionStatement","src":"15251:15:89"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"15145:127:89"},{"body":{"nodeType":"YulBlock","src":"15451:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15468:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15479:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15461:6:89"},"nodeType":"YulFunctionCall","src":"15461:21:89"},"nodeType":"YulExpressionStatement","src":"15461:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15502:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15513:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15498:3:89"},"nodeType":"YulFunctionCall","src":"15498:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15518:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15491:6:89"},"nodeType":"YulFunctionCall","src":"15491:30:89"},"nodeType":"YulExpressionStatement","src":"15491:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15541:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15552:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15537:3:89"},"nodeType":"YulFunctionCall","src":"15537:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","kind":"string","nodeType":"YulLiteral","src":"15557:26:89","type":"","value":"ECDSA: invalid signature"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15530:6:89"},"nodeType":"YulFunctionCall","src":"15530:54:89"},"nodeType":"YulExpressionStatement","src":"15530:54:89"},{"nodeType":"YulAssignment","src":"15593:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15605:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15616:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15601:3:89"},"nodeType":"YulFunctionCall","src":"15601:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15593:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15428:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15442:4:89","type":""}],"src":"15277:348:89"},{"body":{"nodeType":"YulBlock","src":"15804:181:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15821:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15832:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15814:6:89"},"nodeType":"YulFunctionCall","src":"15814:21:89"},"nodeType":"YulExpressionStatement","src":"15814:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15855:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15866:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15851:3:89"},"nodeType":"YulFunctionCall","src":"15851:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15871:2:89","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15844:6:89"},"nodeType":"YulFunctionCall","src":"15844:30:89"},"nodeType":"YulExpressionStatement","src":"15844:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15894:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15905:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15890:3:89"},"nodeType":"YulFunctionCall","src":"15890:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","kind":"string","nodeType":"YulLiteral","src":"15910:33:89","type":"","value":"ECDSA: invalid signature length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15883:6:89"},"nodeType":"YulFunctionCall","src":"15883:61:89"},"nodeType":"YulExpressionStatement","src":"15883:61:89"},{"nodeType":"YulAssignment","src":"15953:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15965:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15976:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15961:3:89"},"nodeType":"YulFunctionCall","src":"15961:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15953:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15781:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15795:4:89","type":""}],"src":"15630:355:89"},{"body":{"nodeType":"YulBlock","src":"16164:224:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16181:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16192:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16174:6:89"},"nodeType":"YulFunctionCall","src":"16174:21:89"},"nodeType":"YulExpressionStatement","src":"16174:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16215:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16226:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16211:3:89"},"nodeType":"YulFunctionCall","src":"16211:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"16231:2:89","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16204:6:89"},"nodeType":"YulFunctionCall","src":"16204:30:89"},"nodeType":"YulExpressionStatement","src":"16204:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16254:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16265:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16250:3:89"},"nodeType":"YulFunctionCall","src":"16250:18:89"},{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c","kind":"string","nodeType":"YulLiteral","src":"16270:34:89","type":"","value":"ECDSA: invalid signature 's' val"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16243:6:89"},"nodeType":"YulFunctionCall","src":"16243:62:89"},"nodeType":"YulExpressionStatement","src":"16243:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16325:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16336:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16321:3:89"},"nodeType":"YulFunctionCall","src":"16321:18:89"},{"hexValue":"7565","kind":"string","nodeType":"YulLiteral","src":"16341:4:89","type":"","value":"ue"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16314:6:89"},"nodeType":"YulFunctionCall","src":"16314:32:89"},"nodeType":"YulExpressionStatement","src":"16314:32:89"},{"nodeType":"YulAssignment","src":"16355:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16367:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16378:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16363:3:89"},"nodeType":"YulFunctionCall","src":"16363:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16355:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16141:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16155:4:89","type":""}],"src":"15990:398:89"},{"body":{"nodeType":"YulBlock","src":"16567:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16584:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16595:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16577:6:89"},"nodeType":"YulFunctionCall","src":"16577:21:89"},"nodeType":"YulExpressionStatement","src":"16577:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16618:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16629:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16614:3:89"},"nodeType":"YulFunctionCall","src":"16614:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"16634:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16607:6:89"},"nodeType":"YulFunctionCall","src":"16607:30:89"},"nodeType":"YulExpressionStatement","src":"16607:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16657:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16668:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16653:3:89"},"nodeType":"YulFunctionCall","src":"16653:18:89"},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f20616464726573","kind":"string","nodeType":"YulLiteral","src":"16673:34:89","type":"","value":"ERC20: burn from the zero addres"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16646:6:89"},"nodeType":"YulFunctionCall","src":"16646:62:89"},"nodeType":"YulExpressionStatement","src":"16646:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16728:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16739:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16724:3:89"},"nodeType":"YulFunctionCall","src":"16724:18:89"},{"hexValue":"73","kind":"string","nodeType":"YulLiteral","src":"16744:3:89","type":"","value":"s"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16717:6:89"},"nodeType":"YulFunctionCall","src":"16717:31:89"},"nodeType":"YulExpressionStatement","src":"16717:31:89"},{"nodeType":"YulAssignment","src":"16757:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16769:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16780:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16765:3:89"},"nodeType":"YulFunctionCall","src":"16765:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16757:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16544:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16558:4:89","type":""}],"src":"16393:397:89"},{"body":{"nodeType":"YulBlock","src":"16969:224:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16986:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16997:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16979:6:89"},"nodeType":"YulFunctionCall","src":"16979:21:89"},"nodeType":"YulExpressionStatement","src":"16979:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17020:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17031:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17016:3:89"},"nodeType":"YulFunctionCall","src":"17016:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17036:2:89","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17009:6:89"},"nodeType":"YulFunctionCall","src":"17009:30:89"},"nodeType":"YulExpressionStatement","src":"17009:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17059:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17070:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17055:3:89"},"nodeType":"YulFunctionCall","src":"17055:18:89"},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e","kind":"string","nodeType":"YulLiteral","src":"17075:34:89","type":"","value":"ERC20: burn amount exceeds balan"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17048:6:89"},"nodeType":"YulFunctionCall","src":"17048:62:89"},"nodeType":"YulExpressionStatement","src":"17048:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17130:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17141:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17126:3:89"},"nodeType":"YulFunctionCall","src":"17126:18:89"},{"hexValue":"6365","kind":"string","nodeType":"YulLiteral","src":"17146:4:89","type":"","value":"ce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17119:6:89"},"nodeType":"YulFunctionCall","src":"17119:32:89"},"nodeType":"YulExpressionStatement","src":"17119:32:89"},{"nodeType":"YulAssignment","src":"17160:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17172:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17183:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17168:3:89"},"nodeType":"YulFunctionCall","src":"17168:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17160:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16946:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16960:4:89","type":""}],"src":"16795:398:89"}]},"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        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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_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_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, sub(shl(160, 1), 1)))\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_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_$10071_memory_ptr__to_t_struct$_Checkpoint_$10071_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)), sub(shl(224, 1), 1)))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function 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        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\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        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\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_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, sub(shl(160, 1), 1)))\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 := sub(shl(160, 1), 1)\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_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_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 panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\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, shl(224, 0x4e487b71))\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, shl(240, 6401))\n        mstore(add(pos, 2), value0)\n        mstore(add(pos, 34), value1)\n        end := add(pos, 66)\n    }\n    function abi_encode_tuple_t_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, shl(224, 0x4e487b71))\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_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":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"15154":[{"length":32,"start":4415}],"15156":[{"length":32,"start":4373}],"15158":[{"length":32,"start":4331}],"15160":[{"length":32,"start":4498}],"15162":[{"length":32,"start":4535}],"15164":[{"length":32,"start":4456}],"21019":[{"length":32,"start":882},{"length":32,"start":1448}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a457c2d711610097578063c3cda52011610071578063c3cda520146103a7578063d505accf146103ba578063dd62ed3e146103cd578063f1127ed8146103e057600080fd5b8063a457c2d71461035a578063a4c52b861461036d578063a9059cbb1461039457600080fd5b806370a08231146102dd57806379cc6790146103065780637ecebe00146103195780638e539e8c1461032c57806395d89b411461033f5780639ab24eb01461034757600080fd5b8063395093511161014b57806342966c681161012557806342966c681461024b578063587cde1e1461025e5780635c19a95c146102a25780636fcfff45146102b557600080fd5b806339509351146102105780633a46b1a81461022357806340c10f191461023657600080fd5b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101d457806323b872dd146101e6578063313ce567146101f95780633644e51514610208575b600080fd5b61019b61041d565b6040516101a89190611bcf565b60405180910390f35b6101c46101bf366004611c39565b6104af565b60405190151581526020016101a8565b6002545b6040519081526020016101a8565b6101c46101f4366004611c63565b6104c9565b604051601281526020016101a8565b6101d86104ed565b6101c461021e366004611c39565b6104fc565b6101d8610231366004611c39565b61051e565b610249610244366004611c39565b61059d565b005b610249610259366004611c9f565b6105f4565b61028a61026c366004611cb8565b6001600160a01b039081166000908152600760205260409020541690565b6040516001600160a01b0390911681526020016101a8565b6102496102b0366004611cb8565b610601565b6102c86102c3366004611cb8565b61060b565b60405163ffffffff90911681526020016101a8565b6101d86102eb366004611cb8565b6001600160a01b031660009081526020819052604090205490565b610249610314366004611c39565b61062d565b6101d8610327366004611cb8565b610642565b6101d861033a366004611c9f565b610660565b61019b6106bc565b6101d8610355366004611cb8565b6106cb565b6101c4610368366004611c39565b610752565b61028a7f000000000000000000000000000000000000000000000000000000000000000081565b6101c46103a2366004611c39565b6107cd565b6102496103b5366004611ce4565b6107db565b6102496103c8366004611d3c565b610911565b6101d86103db366004611da6565b610a75565b6103f36103ee366004611dd9565b610aa0565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101a8565b60606003805461042c90611e19565b80601f016020809104026020016040519081016040528092919081815260200182805461045890611e19565b80156104a55780601f1061047a576101008083540402835291602001916104a5565b820191906000526020600020905b81548152906001019060200180831161048857829003601f168201915b5050505050905090565b6000336104bd818585610d9c565b60019150505b92915050565b6000336104d7858285610ec0565b6104e2858585610f34565b506001949350505050565b60006104f76110de565b905090565b6000336104bd81858561050f8383610a75565b6105199190611e63565b610d9c565b60004382106105745760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e65640060448201526064015b60405180910390fd5b6001600160a01b03831660009081526008602052604090206105969083611205565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105e6576040516313bd2e8360e31b815260040160405180910390fd5b6105f082826112fc565b5050565b6105fe3382611306565b50565b6105fe3382611310565b6001600160a01b0381166000908152600860205260408120546104c390610cf4565b610638823383610ec0565b6105f08282611306565b6001600160a01b0381166000908152600560205260408120546104c3565b60004382106106b15760405162461bcd60e51b815260206004820152601f60248201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604482015260640161056b565b6104c3600983611205565b60606004805461042c90611e19565b6001600160a01b038116600090815260086020526040812054801561073f576001600160a01b038316600090815260086020526040902061070d600183611e76565b8154811061071d5761071d611e89565b60009182526020909120015464010000000090046001600160e01b0316610742565b60005b6001600160e01b03169392505050565b600033816107608286610a75565b9050838110156107c05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161056b565b6104e28286868403610d9c565b6000336104bd818585610f34565b8342111561082b5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e61747572652065787069726564000000604482015260640161056b565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108a59061089d9060a00160405160208183030381529060405280519060200120611389565b8585856113d7565b90506108b0816113ff565b86146108fe5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604482015260640161056b565b6109088188611310565b50505050505050565b834211156109615760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161056b565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109908c6113ff565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109eb82611389565b905060006109fb828787876113d7565b9050896001600160a01b0316816001600160a01b031614610a5e5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161056b565b610a698a8a8a610d9c565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600860205260409020805463ffffffff8416908110610ae457610ae4611e89565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610b2e8282610bb4565b6002546001600160e01b031015610ba05760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b606482015260840161056b565b610bae6009610c7b83611427565b50505050565b6001600160a01b038216610c0a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161056b565b8060026000828254610c1c9190611e63565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105f06000838361157b565b60006105968284611e63565b60006001600160e01b03821115610cf05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161056b565b5090565b600063ffffffff821115610cf05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161056b565b6001600160a01b03838116600090815260076020526040808220548584168352912054610d8b92918216911683611586565b505050565b60006105968284611e76565b6001600160a01b038316610dfe5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161056b565b6001600160a01b038216610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161056b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ecc8484610a75565b90506000198114610bae5781811015610f275760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161056b565b610bae8484848403610d9c565b6001600160a01b038316610f985760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056b565b6001600160a01b038216610ffa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056b565b6001600160a01b038316600090815260208190526040902054818110156110725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161056b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610bae84848461157b565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561113757507f000000000000000000000000000000000000000000000000000000000000000046145b1561116157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b81546000908181600581111561125f576000611220846116c3565b61122a9085611e76565b600088815260209020909150869082015463ffffffff16111561124f5780915061125d565b61125a816001611e63565b92505b505b808210156112ac57600061127383836117ab565b600088815260209020909150869082015463ffffffff161115611298578091506112a6565b6112a3816001611e63565b92505b5061125f565b80156112e6576112cf866112c1600184611e76565b600091825260209091200190565b5464010000000090046001600160e01b03166112e9565b60005b6001600160e01b03169695505050505050565b6105f08282610b24565b6105f082826117c6565b6001600160a01b038281166000818152600760208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610bae828483611586565b60006104c36113966110de565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006113e8878787876117de565b915091506113f5816118a2565b5095945050505050565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b8254600090819081811561147457611444876112c1600185611e76565b60408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611489565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506114a984868863ffffffff16565b92506000821180156114c15750805163ffffffff1643145b15611506576114cf83610c87565b6114de886112c1600186611e76565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055611571565b86604051806040016040528061151b43610cf4565b63ffffffff16815260200161152f86610c87565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b610d8b838383610d59565b816001600160a01b0316836001600160a01b0316141580156115a85750600081115b15610d8b576001600160a01b03831615611636576001600160a01b038316600090815260086020526040812081906115e390610d9085611427565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161162b929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610d8b576001600160a01b0382166000908152600860205260408120819061166c90610c7b85611427565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516116b4929190918252602082015260400190565b60405180910390a25050505050565b6000816000036116d557506000919050565b600060016116e2846119ec565b901c6001901b905060018184816116fb576116fb611e9f565b048201901c9050600181848161171357611713611e9f565b048201901c9050600181848161172b5761172b611e9f565b048201901c9050600181848161174357611743611e9f565b048201901c9050600181848161175b5761175b611e9f565b048201901c9050600181848161177357611773611e9f565b048201901c9050600181848161178b5761178b611e9f565b048201901c9050610596818285816117a5576117a5611e9f565b04611a80565b60006117ba6002848418611eb5565b61059690848416611e63565b6117d08282611a96565b610bae6009610d9083611427565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118155750600090506003611899565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611869573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661189257600060019250925050611899565b9150600090505b94509492505050565b60008160048111156118b6576118b6611ed7565b036118be5750565b60018160048111156118d2576118d2611ed7565b0361191f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161056b565b600281600481111561193357611933611ed7565b036119805760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161056b565b600381600481111561199457611994611ed7565b036105fe5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161056b565b600080608083901c15611a0157608092831c92015b604083901c15611a1357604092831c92015b602083901c15611a2557602092831c92015b601083901c15611a3757601092831c92015b600883901c15611a4957600892831c92015b600483901c15611a5b57600492831c92015b600283901c15611a6d57600292831c92015b600183901c156104c35760010192915050565b6000818310611a8f5781610596565b5090919050565b6001600160a01b038216611af65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161056b565b6001600160a01b03821660009081526020819052604090205481811015611b6a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161056b565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d8b8360008461157b565b600060208083528351808285015260005b81811015611bfc57858101830151858201604001528201611be0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c3457600080fd5b919050565b60008060408385031215611c4c57600080fd5b611c5583611c1d565b946020939093013593505050565b600080600060608486031215611c7857600080fd5b611c8184611c1d565b9250611c8f60208501611c1d565b9150604084013590509250925092565b600060208284031215611cb157600080fd5b5035919050565b600060208284031215611cca57600080fd5b61059682611c1d565b803560ff81168114611c3457600080fd5b60008060008060008060c08789031215611cfd57600080fd5b611d0687611c1d565b95506020870135945060408701359350611d2260608801611cd3565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a031215611d5757600080fd5b611d6088611c1d565b9650611d6e60208901611c1d565b95506040880135945060608801359350611d8a60808901611cd3565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611db957600080fd5b611dc283611c1d565b9150611dd060208401611c1d565b90509250929050565b60008060408385031215611dec57600080fd5b611df583611c1d565b9150602083013563ffffffff81168114611e0e57600080fd5b809150509250929050565b600181811c90821680611e2d57607f821691505b60208210810361142157634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156104c3576104c3611e4d565b818103818111156104c3576104c3611e4d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082611ed257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea26469706673582212205750ee7e6c36936272ddc47e4edcc296b811102e932b7d22c09415b4f2479b7b64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x18E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC3CDA520 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC3CDA520 EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x3CD JUMPI DUP1 PUSH4 0xF1127ED8 EQ PUSH2 0x3E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x35A JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x8E539E8C EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x9AB24EB0 EQ PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0x587CDE1E EQ PUSH2 0x25E JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x6FCFFF45 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x39509351 EQ PUSH2 0x210 JUMPI DUP1 PUSH4 0x3A46B1A8 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x208 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19B PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A8 SWAP2 SWAP1 PUSH2 0x1BCF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C4 PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x4AF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x4C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x21E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x231 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST PUSH2 0x249 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x59D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x249 PUSH2 0x259 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C9F JUMP JUMPDEST PUSH2 0x5F4 JUMP JUMPDEST PUSH2 0x28A PUSH2 0x26C CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 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 0x1A8 JUMP JUMPDEST PUSH2 0x249 PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x601 JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x60B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1A8 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 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 0x249 PUSH2 0x314 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x62D JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x327 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x642 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x33A CALLDATASIZE PUSH1 0x4 PUSH2 0x1C9F JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x19B PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x355 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CB8 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x368 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x752 JUMP JUMPDEST PUSH2 0x28A PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1C4 PUSH2 0x3A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C39 JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST PUSH2 0x249 PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x7DB JUMP JUMPDEST PUSH2 0x249 PUSH2 0x3C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3C JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH2 0x1D8 PUSH2 0x3DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA6 JUMP JUMPDEST PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x3F3 PUSH2 0x3EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1DD9 JUMP JUMPDEST PUSH2 0xAA0 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 0x1A8 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x42C SWAP1 PUSH2 0x1E19 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 0x458 SWAP1 PUSH2 0x1E19 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4A5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x47A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x4A5 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 0x488 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 0x4BD DUP2 DUP6 DUP6 PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4D7 DUP6 DUP3 DUP6 PUSH2 0xEC0 JUMP JUMPDEST PUSH2 0x4E2 DUP6 DUP6 DUP6 PUSH2 0xF34 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F7 PUSH2 0x10DE JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4BD DUP2 DUP6 DUP6 PUSH2 0x50F DUP4 DUP4 PUSH2 0xA75 JUMP JUMPDEST PUSH2 0x519 SWAP2 SWAP1 PUSH2 0x1E63 JUMP JUMPDEST PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x574 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x596 SWAP1 DUP4 PUSH2 0x1205 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x5E6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x12FC JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5FE CALLER DUP3 PUSH2 0x1306 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FE CALLER DUP3 PUSH2 0x1310 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 0x4C3 SWAP1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0x638 DUP3 CALLER DUP4 PUSH2 0xEC0 JUMP JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x1306 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 0x4C3 JUMP JUMPDEST PUSH1 0x0 NUMBER DUP3 LT PUSH2 0x6B1 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 0x56B JUMP JUMPDEST PUSH2 0x4C3 PUSH1 0x9 DUP4 PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x42C SWAP1 PUSH2 0x1E19 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 0x73F 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 0x70D PUSH1 0x1 DUP4 PUSH2 0x1E76 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x71D JUMPI PUSH2 0x71D PUSH2 0x1E89 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 0x742 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x760 DUP3 DUP7 PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH2 0x4E2 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x4BD DUP2 DUP6 DUP6 PUSH2 0xF34 JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0x82B 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 0x56B 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 0x8A5 SWAP1 PUSH2 0x89D 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 0x1389 JUMP JUMPDEST DUP6 DUP6 DUP6 PUSH2 0x13D7 JUMP JUMPDEST SWAP1 POP PUSH2 0x8B0 DUP2 PUSH2 0x13FF JUMP JUMPDEST DUP7 EQ PUSH2 0x8FE 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 0x56B JUMP JUMPDEST PUSH2 0x908 DUP2 DUP9 PUSH2 0x1310 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP4 TIMESTAMP GT ISZERO PUSH2 0x961 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 0x56B JUMP JUMPDEST PUSH1 0x0 PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP9 DUP9 DUP9 PUSH2 0x990 DUP13 PUSH2 0x13FF 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 0x9EB DUP3 PUSH2 0x1389 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9FB DUP3 DUP8 DUP8 DUP8 PUSH2 0x13D7 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 0xA5E 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 0x56B JUMP JUMPDEST PUSH2 0xA69 DUP11 DUP11 DUP11 PUSH2 0xD9C JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP 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 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 0xAE4 JUMPI PUSH2 0xAE4 PUSH2 0x1E89 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 0xB2E DUP3 DUP3 PUSH2 0xBB4 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB LT ISZERO PUSH2 0xBA0 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 PUSH2 0x56B JUMP JUMPDEST PUSH2 0xBAE PUSH1 0x9 PUSH2 0xC7B DUP4 PUSH2 0x1427 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xC0A 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 0x56B JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xC1C SWAP2 SWAP1 PUSH2 0x1E63 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 0x5F0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 DUP3 DUP5 PUSH2 0x1E63 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP3 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2032 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x32342062697473 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 GT ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2033 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x322062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xD8B SWAP3 SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH2 0x1586 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x596 DUP3 DUP5 PUSH2 0x1E76 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDFE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xE5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECC DUP5 DUP5 PUSH2 0xA75 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0xBAE JUMPI DUP2 DUP2 LT ISZERO PUSH2 0xF27 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 0x56B JUMP JUMPDEST PUSH2 0xBAE DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0xD9C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xFFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xBAE DUP5 DUP5 DUP5 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x1137 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1161 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 DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 DUP2 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x125F JUMPI PUSH1 0x0 PUSH2 0x1220 DUP5 PUSH2 0x16C3 JUMP JUMPDEST PUSH2 0x122A SWAP1 DUP6 PUSH2 0x1E76 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 0x124F JUMPI DUP1 SWAP2 POP PUSH2 0x125D JUMP JUMPDEST PUSH2 0x125A DUP2 PUSH1 0x1 PUSH2 0x1E63 JUMP JUMPDEST SWAP3 POP JUMPDEST POP JUMPDEST DUP1 DUP3 LT ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH2 0x1273 DUP4 DUP4 PUSH2 0x17AB 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 0x1298 JUMPI DUP1 SWAP2 POP PUSH2 0x12A6 JUMP JUMPDEST PUSH2 0x12A3 DUP2 PUSH1 0x1 PUSH2 0x1E63 JUMP JUMPDEST SWAP3 POP JUMPDEST POP PUSH2 0x125F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x12E6 JUMPI PUSH2 0x12CF DUP7 PUSH2 0x12C1 PUSH1 0x1 DUP5 PUSH2 0x1E76 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 0x12E9 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 0x5F0 DUP3 DUP3 PUSH2 0xB24 JUMP JUMPDEST PUSH2 0x5F0 DUP3 DUP3 PUSH2 0x17C6 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT 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 0xBAE DUP3 DUP5 DUP4 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C3 PUSH2 0x1396 PUSH2 0x10DE JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13E8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x17DE JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13F5 DUP2 PUSH2 0x18A2 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 DUP3 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 DUP2 ISZERO PUSH2 0x1474 JUMPI PUSH2 0x1444 DUP8 PUSH2 0x12C1 PUSH1 0x1 DUP6 PUSH2 0x1E76 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 0x1489 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 0x14A9 DUP5 DUP7 DUP9 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP3 GT DUP1 ISZERO PUSH2 0x14C1 JUMPI POP DUP1 MLOAD PUSH4 0xFFFFFFFF AND NUMBER EQ JUMPDEST ISZERO PUSH2 0x1506 JUMPI PUSH2 0x14CF DUP4 PUSH2 0xC87 JUMP JUMPDEST PUSH2 0x14DE DUP9 PUSH2 0x12C1 PUSH1 0x1 DUP7 PUSH2 0x1E76 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 0x1571 JUMP JUMPDEST DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x151B NUMBER PUSH2 0xCF4 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x152F DUP7 PUSH2 0xC87 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 PUSH2 0xD8B DUP4 DUP4 DUP4 PUSH2 0xD59 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 0x15A8 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST ISZERO PUSH2 0xD8B JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x1636 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 0x15E3 SWAP1 PUSH2 0xD90 DUP6 PUSH2 0x1427 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x162B 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 0xD8B 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 0x166C SWAP1 PUSH2 0xC7B DUP6 PUSH2 0x1427 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDEC2BACDD2F05B59DE34DA9B523DFF8BE42E5E38E818C82FDB0BAE774387A724 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x16B4 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 DUP2 PUSH1 0x0 SUB PUSH2 0x16D5 JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x16E2 DUP5 PUSH2 0x19EC JUMP JUMPDEST SWAP1 SHR PUSH1 0x1 SWAP1 SHL SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x16FB JUMPI PUSH2 0x16FB PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1713 JUMPI PUSH2 0x1713 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x172B JUMPI PUSH2 0x172B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1743 JUMPI PUSH2 0x1743 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x175B JUMPI PUSH2 0x175B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x1773 JUMPI PUSH2 0x1773 PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP5 DUP2 PUSH2 0x178B JUMPI PUSH2 0x178B PUSH2 0x1E9F JUMP JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH2 0x596 DUP2 DUP3 DUP6 DUP2 PUSH2 0x17A5 JUMPI PUSH2 0x17A5 PUSH2 0x1E9F JUMP JUMPDEST DIV PUSH2 0x1A80 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17BA PUSH1 0x2 DUP5 DUP5 XOR PUSH2 0x1EB5 JUMP JUMPDEST PUSH2 0x596 SWAP1 DUP5 DUP5 AND PUSH2 0x1E63 JUMP JUMPDEST PUSH2 0x17D0 DUP3 DUP3 PUSH2 0x1A96 JUMP JUMPDEST PUSH2 0xBAE PUSH1 0x9 PUSH2 0xD90 DUP4 PUSH2 0x1427 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x1815 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x1899 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 0x1869 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 0x1892 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x1899 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 0x18B6 JUMPI PUSH2 0x18B6 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x18BE JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x18D2 JUMPI PUSH2 0x18D2 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x191F 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 0x56B JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1933 JUMPI PUSH2 0x1933 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x1980 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 0x56B JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x1994 JUMPI PUSH2 0x1994 PUSH2 0x1ED7 JUMP JUMPDEST SUB PUSH2 0x5FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x80 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A01 JUMPI PUSH1 0x80 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x40 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A13 JUMPI PUSH1 0x40 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x20 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A25 JUMPI PUSH1 0x20 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x10 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A37 JUMPI PUSH1 0x10 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x8 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A49 JUMPI PUSH1 0x8 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x4 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A5B JUMPI PUSH1 0x4 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x2 DUP4 SWAP1 SHR ISZERO PUSH2 0x1A6D JUMPI PUSH1 0x2 SWAP3 DUP4 SHR SWAP3 ADD JUMPDEST PUSH1 0x1 DUP4 SWAP1 SHR ISZERO PUSH2 0x4C3 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1A8F JUMPI DUP2 PUSH2 0x596 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AF6 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 PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0x1B6A 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 PUSH2 0x6365 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x56B 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 0xD8B DUP4 PUSH1 0x0 DUP5 PUSH2 0x157B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1BFC JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x1BE0 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C55 DUP4 PUSH2 0x1C1D 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 0x1C78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C81 DUP5 PUSH2 0x1C1D JUMP JUMPDEST SWAP3 POP PUSH2 0x1C8F PUSH1 0x20 DUP6 ADD PUSH2 0x1C1D 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 0x1CB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x596 DUP3 PUSH2 0x1C1D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x1C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1CFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D06 DUP8 PUSH2 0x1C1D JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH2 0x1D22 PUSH1 0x60 DUP9 ADD PUSH2 0x1CD3 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 0x1D57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D60 DUP9 PUSH2 0x1C1D JUMP JUMPDEST SWAP7 POP PUSH2 0x1D6E PUSH1 0x20 DUP10 ADD PUSH2 0x1C1D JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP4 POP PUSH2 0x1D8A PUSH1 0x80 DUP10 ADD PUSH2 0x1CD3 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 0x1DB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC2 DUP4 PUSH2 0x1C1D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DD0 PUSH1 0x20 DUP5 ADD PUSH2 0x1C1D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DF5 DUP4 PUSH2 0x1C1D JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1E0E 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 0x1E2D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1421 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x4C3 JUMPI PUSH2 0x4C3 PUSH2 0x1E4D JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x4C3 JUMPI PUSH2 0x4C3 PUSH2 0x1E4D 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 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1ED2 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 INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPI POP 0xEE PUSH31 0x6C36936272DDC47E4EDCC296B811102E932B7D22C09415B4F2479B7B64736F PUSH13 0x63430008110033000000000000 ","sourceMap":"830:1168:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4431:197;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:89;;1162:22;1144:41;;1132:2;1117:18;4431:197:31;1004:187:89;3242:106:31;3329:12;;3242:106;;;1342:25:89;;;1330:2;1315:18;3242:106:31;1196:177:89;5190:286:31;;;;;;:::i;:::-;;:::i;3091:91::-;;;3173:2;1853:36:89;;1841:2;1826:18;3091:91:31;1711:184:89;2879:113:36;;;:::i;5871:234:31:-;;;;;;:::i;:::-;;:::i;2825:265:34:-;;;;;;:::i;:::-;;:::i;1401:91:79:-;;;;;;:::i;:::-;;:::i;:::-;;578:89:33;;;;;;:::i;:::-;;:::i;2218:126:34:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2318:19:34;;;2292:7;2318:19;;;:10;:19;;;;;;;;2218:126;;;;-1:-1:-1;;;;;2622:32:89;;;2604:51;;2592:2;2577:18;2218:126:34;2458:203:89;5648:112:34;;;;;;:::i;:::-;;:::i;1981:149::-;;;;;;:::i;:::-;;:::i;:::-;;;2840:10:89;2828:23;;;2810:42;;2798:2;2783:18;1981:149:34;2666:192:89;3406:125:31;;;;;;:::i;:::-;-1:-1:-1;;;;;3506:18:31;3480:7;3506:18;;;;;;;;;;;;3406:125;973:161:33;;;;;;:::i;:::-;;:::i;2629:126:36:-;;;;;;:::i;:::-;;:::i;3369:256:34:-;;;;;;:::i;:::-;;:::i;2365:102:31:-;;;:::i;2423:209:34:-;;;;;;:::i;:::-;;:::i;6592:427:31:-;;;;;;:::i;:::-;;:::i;139:28:61:-;;;;;3727:189:31;;;;;;:::i;:::-;;:::i;5837:574:34:-;;;;;;:::i;:::-;;:::i;1942:626:36:-;;;;;;:::i;:::-;;:::i;3974:149:31:-;;;;;;:::i;:::-;;:::i;1758:148:34:-;;;;;;:::i;:::-;;:::i;:::-;;;;5017:13:89;;5032:10;5013:30;4995:49;;5104:4;5092:17;;;5086:24;-1:-1:-1;;;;;5082:50:89;5060:20;;;5053:80;;;;4968:18;1758:148:34;4791:348:89;2154:98:31;2208:13;2240:5;2233:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2154:98;:::o;4431:197::-;4514:4;719:10:47;4568:32:31;719:10:47;4584:7:31;4593:6;4568:8;:32::i;:::-;4617:4;4610:11;;;4431:197;;;;;:::o;5190:286::-;5317:4;719:10:47;5373:38:31;5389:4;719:10:47;5404:6:31;5373:15;:38::i;:::-;5421:27;5431:4;5437:2;5441:6;5421:9;:27::i;:::-;-1:-1:-1;5465:4:31;;5190:286;-1:-1:-1;;;;5190:286:31:o;2879:113:36:-;2939:7;2965:20;:18;:20::i;:::-;2958:27;;2879:113;:::o;5871:234:31:-;5959:4;719:10:47;6013:64:31;719:10:47;6029:7:31;6066:10;6038:25;719:10:47;6029:7:31;6038:9;:25::i;:::-;:38;;;;:::i;:::-;6013:8;:64::i;2825:265:34:-;2923:7;2964:12;2950:11;:26;2942:70;;;;-1:-1:-1;;;2942:70:34;;5993:2:89;2942:70:34;;;5975:21:89;6032:2;6012:18;;;6005:30;6071:33;6051:18;;;6044:61;6122:18;;2942:70:34;;;;;;;;;-1:-1:-1;;;;;3048:21:34;;;;;;:12;:21;;;;;3029:54;;3071:11;3029:18;:54::i;:::-;3022:61;2825:265;-1:-1:-1;;;2825:265:34:o;1401:91:79:-;207:10:61;-1:-1:-1;;;;;221:3:61;207:17;;203:45;;233:15;;-1:-1:-1;;;233:15:61;;;;;;;;;;;203:45;1468:17:79::1;1474:2;1478:6;1468:5;:17::i;:::-;1401:91:::0;;:::o;578:89:33:-;633:27;719:10:47;653:6:33;633:5;:27::i;:::-;578:89;:::o;5648:112:34:-;5719:34;719:10:47;5743:9:34;5719;:34::i;1981:149::-;-1:-1:-1;;;;;2094:21:34;;2051:6;2094:21;;;:12;:21;;;;;:28;2076:47;;:17;:47::i;973:161:33:-;1049:46;1065:7;719:10:47;1088:6:33;1049:15;:46::i;:::-;1105:22;1111:7;1120:6;1105:5;:22::i;2629:126:36:-;-1:-1:-1;;;;;2724:14:36;;2698:7;2724:14;;;:7;:14;;;;;918::48;2724:24:36;827:112:48;3369:256:34;3456:7;3497:12;3483:11;:26;3475:70;;;;-1:-1:-1;;;3475:70:34;;5993:2:89;3475:70:34;;;5975:21:89;6032:2;6012:18;;;6005:30;6071:33;6051:18;;;6044:61;6122:18;;3475:70:34;5791:355:89;3475:70:34;3562:56;3581:23;3606:11;3562:18;:56::i;2365:102:31:-;2421:13;2453:7;2446:14;;;;;:::i;2423:209:34:-;-1:-1:-1;;;;;2529:21:34;;2496:7;2529:21;;;:12;:21;;;;;:28;2574:8;;:51;;-1:-1:-1;;;;;2589:21:34;;;;;;:12;:21;;;;;2611:7;2617:1;2611:3;:7;:::i;:::-;2589:30;;;;;;;;:::i;:::-;;;;;;;;;;:36;;;;-1:-1:-1;;;;;2589:36:34;2574:51;;;2585:1;2574:51;-1:-1:-1;;;;;2567:58:34;;2423:209;-1:-1:-1;;;2423:209:34:o;6592:427:31:-;6685:4;719:10:47;6685:4:31;6766:25;719:10:47;6783:7:31;6766:9;:25::i;:::-;6739:52;;6829:15;6809:16;:35;;6801:85;;;;-1:-1:-1;;;6801:85:31;;6618:2:89;6801:85:31;;;6600:21:89;6657:2;6637:18;;;6630:30;6696:34;6676:18;;;6669:62;-1:-1:-1;;;6747:18:89;;;6740:35;6792:19;;6801:85:31;6416:401:89;6801:85:31;6920:60;6929:5;6936:7;6964:15;6945:16;:34;6920:8;:60::i;3727:189::-;3806:4;719:10:47;3860:28:31;719:10:47;3877:2:31;3881:6;3860:9;:28::i;5837:574:34:-;6056:6;6037:15;:25;;6029:67;;;;-1:-1:-1;;;6029:67:34;;7024:2:89;6029:67:34;;;7006:21:89;7063:2;7043:18;;;7036:30;7102:31;7082:18;;;7075:59;7151:18;;6029:67:34;6822:353:89;6029:67:34;6177:58;;;1447:71;6177:58;;;7411:25:89;-1:-1:-1;;;;;7472:32:89;;7452:18;;;7445:60;;;;7521:18;;;7514:34;;;7564:18;;;7557:34;;;6106:14:34;;6123:169;;6150:87;;7383:19:89;;6177:58:34;;;;;;;;;;;;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:34;;7804:2:89;6302:64:34;;;7786:21:89;7843:2;7823:18;;;7816:30;7882:27;7862:18;;;7855:55;7927:18;;6302:64:34;7602:349:89;6302:64:34;6376:28;6386:6;6394:9;6376;:28::i;:::-;6019:392;5837:574;;;;;;:::o;1942:626:36:-;2177:8;2158:15;:27;;2150:69;;;;-1:-1:-1;;;2150:69:36;;8158:2:89;2150:69:36;;;8140:21:89;8197:2;8177:18;;;8170:30;8236:31;8216:18;;;8209:59;8285:18;;2150:69:36;7956:353:89;2150:69:36;2230:18;1137:95;2290:5;2297:7;2306:5;2313:16;2323:5;2313:9;:16::i;:::-;2261:79;;;;;;8601:25:89;;;;-1:-1:-1;;;;;8700:15:89;;;8680:18;;;8673:43;8752:15;;;;8732:18;;;8725:43;8784:18;;;8777:34;8827:19;;;8820:35;8871:19;;;8864:35;;;8573:19;;2261:79:36;;;;;;;;;;;;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:36;:6;-1:-1:-1;;;;;2469:15:36;;2461:58;;;;-1:-1:-1;;;2461:58:36;;9112:2:89;2461:58:36;;;9094:21:89;9151:2;9131:18;;;9124:30;9190:32;9170:18;;;9163:60;9240:18;;2461:58:36;8910:354:89;2461:58:36;2530:31;2539:5;2546:7;2555:5;2530:8;:31::i;:::-;2140:428;;;1942:626;;;;;;;:::o;3974:149:31:-;-1:-1:-1;;;;;4089:18:31;;;4063:7;4089:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3974:149::o;1758:148:34:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;1873:21:34;;;;;;:12;:21;;;;;:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1866:33;;;;;;;;;1873:26;;1866:33;;;;;;;;;-1:-1:-1;;;;;1866:33:34;;;;;;;;;1758:148;-1:-1:-1;;;1758:148:34:o;6705:285::-;6789:28;6801:7;6810:6;6789:11;:28::i;:::-;3329:12:31;;-1:-1:-1;;;;;;6835:29:34;6827:90;;;;-1:-1:-1;;;6827:90:34;;9471:2:89;6827:90:34;;;9453:21:89;9510:2;9490:18;;;9483:30;9549:34;9529:18;;;9522:62;-1:-1:-1;;;9600:18:89;;;9593:46;9656:19;;6827:90:34;9269:412:89;6827:90:34;6928:55;6945:23;6970:4;6976:6;6928:16;:55::i;:::-;;;6705:285;;:::o;8567:535:31:-;-1:-1:-1;;;;;8650:21:31;;8642:65;;;;-1:-1:-1;;;8642:65:31;;9888:2:89;8642:65:31;;;9870:21:89;9927:2;9907:18;;;9900:30;9966:33;9946:18;;;9939:61;10017:18;;8642:65:31;9686:355:89;8642:65:31;8794:6;8778:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8946:18:31;;:9;:18;;;;;;;;;;;:28;;;;;;8999:37;1342:25:89;;;8999:37:31;;1315:18:89;8999:37:31;;;;;;;9047:48;9075:1;9079:7;9088:6;9047:19;:48::i;9575:96:34:-;9633:7;9659:5;9663:1;9659;:5;:::i;2836:192:56:-;2893:7;-1:-1:-1;;;;;2920:26:56;;;2912:78;;;;-1:-1:-1;;;2912:78:56;;10248:2:89;2912:78:56;;;10230:21:89;10287:2;10267:18;;;10260:30;10326:34;10306:18;;;10299:62;-1:-1:-1;;;10377:18:89;;;10370:37;10424:19;;2912:78:56;10046:403:89;2912:78:56;-1:-1:-1;3015:5:56;2836:192::o;15264:187::-;15320:6;15355:16;15346:25;;;15338:76;;;;-1:-1:-1;;;15338:76:56;;10656:2:89;15338:76:56;;;10638:21:89;10695:2;10675:18;;;10668:30;10734:34;10714:18;;;10707:62;-1:-1:-1;;;10785:18:89;;;10778:36;10831:19;;15338:76:56;10454:402:89;7409:254:34;-1:-1:-1;;;;;2318:19:34;;;2292:7;2318:19;;;:10;:19;;;;;;;;;;;;;;;7600:56;;2318:19;;;;;7649:6;7600:16;:56::i;:::-;7409:254;;;:::o;9677:101::-;9740:7;9766:5;9770:1;9766;:5;:::i;10504:370:31:-;-1:-1:-1;;;;;10635:19:31;;10627:68;;;;-1:-1:-1;;;10627:68:31;;11063:2:89;10627:68:31;;;11045:21:89;11102:2;11082:18;;;11075:30;11141:34;11121:18;;;11114:62;-1:-1:-1;;;11192:18:89;;;11185:34;11236:19;;10627:68:31;10861:400:89;10627:68:31;-1:-1:-1;;;;;10713:21:31;;10705:68;;;;-1:-1:-1;;;10705:68:31;;11468:2:89;10705:68:31;;;11450:21:89;11507:2;11487:18;;;11480:30;11546:34;11526:18;;;11519:62;-1:-1:-1;;;11597:18:89;;;11590:32;11639:19;;10705:68:31;11266:398:89;10705:68:31;-1:-1:-1;;;;;10784:18:31;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10835:32;;1342:25:89;;;10835:32:31;;1315:18:89;10835:32:31;;;;;;;10504:370;;;:::o;11155:441::-;11285:24;11312:25;11322:5;11329:7;11312:9;:25::i;:::-;11285:52;;-1:-1:-1;;11351:16:31;:37;11347:243;;11432:6;11412:16;:26;;11404:68;;;;-1:-1:-1;;;11404:68:31;;11871:2:89;11404:68:31;;;11853:21:89;11910:2;11890:18;;;11883:30;11949:31;11929:18;;;11922:59;11998:18;;11404:68:31;11669:353:89;11404:68:31;11514:51;11523:5;11530:7;11558:6;11539:16;:25;11514:8;:51::i;7473:818::-;-1:-1:-1;;;;;7599:18:31;;7591:68;;;;-1:-1:-1;;;7591:68:31;;12229:2:89;7591:68:31;;;12211:21:89;12268:2;12248:18;;;12241:30;12307:34;12287:18;;;12280:62;-1:-1:-1;;;12358:18:89;;;12351:35;12403:19;;7591:68:31;12027:401:89;7591:68:31;-1:-1:-1;;;;;7677:16:31;;7669:64;;;;-1:-1:-1;;;7669:64:31;;12635:2:89;7669:64:31;;;12617:21:89;12674:2;12654:18;;;12647:30;12713:34;12693:18;;;12686:62;-1:-1:-1;;;12764:18:89;;;12757:33;12807:19;;7669:64:31;12433:399:89;7669:64:31;-1:-1:-1;;;;;7815:15:31;;7793:19;7815:15;;;;;;;;;;;7848:21;;;;7840:72;;;;-1:-1:-1;;;7840:72:31;;13039:2:89;7840:72:31;;;13021:21:89;13078:2;13058:18;;;13051:30;13117:34;13097:18;;;13090:62;-1:-1:-1;;;13168:18:89;;;13161:36;13214:19;;7840:72:31;12837:402:89;7840:72:31;-1:-1:-1;;;;;7946:15:31;;;:9;:15;;;;;;;;;;;7964:20;;;7946:38;;8161:13;;;;;;;;;;:23;;;;;;8210:26;;1342:25:89;;;8161:13:31;;8210:26;;1315:18:89;8210:26:31;;;;;;;8247:37;8267:4;8273:2;8277:6;8247:19;:37::i;3152:308:52:-;3205:7;3236:4;-1:-1:-1;;;;;3245:12:52;3228:29;;:66;;;;;3278:16;3261:13;:33;3228:66;3224:230;;;-1:-1:-1;3317:24:52;;3152:308::o;3224:230::-;-1:-1:-1;3642:73:52;;;3401:10;3642:73;;;;13756:25:89;;;;3413:12:52;13797:18:89;;;13790:34;3427:15:52;13840:18:89;;;13833:34;3686:13:52;13883:18:89;;;13876:34;3709:4:52;13926:19:89;;;;13919:61;;;;3642:73:52;;;;;;;;;;13728:19:89;;;;3642:73:52;;;3632:84;;;;;;2879:113:36:o;3709:1858:34:-;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:34;;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:34;;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:34;5508:52;;;5520:1;5508:52;-1:-1:-1;;;;;5501:59:34;;3709:1858;-1:-1:-1;;;;;;3709:1858:34:o;1740:120:79:-;1830:23;1842:2;1846:6;1830:11;:23::i;1866:130::-;1961:28;1973:7;1982:6;1961:11;:28::i;7834:380:34:-;-1:-1:-1;;;;;2318:19:34;;;7918:23;2318:19;;;:10;:19;;;;;;;;;;3506:18:31;;;;;;;8031:21:34;;;;:33;;;-1:-1:-1;;;;;;8031:33:34;;;;;;;8080:54;;2318:19;;;;;3506:18:31;;8031:33:34;;2318:19;;;8080:54;;7918:23;8080:54;8145:62;8162:15;8179:9;8190:16;8145;:62::i;4348:165:52:-;4425:7;4451:55;4473:20;:18;:20::i;:::-;4495:10;8470:57:51;;-1:-1:-1;;;8470:57:51;;;14603:27:89;14646:11;;;14639:27;;;14682:12;;;14675:28;;;8434:7:51;;14719:12:89;;8470:57:51;;;;;;;;;;;;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:51;6696:270;-1:-1:-1;;;;;6696:270:51:o;3123:203:36:-;-1:-1:-1;;;;;3243:14:36;;3183:15;3243:14;;;:7;:14;;;;;918::48;;1050:1;1032:19;;;;918:14;3302:17:36;3200:126;3123:203;;;:::o;8853:716:34:-;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:34;;;;;;;;9147:16;;;;;;;;;-1:-1:-1;9147:16:34;;;;;;;9136:59;9108:87;;9218:7;:13;;;-1:-1:-1;;;;;9206:25:34;;;9253:20;9256:9;9267:5;9253:2;:20;;:::i;:::-;9241:32;;9294:1;9288:3;:7;:44;;;;-1:-1:-1;9299:17:34;;: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:34;;;;;;;;;;;;;;;;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:34;;;;;;9446:106;;;;;;;-1:-1:-1;9446:106:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9284:279;9061:508;;8853:716;;;;;;:::o;1566:168:79:-;1684:43;1710:4;1716:2;1720:6;1684:25;:43::i;8220:627:34:-;8347:3;-1:-1:-1;;;;;8340:10:34;:3;-1:-1:-1;;;;;8340:10:34;;;:24;;;;;8363:1;8354:6;:10;8340:24;8336:505;;;-1:-1:-1;;;;;8384:17:34;;;8380:221;;-1:-1:-1;;;;;8479:17:34;;8422;8479;;;:12;:17;;;;;8422;;8462:54;;8498:9;8509:6;8462:16;:54::i;:::-;8421:95;;;;8560:3;-1:-1:-1;;;;;8539:47:34;;8565:9;8576;8539:47;;;;;;13418:25:89;;;13474:2;13459:18;;13452:34;13406:2;13391:18;;13244:248;8539:47:34;;;;;;;;8403:198;;8380:221;-1:-1:-1;;;;;8619:17:34;;;8615:216;;-1:-1:-1;;;;;8714:17:34;;8657;8714;;;:12;:17;;;;;8657;;8697:49;;8733:4;8739:6;8697:16;:49::i;:::-;8656:90;;;;8790:3;-1:-1:-1;;;;;8769:47:34;;8795:9;8806;8769:47;;;;;;13418:25:89;;;13474:2;13459:18;;13452:34;13406:2;13391:18;;13244:248;8769:47:34;;;;;;;;8638:193;;8220:627;;;:::o;6280:1642:55:-;6328:7;6351:1;6356;6351:6;6347:45;;-1:-1:-1;6380:1:55;;6280:1642;-1:-1:-1;6280:1642:55: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:34:-;7163:28;7175:7;7184:6;7163:11;:28::i;:::-;7202:60;7219:23;7244:9;7255:6;7202:16;:60::i;5069:1494:51:-;5195:7;;6119:66;6106:79;;6102:161;;;-1:-1:-1;6217:1:51;;-1:-1:-1;6221:30:51;6201:51;;6102:161;6374:24;;;6357:14;6374:24;;;;;;;;;14969:25:89;;;15042:4;15030:17;;15010:18;;;15003:45;;;;15064:18;;;15057:34;;;15107:18;;;15100:34;;;6374:24:51;;14941:19:89;;6374:24:51;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6374:24:51;;-1:-1:-1;;6374:24:51;;;-1:-1:-1;;;;;;;6412:20:51;;6408:101;;6464:1;6468:29;6448:50;;;;;;;6408:101;6527:6;-1:-1:-1;6535:20:51;;-1:-1:-1;5069:1494:51;;;;;;;;:::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:51;;15479:2:89;788:34:51;;;15461:21:89;15518:2;15498:18;;;15491:30;15557:26;15537:18;;;15530:54;15601:18;;788:34:51;15277:348:89;730:345:51;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:51;;15832:2:89;903:41:51;;;15814:21:89;15871:2;15851:18;;;15844:30;15910:33;15890:18;;;15883:61;15961:18;;903:41:51;15630:355:89;839:236:51;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:51;;16192:2:89;1020:44:51;;;16174:21:89;16231:2;16211:18;;;16204:30;16270:34;16250:18;;;16243:62;-1:-1:-1;;;16321:18:89;;;16314:32;16363:19;;1020:44:51;15990:398:89;8383:983:55;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:55:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:55;;588:104;-1:-1:-1;588:104:55:o;9422:659:31:-;-1:-1:-1;;;;;9505:21:31;;9497:67;;;;-1:-1:-1;;;9497:67:31;;16595:2:89;9497:67:31;;;16577:21:89;16634:2;16614:18;;;16607:30;16673:34;16653:18;;;16646:62;-1:-1:-1;;;16724:18:89;;;16717:31;16765:19;;9497:67:31;16393:397:89;9497:67:31;-1:-1:-1;;;;;9660:18:31;;9635:22;9660:18;;;;;;;;;;;9696:24;;;;9688:71;;;;-1:-1:-1;;;9688:71:31;;16997:2:89;9688:71:31;;;16979:21:89;17036:2;17016:18;;;17009:30;17075:34;17055:18;;;17048:62;-1:-1:-1;;;17126:18:89;;;17119:32;17168:19;;9688:71:31;16795:398:89;9688:71:31;-1:-1:-1;;;;;9793:18:31;;:9;:18;;;;;;;;;;;9814:23;;;9793:44;;9930:12;:22;;;;;;;9978:37;1342:25:89;;;9793:9:31;;:18;9978:37;;1315:18:89;9978:37:31;;;;;;;10026:48;10046:7;10063:1;10067:6;10026:19;:48::i;14:548:89:-;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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:89;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:89:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2082:180::-;2141:6;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;-1:-1:-1;2233:23:89;;2082:180;-1:-1:-1;2082:180:89:o;2267:186::-;2326:6;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2418:29;2437:9;2418:29;:::i;2863:156::-;2929:20;;2989:4;2978:16;;2968:27;;2958:55;;3009:1;3006;2999:12;3024:531;3126:6;3134;3142;3150;3158;3166;3219:3;3207:9;3198:7;3194:23;3190:33;3187:53;;;3236:1;3233;3226:12;3187:53;3259:29;3278:9;3259:29;:::i;:::-;3249:39;;3335:2;3324:9;3320:18;3307:32;3297:42;;3386:2;3375:9;3371:18;3358:32;3348:42;;3409:36;3441:2;3430:9;3426:18;3409:36;:::i;:::-;3399:46;;3492:3;3481:9;3477:19;3464:33;3454:43;;3544:3;3533:9;3529:19;3516:33;3506:43;;3024:531;;;;;;;;:::o;3560:606::-;3671:6;3679;3687;3695;3703;3711;3719;3772:3;3760:9;3751:7;3747:23;3743:33;3740:53;;;3789:1;3786;3779:12;3740:53;3812:29;3831:9;3812:29;:::i;:::-;3802:39;;3860:38;3894:2;3883:9;3879:18;3860:38;:::i;:::-;3850:48;;3945:2;3934:9;3930:18;3917:32;3907:42;;3996:2;3985:9;3981:18;3968:32;3958:42;;4019:37;4051:3;4040:9;4036:19;4019:37;:::i;:::-;4009:47;;4103:3;4092:9;4088:19;4075:33;4065:43;;4155:3;4144:9;4140:19;4127:33;4117:43;;3560:606;;;;;;;;;;:::o;4171:260::-;4239:6;4247;4300:2;4288:9;4279:7;4275:23;4271:32;4268:52;;;4316:1;4313;4306:12;4268:52;4339:29;4358:9;4339:29;:::i;:::-;4329:39;;4387:38;4421:2;4410:9;4406:18;4387:38;:::i;:::-;4377:48;;4171:260;;;;;:::o;4436:350::-;4503:6;4511;4564:2;4552:9;4543:7;4539:23;4535:32;4532:52;;;4580:1;4577;4570:12;4532:52;4603:29;4622:9;4603:29;:::i;:::-;4593:39;;4682:2;4671:9;4667:18;4654:32;4726:10;4719:5;4715:22;4708:5;4705:33;4695:61;;4752:1;4749;4742:12;4695:61;4775:5;4765:15;;;4436:350;;;;;:::o;5144:380::-;5223:1;5219:12;;;;5266;;;5287:61;;5341:4;5333:6;5329:17;5319:27;;5287:61;5394:2;5386:6;5383:14;5363:18;5360:38;5357:161;;5440:10;5435:3;5431:20;5428:1;5421:31;5475:4;5472:1;5465:15;5503:4;5500:1;5493:15;5529:127;5590:10;5585:3;5581:20;5578:1;5571:31;5621:4;5618:1;5611:15;5645:4;5642:1;5635:15;5661:125;5726:9;;;5747:10;;;5744:36;;;5760:18;;:::i;6151:128::-;6218:9;;;6239:11;;;6236:37;;;6253:18;;:::i;6284:127::-;6345:10;6340:3;6336:20;6333:1;6326:31;6376:4;6373:1;6366:15;6400:4;6397:1;6390:15;13991:127;14052:10;14047:3;14043:20;14040:1;14033:31;14083:4;14080:1;14073:15;14107:4;14104:1;14097:15;14123:217;14163:1;14189;14179:132;;14233:10;14228:3;14224:20;14221:1;14214:31;14268:4;14265:1;14258:15;14296:4;14293:1;14286:15;14179:132;-1:-1:-1;14325:9:89;;14123:217::o;15145:127::-;15206:10;15201:3;15197:20;15194:1;15187:31;15237:4;15234:1;15227:15;15261:4;15258:1;15251:15"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","HUB()":"a4c52b86","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","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","mint(address,uint256)":"40c10f19","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.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"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\":[],\"name\":\"HUB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[{\"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\":[{\"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\":[],\"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\":\"This is the implementation of the ERC20 My3Sec Token. The token is initially owned by the deployer address that can mint tokens to create the initial distribution. For convenience, an initial supply can be passed in the constructor that will be assigned to the deployer. The My3Sec rewards system (to be defined) should be added as a minter to distribute rewards to the users.\",\"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`.\"},\"constructor\":{\"details\":\"My3Sec Token Contract Constructor.\",\"params\":{\"initialSupply\":\"Initial supply of M3S\"}},\"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.\"},\"mint(address,uint256)\":{\"params\":{\"amount\":\"Amount of tokens to mint\",\"to\":\"Address to send the newly minted tokens\"}},\"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`.\"}},\"title\":\"My3SecToken contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"mint(address,uint256)\":{\"notice\":\"Mint new tokens.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/My3SecToken.sol\":\"My3SecToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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/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/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\"]},\"contracts/common/access/HubControllable.sol\":{\"keccak256\":\"0x8c68d5aa9dc7626e1b305fcb8b228b0d5acbf18e6be59b6ac1ee0f8dc41836df\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1bd2471fbfd6c3fdacd2f3b82ab0e74fda462bcc6569d40c5b28220629bc4f9\",\"dweb:/ipfs/QmS1Hx3javGZ2UHoxGLXFcrxd7poMdiPMpExaQNNXRdF7g\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/governance/My3SecToken.sol\":{\"keccak256\":\"0xc6b94f7edef0073ad4ebe5a54d736d831d88a1cbc57958dac7862e2576926b12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e00633127c4b4977d89efde017586f9c25dac4d31f812926e212148cf4d653b\",\"dweb:/ipfs/QmbDJ6tSmAkbkjQeEaBAFwc4w51CgX6nJv1ZQmm2rHY4KB\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":9361,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":9367,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":9369,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":9371,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":9373,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"},{"astId":10800,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_nonces","offset":0,"slot":"5","type":"t_mapping(t_address,t_struct(Counter)14330_storage)"},{"astId":10808,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_PERMIT_TYPEHASH_DEPRECATED_SLOT","offset":0,"slot":"6","type":"t_bytes32"},{"astId":10080,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_delegates","offset":0,"slot":"7","type":"t_mapping(t_address,t_address)"},{"astId":10086,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_checkpoints","offset":0,"slot":"8","type":"t_mapping(t_address,t_array(t_struct(Checkpoint)10071_storage)dyn_storage)"},{"astId":10090,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_totalSupplyCheckpoints","offset":0,"slot":"9","type":"t_array(t_struct(Checkpoint)10071_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_struct(Checkpoint)10071_storage)dyn_storage":{"base":"t_struct(Checkpoint)10071_storage","encoding":"dynamic_array","label":"struct ERC20Votes.Checkpoint[]","numberOfBytes":"32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_address)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_address,t_array(t_struct(Checkpoint)10071_storage)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct ERC20Votes.Checkpoint[])","numberOfBytes":"32","value":"t_array(t_struct(Checkpoint)10071_storage)dyn_storage"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Counter)14330_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct Counters.Counter)","numberOfBytes":"32","value":"t_struct(Counter)14330_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Checkpoint)10071_storage":{"encoding":"inplace","label":"struct ERC20Votes.Checkpoint","members":[{"astId":10068,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"fromBlock","offset":0,"slot":"0","type":"t_uint32"},{"astId":10070,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"votes","offset":4,"slot":"0","type":"t_uint224"}],"numberOfBytes":"32"},"t_struct(Counter)14330_storage":{"encoding":"inplace","label":"struct Counters.Counter","members":[{"astId":14329,"contract":"contracts/governance/My3SecToken.sol:My3SecToken","label":"_value","offset":0,"slot":"0","type":"t_uint256"}],"numberOfBytes":"32"},"t_uint224":{"encoding":"inplace","label":"uint224","numberOfBytes":"28"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}}}},"contracts/governance/SkillRegistry.sol":{"SkillRegistry":{"abi":[{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"SkillNotFound","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateSkill","name":"args","type":"tuple"}],"name":"createSkill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBaseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getSkill","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.SkillView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSkillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.UpdateSkill","name":"args","type":"tuple"}],"name":"updateSkill","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_22738":{"entryPoint":null,"id":22738,"parameterSlots":1,"returnSlots":0},"@_5551":{"entryPoint":null,"id":5551,"parameterSlots":0,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5639":{"entryPoint":123,"id":5639,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":225,"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":498,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":581,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":438,"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":203,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3779:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"237:951:89","statements":[{"nodeType":"YulVariableDeclaration","src":"247:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"257:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"251:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"304:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"313:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"316:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"306:6:89"},"nodeType":"YulFunctionCall","src":"306:12:89"},"nodeType":"YulExpressionStatement","src":"306:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"279:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"288:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"275:3:89"},"nodeType":"YulFunctionCall","src":"275:23:89"},{"name":"_1","nodeType":"YulIdentifier","src":"300:2:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"271:3:89"},"nodeType":"YulFunctionCall","src":"271:32:89"},"nodeType":"YulIf","src":"268:52:89"},{"nodeType":"YulVariableDeclaration","src":"329:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"343:5:89"},"nodeType":"YulFunctionCall","src":"343:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"333:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"368:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"386:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"390:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"382:3:89"},"nodeType":"YulFunctionCall","src":"382:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"394:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"378:3:89"},"nodeType":"YulFunctionCall","src":"378:18:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"372:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"423:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"432:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"435:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"425:6:89"},"nodeType":"YulFunctionCall","src":"425:12:89"},"nodeType":"YulExpressionStatement","src":"425:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"411:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"419:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"408:2:89"},"nodeType":"YulFunctionCall","src":"408:14:89"},"nodeType":"YulIf","src":"405:34:89"},{"nodeType":"YulVariableDeclaration","src":"448:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"462:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"473:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"458:3:89"},"nodeType":"YulFunctionCall","src":"458:22:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"452:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"528:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"537:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"540:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"530:6:89"},"nodeType":"YulFunctionCall","src":"530:12:89"},"nodeType":"YulExpressionStatement","src":"530:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"507:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"511:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:89"},"nodeType":"YulFunctionCall","src":"503:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"518:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"499:3:89"},"nodeType":"YulFunctionCall","src":"499:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"492:6:89"},"nodeType":"YulFunctionCall","src":"492:35:89"},"nodeType":"YulIf","src":"489:55:89"},{"nodeType":"YulVariableDeclaration","src":"553:19:89","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"569:2:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"563:5:89"},"nodeType":"YulFunctionCall","src":"563:9:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"557:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"595:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"597:16:89"},"nodeType":"YulFunctionCall","src":"597:18:89"},"nodeType":"YulExpressionStatement","src":"597:18:89"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"587:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"591:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"584:2:89"},"nodeType":"YulFunctionCall","src":"584:10:89"},"nodeType":"YulIf","src":"581:36:89"},{"nodeType":"YulVariableDeclaration","src":"626:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"640:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"636:3:89"},"nodeType":"YulFunctionCall","src":"636:7:89"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"630:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"652:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"672:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"666:5:89"},"nodeType":"YulFunctionCall","src":"666:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"656:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"684:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"706:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"730:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"726:3:89"},"nodeType":"YulFunctionCall","src":"726:13:89"},{"name":"_5","nodeType":"YulIdentifier","src":"741:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"722:3:89"},"nodeType":"YulFunctionCall","src":"722:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"746:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"718:3:89"},"nodeType":"YulFunctionCall","src":"718:31:89"},{"name":"_5","nodeType":"YulIdentifier","src":"751:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"714:3:89"},"nodeType":"YulFunctionCall","src":"714:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"702:3:89"},"nodeType":"YulFunctionCall","src":"702:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"688:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"814:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"816:16:89"},"nodeType":"YulFunctionCall","src":"816:18:89"},"nodeType":"YulExpressionStatement","src":"816:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"773:10:89"},{"name":"_2","nodeType":"YulIdentifier","src":"785:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"770:2:89"},"nodeType":"YulFunctionCall","src":"770:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"793:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"805:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"790:2:89"},"nodeType":"YulFunctionCall","src":"790:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"767:2:89"},"nodeType":"YulFunctionCall","src":"767:46:89"},"nodeType":"YulIf","src":"764:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"852:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"856:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"845:6:89"},"nodeType":"YulFunctionCall","src":"845:22:89"},"nodeType":"YulExpressionStatement","src":"845:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"883:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"891:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:89"},"nodeType":"YulFunctionCall","src":"876:18:89"},"nodeType":"YulExpressionStatement","src":"876:18:89"},{"body":{"nodeType":"YulBlock","src":"940:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"949:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"952:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"942:6:89"},"nodeType":"YulFunctionCall","src":"942:12:89"},"nodeType":"YulExpressionStatement","src":"942:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"917:2:89"},{"name":"_4","nodeType":"YulIdentifier","src":"921:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"913:3:89"},"nodeType":"YulFunctionCall","src":"913:11:89"},{"name":"_1","nodeType":"YulIdentifier","src":"926:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"909:3:89"},"nodeType":"YulFunctionCall","src":"909:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"931:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"906:2:89"},"nodeType":"YulFunctionCall","src":"906:33:89"},"nodeType":"YulIf","src":"903:53:89"},{"nodeType":"YulVariableDeclaration","src":"965:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"974:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"969:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1030:83:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1059:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"1067:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1055:3:89"},"nodeType":"YulFunctionCall","src":"1055:14:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1071:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1051:3:89"},"nodeType":"YulFunctionCall","src":"1051:23:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1090:2:89"},{"name":"i","nodeType":"YulIdentifier","src":"1094:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1086:3:89"},"nodeType":"YulFunctionCall","src":"1086:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1098:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1082:3:89"},"nodeType":"YulFunctionCall","src":"1082:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1076:5:89"},"nodeType":"YulFunctionCall","src":"1076:26:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1044:6:89"},"nodeType":"YulFunctionCall","src":"1044:59:89"},"nodeType":"YulExpressionStatement","src":"1044:59:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"995:1:89"},{"name":"_4","nodeType":"YulIdentifier","src":"998:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"992:2:89"},"nodeType":"YulFunctionCall","src":"992:9:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1002:19:89","statements":[{"nodeType":"YulAssignment","src":"1004:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1013:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1016:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1009:3:89"},"nodeType":"YulFunctionCall","src":"1009:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1004:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"988:3:89","statements":[]},"src":"984:129:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1137:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1145:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:89"},"nodeType":"YulFunctionCall","src":"1133:15:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1150:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:89"},"nodeType":"YulFunctionCall","src":"1129:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"1155:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1122:6:89"},"nodeType":"YulFunctionCall","src":"1122:35:89"},"nodeType":"YulExpressionStatement","src":"1122:35:89"},{"nodeType":"YulAssignment","src":"1166:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1176:6:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"203:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"214:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"226:6:89","type":""}],"src":"146:1042:89"},{"body":{"nodeType":"YulBlock","src":"1248:325:89","statements":[{"nodeType":"YulAssignment","src":"1258:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1272:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1275:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1268:3:89"},"nodeType":"YulFunctionCall","src":"1268:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1258:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1289:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1319:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"1325:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1315:3:89"},"nodeType":"YulFunctionCall","src":"1315:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1293:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1366:31:89","statements":[{"nodeType":"YulAssignment","src":"1368:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1382:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1390:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1378:3:89"},"nodeType":"YulFunctionCall","src":"1378:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1368:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1346:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1339:6:89"},"nodeType":"YulFunctionCall","src":"1339:26:89"},"nodeType":"YulIf","src":"1336:61:89"},{"body":{"nodeType":"YulBlock","src":"1456:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1477:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1484:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1489:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1480:3:89"},"nodeType":"YulFunctionCall","src":"1480:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1470:6:89"},"nodeType":"YulFunctionCall","src":"1470:31:89"},"nodeType":"YulExpressionStatement","src":"1470:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1521:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1524:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1514:6:89"},"nodeType":"YulFunctionCall","src":"1514:15:89"},"nodeType":"YulExpressionStatement","src":"1514:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1549:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1552:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1542:6:89"},"nodeType":"YulFunctionCall","src":"1542:15:89"},"nodeType":"YulExpressionStatement","src":"1542:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1412:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1435:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1443:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1432:2:89"},"nodeType":"YulFunctionCall","src":"1432:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1409:2:89"},"nodeType":"YulFunctionCall","src":"1409:38:89"},"nodeType":"YulIf","src":"1406:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1228:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1237:6:89","type":""}],"src":"1193:380:89"},{"body":{"nodeType":"YulBlock","src":"1634:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1651:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"1654:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1644:6:89"},"nodeType":"YulFunctionCall","src":"1644:14:89"},"nodeType":"YulExpressionStatement","src":"1644:14:89"},{"nodeType":"YulAssignment","src":"1667:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1685:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1688:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1675:9:89"},"nodeType":"YulFunctionCall","src":"1675:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"1667:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1617:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1625:4:89","type":""}],"src":"1578:121:89"},{"body":{"nodeType":"YulBlock","src":"1785:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"1818:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1832:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1842:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1836:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1863:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"1867:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1856:6:89"},"nodeType":"YulFunctionCall","src":"1856:17:89"},"nodeType":"YulExpressionStatement","src":"1856:17:89"},{"nodeType":"YulVariableDeclaration","src":"1886:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1908:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1912:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1898:9:89"},"nodeType":"YulFunctionCall","src":"1898:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1890:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1930:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1953:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1963:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1970:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1982:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1966:3:89"},"nodeType":"YulFunctionCall","src":"1966:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1959:3:89"},"nodeType":"YulFunctionCall","src":"1959:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1949:3:89"},"nodeType":"YulFunctionCall","src":"1949:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1934:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2024:23:89","statements":[{"nodeType":"YulAssignment","src":"2026:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"2041:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2026:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2006:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2018:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2003:2:89"},"nodeType":"YulFunctionCall","src":"2003:20:89"},"nodeType":"YulIf","src":"2000:47:89"},{"nodeType":"YulVariableDeclaration","src":"2060:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2074:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2084:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2091:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2096:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2087:3:89"},"nodeType":"YulFunctionCall","src":"2087:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2080:3:89"},"nodeType":"YulFunctionCall","src":"2080:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2070:3:89"},"nodeType":"YulFunctionCall","src":"2070:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2064:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2114:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2127:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2118:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2212:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2221:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2228:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2214:6:89"},"nodeType":"YulFunctionCall","src":"2214:17:89"},"nodeType":"YulExpressionStatement","src":"2214:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2162:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"2169:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2159:2:89"},"nodeType":"YulFunctionCall","src":"2159:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2173:26:89","statements":[{"nodeType":"YulAssignment","src":"2175:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2188:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2195:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2184:3:89"},"nodeType":"YulFunctionCall","src":"2184:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2175:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2155:3:89","statements":[]},"src":"2151:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1801:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1806:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1798:2:89"},"nodeType":"YulFunctionCall","src":"1798:11:89"},"nodeType":"YulIf","src":"1795:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1757:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1764:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1769:10:89","type":""}],"src":"1704:545:89"},{"body":{"nodeType":"YulBlock","src":"2339:81:89","statements":[{"nodeType":"YulAssignment","src":"2349:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2364:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2382:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2385:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2378:3:89"},"nodeType":"YulFunctionCall","src":"2378:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2395:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2391:3:89"},"nodeType":"YulFunctionCall","src":"2391:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2374:3:89"},"nodeType":"YulFunctionCall","src":"2374:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2370:3:89"},"nodeType":"YulFunctionCall","src":"2370:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2360:3:89"},"nodeType":"YulFunctionCall","src":"2360:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2406:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2409:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2402:3:89"},"nodeType":"YulFunctionCall","src":"2402:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2357:2:89"},"nodeType":"YulFunctionCall","src":"2357:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2349:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2316:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2322:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2330:4:89","type":""}],"src":"2254:166:89"},{"body":{"nodeType":"YulBlock","src":"2521:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2531:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2551:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2545:5:89"},"nodeType":"YulFunctionCall","src":"2545:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2535:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2598:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2600:16:89"},"nodeType":"YulFunctionCall","src":"2600:18:89"},"nodeType":"YulExpressionStatement","src":"2600:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2570:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2586:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2590:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2582:3:89"},"nodeType":"YulFunctionCall","src":"2582:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2594:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2578:3:89"},"nodeType":"YulFunctionCall","src":"2578:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2567:2:89"},"nodeType":"YulFunctionCall","src":"2567:30:89"},"nodeType":"YulIf","src":"2564:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2673:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2711:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2705:5:89"},"nodeType":"YulFunctionCall","src":"2705:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"2679:25:89"},"nodeType":"YulFunctionCall","src":"2679:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2719:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2629:43:89"},"nodeType":"YulFunctionCall","src":"2629:97:89"},"nodeType":"YulExpressionStatement","src":"2629:97:89"},{"nodeType":"YulVariableDeclaration","src":"2735:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2752:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"2739:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2762:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2781:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2766:11:89","type":""}]},{"nodeType":"YulAssignment","src":"2794:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2807:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2794:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2864:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2878:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2897:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2909:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2905:3:89"},"nodeType":"YulFunctionCall","src":"2905:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2893:3:89"},"nodeType":"YulFunctionCall","src":"2893:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2882:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2926:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2970:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2940:29:89"},"nodeType":"YulFunctionCall","src":"2940:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2930:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2988:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2997:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2992:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3075:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3100:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3118:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3123:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3114:3:89"},"nodeType":"YulFunctionCall","src":"3114:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3108:5:89"},"nodeType":"YulFunctionCall","src":"3108:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3093:6:89"},"nodeType":"YulFunctionCall","src":"3093:42:89"},"nodeType":"YulExpressionStatement","src":"3093:42:89"},{"nodeType":"YulAssignment","src":"3152:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3166:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3174:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3162:3:89"},"nodeType":"YulFunctionCall","src":"3162:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3152:6:89"}]},{"nodeType":"YulAssignment","src":"3193:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3210:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3221:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3206:3:89"},"nodeType":"YulFunctionCall","src":"3206:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3193:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3022:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3025:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3019:2:89"},"nodeType":"YulFunctionCall","src":"3019:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3034:28:89","statements":[{"nodeType":"YulAssignment","src":"3036:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3045:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3048:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3041:3:89"},"nodeType":"YulFunctionCall","src":"3041:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3036:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"3015:3:89","statements":[]},"src":"3011:236:89"},{"body":{"nodeType":"YulBlock","src":"3295:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3313:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3340:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3345:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3336:3:89"},"nodeType":"YulFunctionCall","src":"3336:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3330:5:89"},"nodeType":"YulFunctionCall","src":"3330:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3317:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3380:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3392:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3419:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3422:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3415:3:89"},"nodeType":"YulFunctionCall","src":"3415:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3431:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3411:3:89"},"nodeType":"YulFunctionCall","src":"3411:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3441:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3437:3:89"},"nodeType":"YulFunctionCall","src":"3437:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3407:3:89"},"nodeType":"YulFunctionCall","src":"3407:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3403:3:89"},"nodeType":"YulFunctionCall","src":"3403:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3388:3:89"},"nodeType":"YulFunctionCall","src":"3388:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3373:6:89"},"nodeType":"YulFunctionCall","src":"3373:74:89"},"nodeType":"YulExpressionStatement","src":"3373:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3266:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3275:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3263:2:89"},"nodeType":"YulFunctionCall","src":"3263:19:89"},"nodeType":"YulIf","src":"3260:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3481:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3495:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3498:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3491:3:89"},"nodeType":"YulFunctionCall","src":"3491:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3507:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3487:3:89"},"nodeType":"YulFunctionCall","src":"3487:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3474:6:89"},"nodeType":"YulFunctionCall","src":"3474:36:89"},"nodeType":"YulExpressionStatement","src":"3474:36:89"}]},"nodeType":"YulCase","src":"2857:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2862:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3537:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3551:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3564:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3555:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3600:67:89","statements":[{"nodeType":"YulAssignment","src":"3618:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3637:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3642:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3633:3:89"},"nodeType":"YulFunctionCall","src":"3633:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3627:5:89"},"nodeType":"YulFunctionCall","src":"3627:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3618:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3581:6:89"},"nodeType":"YulIf","src":"3578:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3687:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3746:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3753:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"3693:52:89"},"nodeType":"YulFunctionCall","src":"3693:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3680:6:89"},"nodeType":"YulFunctionCall","src":"3680:81:89"},"nodeType":"YulExpressionStatement","src":"3680:81:89"}]},"nodeType":"YulCase","src":"3529:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2837:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2845:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2834:2:89"},"nodeType":"YulFunctionCall","src":"2834:14:89"},"nodeType":"YulSwitch","src":"2827:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2506:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"2512:3:89","type":""}],"src":"2425:1352:89"}]},"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_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        let _1 := 32\n        if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n        let offset := mload(headStart)\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        mstore(add(add(memPtr, _4), _1), 0)\n        value0 := memPtr\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":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000fbf38038062000fbf8339810160408190526200003491620000e1565b6200003f336200007b565b8060018151101562000064576040516348be0eb360e01b815260040160405180910390fd5b600262000072838262000245565b50505062000311565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215620000f557600080fd5b82516001600160401b03808211156200010d57600080fd5b818501915085601f8301126200012257600080fd5b815181811115620001375762000137620000cb565b604051601f8201601f19908116603f01168101908382118183101715620001625762000162620000cb565b8160405282815288868487010111156200017b57600080fd5b600093505b828410156200019f578484018601518185018701529285019262000180565b600086848301015280965050505050505092915050565b600181811c90821680620001cb57607f821691505b602082108103620001ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024057600081815260208120601f850160051c810160208610156200021b5750805b601f850160051c820191505b818110156200023c5782815560010162000227565b5050505b505050565b81516001600160401b03811115620002615762000261620000cb565b6200027981620002728454620001b6565b84620001f2565b602080601f831160018114620002b15760008415620002985750858301515b600019600386901b1c1916600185901b1785556200023c565b600085815260208120601f198616915b82811015620002e257888601518255948401946001909101908401620002c1565b5085821015620003015787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c9e80620003216000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146100eb5780638c2576b2146100f35780638da5cb5b14610106578063bd880fae14610121578063f2fde38b1461014157600080fd5b806305f53b29146100985780633fa9b1e4146100ae57806355f804b3146100c3578063714c5398146100d6575b600080fd5b6001546040519081526020015b60405180910390f35b6100c16100bc36600461073d565b610154565b005b6100c16100d1366004610790565b6101cb565b6100de610208565b6040516100a59190610891565b6100c161029a565b6100c16101013660046108ab565b6102ae565b6000546040516001600160a01b0390911681526020016100a5565b61013461012f3660046108f2565b61032c565b6040516100a5919061090b565b6100c161014f366004610930565b610497565b61015c610515565b60016101688280610959565b825460018101845560009384526020909320909201916101889183610a29565b506001805460009161019991610aea565b60405190915081907f22b345891f7ed770623196d690a94cfb1906bda0a1a7510e8526979c4792bc7490600090a25050565b6101d3610515565b806001815110156101f7576040516348be0eb360e01b815260040160405180910390fd5b60026102038382610b0b565b505050565b606060028054610217906109a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610243906109a7565b80156102905780601f1061026557610100808354040283529160200191610290565b820191906000526020600020905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b6102a2610515565b6102ac600061056f565b565b6102b6610515565b60018054839111806102d45750600180546102d19190610aea565b81115b156102f2576040516301f4bca560e01b815260040160405180910390fd5b6102fc8280610959565b6001858154811061030f5761030f610bcb565b906000526020600020019182610326929190610a29565b50505050565b604080518082019091526000815260606020820152600180548391118061035f57506001805461035c9190610aea565b81115b1561037d576040516301f4bca560e01b815260040160405180910390fd5b60006001848154811061039257610392610bcb565b9060005260206000200180546103a7906109a7565b80601f01602080910402602001604051908101604052809291908181526020018280546103d3906109a7565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505050905060018151111561044e57604051806040016040528085815260200182815250925050610491565b6040518060400160405280858152602001600261046a876105bf565b60405160200161047b929190610be1565b6040516020818303038152906040528152509250505b50919050565b61049f610515565b6001600160a01b0381166105095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6105128161056f565b50565b6000546001600160a01b031633146102ac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006105cc83610652565b600101905060008167ffffffffffffffff8111156105ec576105ec61077a565b6040519080825280601f01601f191660200182016040528015610616576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461062057509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106106915772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106106bd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106106db57662386f26fc10000830492506010015b6305f5e10083106106f3576305f5e100830492506008015b612710831061070757612710830492506004015b60648310610719576064830492506002015b600a8310610725576001015b92915050565b60006020828403121561049157600080fd5b60006020828403121561074f57600080fd5b813567ffffffffffffffff81111561076657600080fd5b6107728482850161072b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156107a257600080fd5b813567ffffffffffffffff808211156107ba57600080fd5b818401915084601f8301126107ce57600080fd5b8135818111156107e0576107e061077a565b604051601f8201601f19908116603f011681019083821181831017156108085761080861077a565b8160405282815287602084870101111561082157600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b8381101561085c578181015183820152602001610844565b50506000910152565b6000815180845261087d816020860160208601610841565b601f01601f19169290920160200192915050565b6020815260006108a46020830184610865565b9392505050565b600080604083850312156108be57600080fd5b82359150602083013567ffffffffffffffff8111156108dc57600080fd5b6108e88582860161072b565b9150509250929050565b60006020828403121561090457600080fd5b5035919050565b6020815281516020820152600060208301516040808401526107726060840182610865565b60006020828403121561094257600080fd5b81356001600160a01b03811681146108a457600080fd5b6000808335601e1984360301811261097057600080fd5b83018035915067ffffffffffffffff82111561098b57600080fd5b6020019150368190038213156109a057600080fd5b9250929050565b600181811c908216806109bb57607f821691505b60208210810361049157634e487b7160e01b600052602260045260246000fd5b601f82111561020357600081815260208120601f850160051c81016020861015610a025750805b601f850160051c820191505b81811015610a2157828155600101610a0e565b505050505050565b67ffffffffffffffff831115610a4157610a4161077a565b610a5583610a4f83546109a7565b836109db565b6000601f841160018114610a895760008515610a715750838201355b600019600387901b1c1916600186901b178355610ae3565b600083815260209020601f19861690835b82811015610aba5786850135825560209485019460019092019101610a9a565b5086821015610ad75760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561072557634e487b7160e01b600052601160045260246000fd5b815167ffffffffffffffff811115610b2557610b2561077a565b610b3981610b3384546109a7565b846109db565b602080601f831160018114610b6e5760008415610b565750858301515b600019600386901b1c1916600185901b178555610a21565b600085815260208120601f198616915b82811015610b9d57888601518255948401946001909101908401610b7e565b5085821015610bbb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000808454610bef816109a7565b60018281168015610c075760018114610c1c57610c4b565b60ff1984168752821515830287019450610c4b565b8860005260208060002060005b85811015610c425781548a820152908401908201610c29565b50505082870194505b505050508351610c5f818360208801610841565b0194935050505056fea2646970667358221220fc6eabd59ce3a8f7f7c7e4140fc92068b4346fca8fd774a19dc7bdcc19208af164736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xFBF CODESIZE SUB DUP1 PUSH3 0xFBF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xE1 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x7B JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 MLOAD LT ISZERO PUSH3 0x64 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH3 0x72 DUP4 DUP3 PUSH3 0x245 JUMP JUMPDEST POP POP POP PUSH3 0x311 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH3 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x10D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x137 JUMPI PUSH3 0x137 PUSH3 0xCB 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 0x162 JUMPI PUSH3 0x162 PUSH3 0xCB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x17B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH3 0x19F JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH3 0x180 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1CB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1EC 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 0x240 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 0x21B JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x23C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x227 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 0x261 JUMPI PUSH3 0x261 PUSH3 0xCB JUMP JUMPDEST PUSH3 0x279 DUP2 PUSH3 0x272 DUP5 SLOAD PUSH3 0x1B6 JUMP JUMPDEST DUP5 PUSH3 0x1F2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x2B1 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x298 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 0x23C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2E2 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2C1 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x301 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 0xC9E DUP1 PUSH3 0x321 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 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0x8C2576B2 EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xBD880FAE EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5F53B29 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3FA9B1E4 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x714C5398 EQ PUSH2 0xD6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x73D JUMP JUMPDEST PUSH2 0x154 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC1 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x790 JUMP JUMPDEST PUSH2 0x1CB JUMP JUMPDEST PUSH2 0xDE PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x29A JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x2AE 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 0xA5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x90B JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x930 JUMP JUMPDEST PUSH2 0x497 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x168 DUP3 DUP1 PUSH2 0x959 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188 SWAP2 DUP4 PUSH2 0xA29 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 SWAP2 PUSH2 0x199 SWAP2 PUSH2 0xAEA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 PUSH32 0x22B345891F7ED770623196D690A94CFB1906BDA0A1A7510E8526979C4792BC74 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1D3 PUSH2 0x515 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 MLOAD LT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH2 0x203 DUP4 DUP3 PUSH2 0xB0B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x217 SWAP1 PUSH2 0x9A7 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 0x243 SWAP1 PUSH2 0x9A7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x290 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 0x273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2A2 PUSH2 0x515 JUMP JUMPDEST PUSH2 0x2AC PUSH1 0x0 PUSH2 0x56F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6 PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 SWAP2 GT DUP1 PUSH2 0x2D4 JUMPI POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0xAEA JUMP JUMPDEST DUP2 GT JUMPDEST ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1F4BCA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2FC DUP3 DUP1 PUSH2 0x959 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x30F JUMPI PUSH2 0x30F PUSH2 0xBCB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP2 DUP3 PUSH2 0x326 SWAP3 SWAP2 SWAP1 PUSH2 0xA29 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 DUP1 SLOAD DUP4 SWAP2 GT DUP1 PUSH2 0x35F JUMPI POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0xAEA JUMP JUMPDEST DUP2 GT JUMPDEST ISZERO PUSH2 0x37D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1F4BCA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x392 PUSH2 0xBCB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x3A7 SWAP1 PUSH2 0x9A7 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 0x3D3 SWAP1 PUSH2 0x9A7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x420 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3F5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x420 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 0x403 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x1 DUP2 MLOAD GT ISZERO PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP3 POP POP PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 PUSH2 0x46A DUP8 PUSH2 0x5BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x47B SWAP3 SWAP2 SWAP1 PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP SWAP3 POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x49F PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x512 DUP2 PUSH2 0x56F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2AC 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 0x500 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 0x60 PUSH1 0x0 PUSH2 0x5CC DUP4 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5EC JUMPI PUSH2 0x5EC PUSH2 0x77A 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 0x616 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 PUSH2 0x620 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x691 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x6BD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x6DB JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x6F3 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x707 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x719 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x725 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x74F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x772 DUP5 DUP3 DUP6 ADD PUSH2 0x72B JUMP JUMPDEST 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 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7E0 JUMPI PUSH2 0x7E0 PUSH2 0x77A 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 0x808 JUMPI PUSH2 0x808 PUSH2 0x77A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x85C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x844 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x87D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x841 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 0x8A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x865 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E8 DUP6 DUP3 DUP7 ADD PUSH2 0x72B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH2 0x772 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x865 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x98B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x9A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x9BB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x491 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x203 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 0xA02 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA21 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA0E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0xA41 JUMPI PUSH2 0xA41 PUSH2 0x77A JUMP JUMPDEST PUSH2 0xA55 DUP4 PUSH2 0xA4F DUP4 SLOAD PUSH2 0x9A7 JUMP JUMPDEST DUP4 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0xA89 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0xA71 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 0xAE3 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xABA JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xA9A JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0xAD7 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 JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x725 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB25 PUSH2 0x77A JUMP JUMPDEST PUSH2 0xB39 DUP2 PUSH2 0xB33 DUP5 SLOAD PUSH2 0x9A7 JUMP JUMPDEST DUP5 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xB6E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xB56 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 0xA21 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xB9D JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xB7E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xBBB 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 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 SLOAD PUSH2 0xBEF DUP2 PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0xC07 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xC1C JUMPI PUSH2 0xC4B JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0xC4B JUMP JUMPDEST DUP9 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xC42 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0xC29 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP4 MLOAD PUSH2 0xC5F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x841 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC PUSH15 0xABD59CE3A8F7F7C7E4140FC92068B4 CALLVALUE PUSH16 0xCA8FD774A19DC7BDCC19208AF164736F PUSH13 0x63430008110033000000000000 ","sourceMap":"340:1873:80:-:0;;;831:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:19;719:10:47;936:18:19;:32::i;:::-;882:7:80;576:1;558:7;552:21;:25;548:89;;;600:26;;-1:-1:-1;;;600:26:80;;;;;;;;;;;548:89;901:8:::1;:18;912:7:::0;901:8;:18:::1;:::i;:::-;;831:95:::0;;340:1873;;2433:187:19;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:127:89:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1042;226:6;257:2;300;288:9;279:7;275:23;271:32;268:52;;;316:1;313;306:12;268:52;343:16;;-1:-1:-1;;;;;408:14:89;;;405:34;;;435:1;432;425:12;405:34;473:6;462:9;458:22;448:32;;518:7;511:4;507:2;503:13;499:27;489:55;;540:1;537;530:12;489:55;569:2;563:9;591:2;587;584:10;581:36;;;597:18;;:::i;:::-;672:2;666:9;640:2;726:13;;-1:-1:-1;;722:22:89;;;746:2;718:31;714:40;702:53;;;770:18;;;790:22;;;767:46;764:72;;;816:18;;:::i;:::-;856:10;852:2;845:22;891:2;883:6;876:18;931:7;926:2;921;917;913:11;909:20;906:33;903:53;;;952:1;949;942:12;903:53;974:1;965:10;;984:129;998:2;995:1;992:9;984:129;;;1086:10;;;1082:19;;1076:26;1055:14;;;1051:23;;1044:59;1009:10;;;;984:129;;;1155:1;1150:2;1145;1137:6;1133:15;1129:24;1122:35;1176:6;1166:16;;;;;;;;146:1042;;;;:::o;1193:380::-;1272:1;1268:12;;;;1315;;;1336:61;;1390:4;1382:6;1378:17;1368:27;;1336:61;1443:2;1435:6;1432:14;1412:18;1409:38;1406:161;;1489:10;1484:3;1480:20;1477:1;1470:31;1524:4;1521:1;1514:15;1552:4;1549:1;1542:15;1406:161;;1193:380;;;:::o;1704:545::-;1806:2;1801:3;1798:11;1795:448;;;1842:1;1867:5;1863:2;1856:17;1912:4;1908:2;1898:19;1982:2;1970:10;1966:19;1963:1;1959:27;1953:4;1949:38;2018:4;2006:10;2003:20;2000:47;;;-1:-1:-1;2041:4:89;2000:47;2096:2;2091:3;2087:12;2084:1;2080:20;2074:4;2070:31;2060:41;;2151:82;2169:2;2162:5;2159:13;2151:82;;;2214:17;;;2195:1;2184:13;2151:82;;;2155:3;;;1795:448;1704:545;;;:::o;2425:1352::-;2545:10;;-1:-1:-1;;;;;2567:30:89;;2564:56;;;2600:18;;:::i;:::-;2629:97;2719:6;2679:38;2711:4;2705:11;2679:38;:::i;:::-;2673:4;2629:97;:::i;:::-;2781:4;;2845:2;2834:14;;2862:1;2857:663;;;;3564:1;3581:6;3578:89;;;-1:-1:-1;3633:19:89;;;3627:26;3578:89;-1:-1:-1;;2382:1:89;2378:11;;;2374:24;2370:29;2360:40;2406:1;2402:11;;;2357:57;3680:81;;2827:944;;2857:663;1651:1;1644:14;;;1688:4;1675:18;;-1:-1:-1;;2893:20:89;;;3011:236;3025:7;3022:1;3019:14;3011:236;;;3114:19;;;3108:26;3093:42;;3206:27;;;;3174:1;3162:14;;;;3041:19;;3011:236;;;3015:3;3275:6;3266:7;3263:19;3260:201;;;3336:19;;;3330:26;-1:-1:-1;;3419:1:89;3415:14;;;3431:3;3411:24;3407:37;3403:42;3388:58;3373:74;;3260:201;-1:-1:-1;;;;;3507:1:89;3491:14;;;3487:22;3474:36;;-1:-1:-1;2425:1352:89:o;:::-;340:1873:80;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_5582":{"entryPoint":1301,"id":5582,"parameterSlots":0,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5639":{"entryPoint":1391,"id":5639,"parameterSlots":1,"returnSlots":0},"@createSkill_22852":{"entryPoint":340,"id":22852,"parameterSlots":1,"returnSlots":0},"@getBaseURI_22806":{"entryPoint":520,"id":22806,"parameterSlots":0,"returnSlots":1},"@getSkillCount_22748":{"entryPoint":null,"id":22748,"parameterSlots":0,"returnSlots":1},"@getSkill_22797":{"entryPoint":812,"id":22797,"parameterSlots":1,"returnSlots":1},"@log10_16040":{"entryPoint":1618,"id":16040,"parameterSlots":1,"returnSlots":1},"@owner_5568":{"entryPoint":null,"id":5568,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_5596":{"entryPoint":666,"id":5596,"parameterSlots":0,"returnSlots":0},"@setBaseURI_22822":{"entryPoint":459,"id":22822,"parameterSlots":1,"returnSlots":0},"@toString_14456":{"entryPoint":1471,"id":14456,"parameterSlots":1,"returnSlots":1},"@transferOwnership_5619":{"entryPoint":1175,"id":5619,"parameterSlots":1,"returnSlots":0},"@updateSkill_22874":{"entryPoint":686,"id":22874,"parameterSlots":2,"returnSlots":0},"abi_decode_struct_CreateSkill_calldata":{"entryPoint":1835,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2352,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":1936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_CreateSkill_$22114_calldata_ptr":{"entryPoint":1853,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_struct$_UpdateSkill_$22117_calldata_ptr":{"entryPoint":2219,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":2149,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3041,"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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2193,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_SkillView_$22122_memory_ptr__to_t_struct$_SkillView_$22122_memory_ptr__fromStack_reversed":{"entryPoint":2315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":2393,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2794,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":2523,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":2601,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":2827,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":2113,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":2471,"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_0x32":{"entryPoint":3019,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1914,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10689:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"115:76:89","statements":[{"nodeType":"YulAssignment","src":"125:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"137:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"148:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"133:3:89"},"nodeType":"YulFunctionCall","src":"133:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"125:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"167:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"178:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"160:6:89"},"nodeType":"YulFunctionCall","src":"160:25:89"},"nodeType":"YulExpressionStatement","src":"160:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"84:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"95:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"106:4:89","type":""}],"src":"14:177:89"},{"body":{"nodeType":"YulBlock","src":"270:85:89","statements":[{"body":{"nodeType":"YulBlock","src":"309:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"318:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"321:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"311:6:89"},"nodeType":"YulFunctionCall","src":"311:12:89"},"nodeType":"YulExpressionStatement","src":"311:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"291:3:89"},{"name":"offset","nodeType":"YulIdentifier","src":"296:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"287:3:89"},"nodeType":"YulFunctionCall","src":"287:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"305:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"283:3:89"},"nodeType":"YulFunctionCall","src":"283:25:89"},"nodeType":"YulIf","src":"280:45:89"},{"nodeType":"YulAssignment","src":"334:15:89","value":{"name":"offset","nodeType":"YulIdentifier","src":"343:6:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"334:5:89"}]}]},"name":"abi_decode_struct_CreateSkill_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"244:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"252:3:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"260:5:89","type":""}],"src":"196:159:89"},{"body":{"nodeType":"YulBlock","src":"462:263:89","statements":[{"body":{"nodeType":"YulBlock","src":"508:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"517:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"520:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"510:6:89"},"nodeType":"YulFunctionCall","src":"510:12:89"},"nodeType":"YulExpressionStatement","src":"510:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"483:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"492:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"479:3:89"},"nodeType":"YulFunctionCall","src":"479:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"504:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"475:3:89"},"nodeType":"YulFunctionCall","src":"475:32:89"},"nodeType":"YulIf","src":"472:52:89"},{"nodeType":"YulVariableDeclaration","src":"533:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"560:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"547:12:89"},"nodeType":"YulFunctionCall","src":"547:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"537:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"613:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"622:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"625:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"615:6:89"},"nodeType":"YulFunctionCall","src":"615:12:89"},"nodeType":"YulExpressionStatement","src":"615:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"585:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"593:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"582:2:89"},"nodeType":"YulFunctionCall","src":"582:30:89"},"nodeType":"YulIf","src":"579:50:89"},{"nodeType":"YulAssignment","src":"638:81:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"691:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"702:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"687:3:89"},"nodeType":"YulFunctionCall","src":"687:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"711:7:89"}],"functionName":{"name":"abi_decode_struct_CreateSkill_calldata","nodeType":"YulIdentifier","src":"648:38:89"},"nodeType":"YulFunctionCall","src":"648:71:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"638:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_CreateSkill_$22114_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"428:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"439:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"451:6:89","type":""}],"src":"360:365:89"},{"body":{"nodeType":"YulBlock","src":"762:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"779:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"786:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"791:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"782:3:89"},"nodeType":"YulFunctionCall","src":"782:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"772:6:89"},"nodeType":"YulFunctionCall","src":"772:31:89"},"nodeType":"YulExpressionStatement","src":"772:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"819:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"822:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"812:6:89"},"nodeType":"YulFunctionCall","src":"812:15:89"},"nodeType":"YulExpressionStatement","src":"812:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"843:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"846:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"836:6:89"},"nodeType":"YulFunctionCall","src":"836:15:89"},"nodeType":"YulExpressionStatement","src":"836:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"730:127:89"},{"body":{"nodeType":"YulBlock","src":"942:842:89","statements":[{"body":{"nodeType":"YulBlock","src":"988:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"997:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1000:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"990:6:89"},"nodeType":"YulFunctionCall","src":"990:12:89"},"nodeType":"YulExpressionStatement","src":"990:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"963:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"972:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"959:3:89"},"nodeType":"YulFunctionCall","src":"959:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"984:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"955:3:89"},"nodeType":"YulFunctionCall","src":"955:32:89"},"nodeType":"YulIf","src":"952:52:89"},{"nodeType":"YulVariableDeclaration","src":"1013:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1040:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1027:12:89"},"nodeType":"YulFunctionCall","src":"1027:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1017:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1059:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1069:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1063:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1114:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1123:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1126:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1116:6:89"},"nodeType":"YulFunctionCall","src":"1116:12:89"},"nodeType":"YulExpressionStatement","src":"1116:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1102:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1110:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1099:2:89"},"nodeType":"YulFunctionCall","src":"1099:14:89"},"nodeType":"YulIf","src":"1096:34:89"},{"nodeType":"YulVariableDeclaration","src":"1139:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1153:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1164:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1149:3:89"},"nodeType":"YulFunctionCall","src":"1149:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1143:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1219:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1228:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1231:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1221:6:89"},"nodeType":"YulFunctionCall","src":"1221:12:89"},"nodeType":"YulExpressionStatement","src":"1221:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1198:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1202:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1194:3:89"},"nodeType":"YulFunctionCall","src":"1194:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1209:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1190:3:89"},"nodeType":"YulFunctionCall","src":"1190:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1183:6:89"},"nodeType":"YulFunctionCall","src":"1183:35:89"},"nodeType":"YulIf","src":"1180:55:89"},{"nodeType":"YulVariableDeclaration","src":"1244:26:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1267:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1254:12:89"},"nodeType":"YulFunctionCall","src":"1254:16:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1248:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1293:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1295:16:89"},"nodeType":"YulFunctionCall","src":"1295:18:89"},"nodeType":"YulExpressionStatement","src":"1295:18:89"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1285:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1289:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1282:2:89"},"nodeType":"YulFunctionCall","src":"1282:10:89"},"nodeType":"YulIf","src":"1279:36:89"},{"nodeType":"YulVariableDeclaration","src":"1324:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1338:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1334:3:89"},"nodeType":"YulFunctionCall","src":"1334:7:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1328:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1350:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1370:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1364:5:89"},"nodeType":"YulFunctionCall","src":"1364:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1354:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1382:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1404:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1428:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1432:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1424:3:89"},"nodeType":"YulFunctionCall","src":"1424:13:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1439:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1420:3:89"},"nodeType":"YulFunctionCall","src":"1420:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"1444:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1416:3:89"},"nodeType":"YulFunctionCall","src":"1416:31:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1449:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1412:3:89"},"nodeType":"YulFunctionCall","src":"1412:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1400:3:89"},"nodeType":"YulFunctionCall","src":"1400:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1386:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1512:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1514:16:89"},"nodeType":"YulFunctionCall","src":"1514:18:89"},"nodeType":"YulExpressionStatement","src":"1514:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1471:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1483:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1468:2:89"},"nodeType":"YulFunctionCall","src":"1468:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1491:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1503:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1488:2:89"},"nodeType":"YulFunctionCall","src":"1488:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1465:2:89"},"nodeType":"YulFunctionCall","src":"1465:46:89"},"nodeType":"YulIf","src":"1462:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1550:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1554:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:89"},"nodeType":"YulFunctionCall","src":"1543:22:89"},"nodeType":"YulExpressionStatement","src":"1543:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1581:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"1589:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1574:6:89"},"nodeType":"YulFunctionCall","src":"1574:18:89"},"nodeType":"YulExpressionStatement","src":"1574:18:89"},{"body":{"nodeType":"YulBlock","src":"1638:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1647:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1650:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1640:6:89"},"nodeType":"YulFunctionCall","src":"1640:12:89"},"nodeType":"YulExpressionStatement","src":"1640:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1615:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"1619:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1611:3:89"},"nodeType":"YulFunctionCall","src":"1611:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1624:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:89"},"nodeType":"YulFunctionCall","src":"1607:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1629:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1604:2:89"},"nodeType":"YulFunctionCall","src":"1604:33:89"},"nodeType":"YulIf","src":"1601:53:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1680:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1688:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1676:3:89"},"nodeType":"YulFunctionCall","src":"1676:15:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1697:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"1701:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1693:3:89"},"nodeType":"YulFunctionCall","src":"1693:11:89"},{"name":"_3","nodeType":"YulIdentifier","src":"1706:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1663:12:89"},"nodeType":"YulFunctionCall","src":"1663:46:89"},"nodeType":"YulExpressionStatement","src":"1663:46:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1733:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"1741:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1729:3:89"},"nodeType":"YulFunctionCall","src":"1729:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"1746:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1725:3:89"},"nodeType":"YulFunctionCall","src":"1725:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"1751:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1718:6:89"},"nodeType":"YulFunctionCall","src":"1718:35:89"},"nodeType":"YulExpressionStatement","src":"1718:35:89"},{"nodeType":"YulAssignment","src":"1762:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1772:6:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1762:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"908:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"919:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"931:6:89","type":""}],"src":"862:922:89"},{"body":{"nodeType":"YulBlock","src":"1855:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1865:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1874:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1869:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1934:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1959:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"1964:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1955:3:89"},"nodeType":"YulFunctionCall","src":"1955:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1978:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"1983:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1974:3:89"},"nodeType":"YulFunctionCall","src":"1974:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1968:5:89"},"nodeType":"YulFunctionCall","src":"1968:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1948:6:89"},"nodeType":"YulFunctionCall","src":"1948:39:89"},"nodeType":"YulExpressionStatement","src":"1948:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1895:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"1898:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1892:2:89"},"nodeType":"YulFunctionCall","src":"1892:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1906:19:89","statements":[{"nodeType":"YulAssignment","src":"1908:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1917:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"1920:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1913:3:89"},"nodeType":"YulFunctionCall","src":"1913:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1908:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1888:3:89","statements":[]},"src":"1884:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2017:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"2022:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2013:3:89"},"nodeType":"YulFunctionCall","src":"2013:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"2031:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2006:6:89"},"nodeType":"YulFunctionCall","src":"2006:27:89"},"nodeType":"YulExpressionStatement","src":"2006:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1833:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1838:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"1843:6:89","type":""}],"src":"1789:250:89"},{"body":{"nodeType":"YulBlock","src":"2094:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2104:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2124:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2118:5:89"},"nodeType":"YulFunctionCall","src":"2118:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2108:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2146:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"2151:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2139:6:89"},"nodeType":"YulFunctionCall","src":"2139:19:89"},"nodeType":"YulExpressionStatement","src":"2139:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2206:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2213:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2202:3:89"},"nodeType":"YulFunctionCall","src":"2202:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2224:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2229:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2220:3:89"},"nodeType":"YulFunctionCall","src":"2220:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"2236:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"2167:34:89"},"nodeType":"YulFunctionCall","src":"2167:76:89"},"nodeType":"YulExpressionStatement","src":"2167:76:89"},{"nodeType":"YulAssignment","src":"2252:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2267:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2280:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2288:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2276:3:89"},"nodeType":"YulFunctionCall","src":"2276:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2297:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2293:3:89"},"nodeType":"YulFunctionCall","src":"2293:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2272:3:89"},"nodeType":"YulFunctionCall","src":"2272:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2263:3:89"},"nodeType":"YulFunctionCall","src":"2263:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"2304:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2259:3:89"},"nodeType":"YulFunctionCall","src":"2259:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2252:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2071:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2078:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2086:3:89","type":""}],"src":"2044:271:89"},{"body":{"nodeType":"YulBlock","src":"2441:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2469:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2451:6:89"},"nodeType":"YulFunctionCall","src":"2451:21:89"},"nodeType":"YulExpressionStatement","src":"2451:21:89"},{"nodeType":"YulAssignment","src":"2481:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2507:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2519:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2530:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2515:3:89"},"nodeType":"YulFunctionCall","src":"2515:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"2489:17:89"},"nodeType":"YulFunctionCall","src":"2489:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2481:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2410:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2421:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2432:4:89","type":""}],"src":"2320:220:89"},{"body":{"nodeType":"YulBlock","src":"2664:314:89","statements":[{"body":{"nodeType":"YulBlock","src":"2710:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2719:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2722:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2712:6:89"},"nodeType":"YulFunctionCall","src":"2712:12:89"},"nodeType":"YulExpressionStatement","src":"2712:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2685:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2694:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2681:3:89"},"nodeType":"YulFunctionCall","src":"2681:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2706:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2677:3:89"},"nodeType":"YulFunctionCall","src":"2677:32:89"},"nodeType":"YulIf","src":"2674:52:89"},{"nodeType":"YulAssignment","src":"2735:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2758:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2745:12:89"},"nodeType":"YulFunctionCall","src":"2745:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2735:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2777:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2808:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2819:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2804:3:89"},"nodeType":"YulFunctionCall","src":"2804:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2791:12:89"},"nodeType":"YulFunctionCall","src":"2791:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2781:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2866:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2875:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2878:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2868:6:89"},"nodeType":"YulFunctionCall","src":"2868:12:89"},"nodeType":"YulExpressionStatement","src":"2868:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2838:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2846:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2835:2:89"},"nodeType":"YulFunctionCall","src":"2835:30:89"},"nodeType":"YulIf","src":"2832:50:89"},{"nodeType":"YulAssignment","src":"2891:81:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2944:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2955:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2940:3:89"},"nodeType":"YulFunctionCall","src":"2940:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2964:7:89"}],"functionName":{"name":"abi_decode_struct_CreateSkill_calldata","nodeType":"YulIdentifier","src":"2901:38:89"},"nodeType":"YulFunctionCall","src":"2901:71:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2891:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_UpdateSkill_$22117_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2622:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2633:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2645:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2653:6:89","type":""}],"src":"2545:433:89"},{"body":{"nodeType":"YulBlock","src":"3084:102:89","statements":[{"nodeType":"YulAssignment","src":"3094:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3106:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3117:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3102:3:89"},"nodeType":"YulFunctionCall","src":"3102:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3094:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3136:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3151:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3167:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3172:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3163:3:89"},"nodeType":"YulFunctionCall","src":"3163:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"3176:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3159:3:89"},"nodeType":"YulFunctionCall","src":"3159:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3147:3:89"},"nodeType":"YulFunctionCall","src":"3147:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3129:6:89"},"nodeType":"YulFunctionCall","src":"3129:51:89"},"nodeType":"YulExpressionStatement","src":"3129:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3053:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3064:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3075:4:89","type":""}],"src":"2983:203:89"},{"body":{"nodeType":"YulBlock","src":"3261:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"3307:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3316:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3319:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3309:6:89"},"nodeType":"YulFunctionCall","src":"3309:12:89"},"nodeType":"YulExpressionStatement","src":"3309:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3282:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3291:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3278:3:89"},"nodeType":"YulFunctionCall","src":"3278:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3303:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3274:3:89"},"nodeType":"YulFunctionCall","src":"3274:32:89"},"nodeType":"YulIf","src":"3271:52:89"},{"nodeType":"YulAssignment","src":"3332:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3355:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3342:12:89"},"nodeType":"YulFunctionCall","src":"3342:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3332:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3227:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3238:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3250:6:89","type":""}],"src":"3191:180:89"},{"body":{"nodeType":"YulBlock","src":"3533:249:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3550:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3561:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3543:6:89"},"nodeType":"YulFunctionCall","src":"3543:21:89"},"nodeType":"YulExpressionStatement","src":"3543:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3584:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3595:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3580:3:89"},"nodeType":"YulFunctionCall","src":"3580:18:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3606:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3600:5:89"},"nodeType":"YulFunctionCall","src":"3600:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:89"},"nodeType":"YulFunctionCall","src":"3573:41:89"},"nodeType":"YulExpressionStatement","src":"3573:41:89"},{"nodeType":"YulVariableDeclaration","src":"3623:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3653:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3661:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3649:3:89"},"nodeType":"YulFunctionCall","src":"3649:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3643:5:89"},"nodeType":"YulFunctionCall","src":"3643:22:89"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"3627:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3685:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3696:4:89","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3681:3:89"},"nodeType":"YulFunctionCall","src":"3681:20:89"},{"kind":"number","nodeType":"YulLiteral","src":"3703:4:89","type":"","value":"0x40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3674:6:89"},"nodeType":"YulFunctionCall","src":"3674:34:89"},"nodeType":"YulExpressionStatement","src":"3674:34:89"},{"nodeType":"YulAssignment","src":"3717:59:89","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"3743:12:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3761:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3772:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3757:3:89"},"nodeType":"YulFunctionCall","src":"3757:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"3725:17:89"},"nodeType":"YulFunctionCall","src":"3725:51:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3717:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_SkillView_$22122_memory_ptr__to_t_struct$_SkillView_$22122_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3502:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3513:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3524:4:89","type":""}],"src":"3376:406:89"},{"body":{"nodeType":"YulBlock","src":"3857:216:89","statements":[{"body":{"nodeType":"YulBlock","src":"3903:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3912:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3915:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3905:6:89"},"nodeType":"YulFunctionCall","src":"3905:12:89"},"nodeType":"YulExpressionStatement","src":"3905:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3878:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3887:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3874:3:89"},"nodeType":"YulFunctionCall","src":"3874:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3899:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3870:3:89"},"nodeType":"YulFunctionCall","src":"3870:32:89"},"nodeType":"YulIf","src":"3867:52:89"},{"nodeType":"YulVariableDeclaration","src":"3928:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3954:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3941:12:89"},"nodeType":"YulFunctionCall","src":"3941:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3932:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4027:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4036:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4039:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4029:6:89"},"nodeType":"YulFunctionCall","src":"4029:12:89"},"nodeType":"YulExpressionStatement","src":"4029:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3986:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3997:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4012:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4017:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4008:3:89"},"nodeType":"YulFunctionCall","src":"4008:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"4021:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4004:3:89"},"nodeType":"YulFunctionCall","src":"4004:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3993:3:89"},"nodeType":"YulFunctionCall","src":"3993:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3983:2:89"},"nodeType":"YulFunctionCall","src":"3983:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3976:6:89"},"nodeType":"YulFunctionCall","src":"3976:50:89"},"nodeType":"YulIf","src":"3973:70:89"},{"nodeType":"YulAssignment","src":"4052:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"4062:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4052:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3823:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3834:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3846:6:89","type":""}],"src":"3787:286:89"},{"body":{"nodeType":"YulBlock","src":"4173:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"4183:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"4222:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4209:12:89"},"nodeType":"YulFunctionCall","src":"4209:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"4187:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4323:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4332:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4335:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4325:6:89"},"nodeType":"YulFunctionCall","src":"4325:12:89"},"nodeType":"YulExpressionStatement","src":"4325:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"4257:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4285:12:89"},"nodeType":"YulFunctionCall","src":"4285:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"4301:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4281:3:89"},"nodeType":"YulFunctionCall","src":"4281:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4316:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4312:3:89"},"nodeType":"YulFunctionCall","src":"4312:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4277:3:89"},"nodeType":"YulFunctionCall","src":"4277:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4253:3:89"},"nodeType":"YulFunctionCall","src":"4253:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4246:6:89"},"nodeType":"YulFunctionCall","src":"4246:76:89"},"nodeType":"YulIf","src":"4243:96:89"},{"nodeType":"YulVariableDeclaration","src":"4348:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"4366:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"4376:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4362:3:89"},"nodeType":"YulFunctionCall","src":"4362:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"4352:6:89","type":""}]},{"nodeType":"YulAssignment","src":"4404:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"4427:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4414:12:89"},"nodeType":"YulFunctionCall","src":"4414:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4404:6:89"}]},{"body":{"nodeType":"YulBlock","src":"4477:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4486:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4489:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4479:6:89"},"nodeType":"YulFunctionCall","src":"4479:12:89"},"nodeType":"YulExpressionStatement","src":"4479:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4449:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4457:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4446:2:89"},"nodeType":"YulFunctionCall","src":"4446:30:89"},"nodeType":"YulIf","src":"4443:50:89"},{"nodeType":"YulAssignment","src":"4502:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"4514:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4522:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4510:3:89"},"nodeType":"YulFunctionCall","src":"4510:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"4502:4:89"}]},{"body":{"nodeType":"YulBlock","src":"4578:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4587:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4590:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4580:6:89"},"nodeType":"YulFunctionCall","src":"4580:12:89"},"nodeType":"YulExpressionStatement","src":"4580:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"4543:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"4553:12:89"},"nodeType":"YulFunctionCall","src":"4553:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"4569:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4549:3:89"},"nodeType":"YulFunctionCall","src":"4549:27:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"4539:3:89"},"nodeType":"YulFunctionCall","src":"4539:38:89"},"nodeType":"YulIf","src":"4536:58:89"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"4130:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"4140:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"4156:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"4162:6:89","type":""}],"src":"4078:522:89"},{"body":{"nodeType":"YulBlock","src":"4660:325:89","statements":[{"nodeType":"YulAssignment","src":"4670:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4684:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"4687:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4680:3:89"},"nodeType":"YulFunctionCall","src":"4680:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4670:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4701:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"4731:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"4737:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4727:3:89"},"nodeType":"YulFunctionCall","src":"4727:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"4705:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4778:31:89","statements":[{"nodeType":"YulAssignment","src":"4780:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4794:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4802:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4790:3:89"},"nodeType":"YulFunctionCall","src":"4790:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"4780:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4758:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4751:6:89"},"nodeType":"YulFunctionCall","src":"4751:26:89"},"nodeType":"YulIf","src":"4748:61:89"},{"body":{"nodeType":"YulBlock","src":"4868:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4889:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4896:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4901:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4892:3:89"},"nodeType":"YulFunctionCall","src":"4892:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4882:6:89"},"nodeType":"YulFunctionCall","src":"4882:31:89"},"nodeType":"YulExpressionStatement","src":"4882:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4933:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4936:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4926:6:89"},"nodeType":"YulFunctionCall","src":"4926:15:89"},"nodeType":"YulExpressionStatement","src":"4926:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4961:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4964:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4954:6:89"},"nodeType":"YulFunctionCall","src":"4954:15:89"},"nodeType":"YulExpressionStatement","src":"4954:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"4824:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4847:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4855:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4844:2:89"},"nodeType":"YulFunctionCall","src":"4844:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4821:2:89"},"nodeType":"YulFunctionCall","src":"4821:38:89"},"nodeType":"YulIf","src":"4818:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"4640:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"4649:6:89","type":""}],"src":"4605:380:89"},{"body":{"nodeType":"YulBlock","src":"5046:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5063:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"5066:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5056:6:89"},"nodeType":"YulFunctionCall","src":"5056:14:89"},"nodeType":"YulExpressionStatement","src":"5056:14:89"},{"nodeType":"YulAssignment","src":"5079:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5097:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5100:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5087:9:89"},"nodeType":"YulFunctionCall","src":"5087:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"5079:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"5029:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"5037:4:89","type":""}],"src":"4990:121:89"},{"body":{"nodeType":"YulBlock","src":"5197:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"5230:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"5244:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"5254:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5248:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5275:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"5279:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5268:6:89"},"nodeType":"YulFunctionCall","src":"5268:17:89"},"nodeType":"YulExpressionStatement","src":"5268:17:89"},{"nodeType":"YulVariableDeclaration","src":"5298:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5320:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5324:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"5310:9:89"},"nodeType":"YulFunctionCall","src":"5310:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"5302:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5342:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5365:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5375:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5382:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"5394:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5378:3:89"},"nodeType":"YulFunctionCall","src":"5378:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5371:3:89"},"nodeType":"YulFunctionCall","src":"5371:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5361:3:89"},"nodeType":"YulFunctionCall","src":"5361:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"5346:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5436:23:89","statements":[{"nodeType":"YulAssignment","src":"5438:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"5453:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"5438:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5418:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"5430:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5415:2:89"},"nodeType":"YulFunctionCall","src":"5415:20:89"},"nodeType":"YulIf","src":"5412:47:89"},{"nodeType":"YulVariableDeclaration","src":"5472:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5486:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5496:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"5503:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"5508:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5499:3:89"},"nodeType":"YulFunctionCall","src":"5499:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5492:3:89"},"nodeType":"YulFunctionCall","src":"5492:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5482:3:89"},"nodeType":"YulFunctionCall","src":"5482:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5476:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5526:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"5539:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"5530:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5624:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5633:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5640:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"5626:6:89"},"nodeType":"YulFunctionCall","src":"5626:17:89"},"nodeType":"YulExpressionStatement","src":"5626:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5574:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"5581:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5571:2:89"},"nodeType":"YulFunctionCall","src":"5571:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5585:26:89","statements":[{"nodeType":"YulAssignment","src":"5587:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"5600:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"5607:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5596:3:89"},"nodeType":"YulFunctionCall","src":"5596:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"5587:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"5567:3:89","statements":[]},"src":"5563:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"5213:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"5218:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5210:2:89"},"nodeType":"YulFunctionCall","src":"5210:11:89"},"nodeType":"YulIf","src":"5207:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"5169:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"5176:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"5181:10:89","type":""}],"src":"5116:545:89"},{"body":{"nodeType":"YulBlock","src":"5751:81:89","statements":[{"nodeType":"YulAssignment","src":"5761:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5776:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5794:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"5797:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5790:3:89"},"nodeType":"YulFunctionCall","src":"5790:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5807:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5803:3:89"},"nodeType":"YulFunctionCall","src":"5803:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5786:3:89"},"nodeType":"YulFunctionCall","src":"5786:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5782:3:89"},"nodeType":"YulFunctionCall","src":"5782:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5772:3:89"},"nodeType":"YulFunctionCall","src":"5772:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5818:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"5821:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5814:3:89"},"nodeType":"YulFunctionCall","src":"5814:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5769:2:89"},"nodeType":"YulFunctionCall","src":"5769:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"5761:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5728:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"5734:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"5742:4:89","type":""}],"src":"5666:166:89"},{"body":{"nodeType":"YulBlock","src":"5940:1103:89","statements":[{"body":{"nodeType":"YulBlock","src":"5981:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5983:16:89"},"nodeType":"YulFunctionCall","src":"5983:18:89"},"nodeType":"YulExpressionStatement","src":"5983:18:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"5956:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"5961:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5953:2:89"},"nodeType":"YulFunctionCall","src":"5953:27:89"},"nodeType":"YulIf","src":"5950:53:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"6056:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"6094:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6088:5:89"},"nodeType":"YulFunctionCall","src":"6088:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"6062:25:89"},"nodeType":"YulFunctionCall","src":"6062:38:89"},{"name":"len","nodeType":"YulIdentifier","src":"6102:3:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"6012:43:89"},"nodeType":"YulFunctionCall","src":"6012:94:89"},"nodeType":"YulExpressionStatement","src":"6012:94:89"},{"nodeType":"YulVariableDeclaration","src":"6115:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6132:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"6119:9:89","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"6176:609:89","statements":[{"nodeType":"YulVariableDeclaration","src":"6190:32:89","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"6209:3:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6218:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6214:3:89"},"nodeType":"YulFunctionCall","src":"6214:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6205:3:89"},"nodeType":"YulFunctionCall","src":"6205:17:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"6194:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6235:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"6279:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"6249:29:89"},"nodeType":"YulFunctionCall","src":"6249:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"6239:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6297:18:89","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"6306:9:89"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6301:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6385:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"6410:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6435:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"6440:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6431:3:89"},"nodeType":"YulFunctionCall","src":"6431:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6418:12:89"},"nodeType":"YulFunctionCall","src":"6418:33:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6403:6:89"},"nodeType":"YulFunctionCall","src":"6403:49:89"},"nodeType":"YulExpressionStatement","src":"6403:49:89"},{"nodeType":"YulAssignment","src":"6469:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"6483:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6491:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:89"},"nodeType":"YulFunctionCall","src":"6479:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"6469:6:89"}]},{"nodeType":"YulAssignment","src":"6510:33:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"6527:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6538:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6523:3:89"},"nodeType":"YulFunctionCall","src":"6523:20:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"6510:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6339:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"6342:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6336:2:89"},"nodeType":"YulFunctionCall","src":"6336:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6351:21:89","statements":[{"nodeType":"YulAssignment","src":"6353:17:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6362:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"6365:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6358:3:89"},"nodeType":"YulFunctionCall","src":"6358:12:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6353:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"6332:3:89","statements":[]},"src":"6328:229:89"},{"body":{"nodeType":"YulBlock","src":"6602:127:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"6627:6:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6656:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"6661:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6652:3:89"},"nodeType":"YulFunctionCall","src":"6652:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6639:12:89"},"nodeType":"YulFunctionCall","src":"6639:33:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6690:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"6693:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6686:3:89"},"nodeType":"YulFunctionCall","src":"6686:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"6699:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6682:3:89"},"nodeType":"YulFunctionCall","src":"6682:21:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6709:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6705:3:89"},"nodeType":"YulFunctionCall","src":"6705:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6678:3:89"},"nodeType":"YulFunctionCall","src":"6678:34:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6674:3:89"},"nodeType":"YulFunctionCall","src":"6674:39:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6635:3:89"},"nodeType":"YulFunctionCall","src":"6635:79:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6620:6:89"},"nodeType":"YulFunctionCall","src":"6620:95:89"},"nodeType":"YulExpressionStatement","src":"6620:95:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"6576:7:89"},{"name":"len","nodeType":"YulIdentifier","src":"6585:3:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6573:2:89"},"nodeType":"YulFunctionCall","src":"6573:16:89"},"nodeType":"YulIf","src":"6570:159:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"6749:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6763:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"6766:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6759:3:89"},"nodeType":"YulFunctionCall","src":"6759:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"6772:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6755:3:89"},"nodeType":"YulFunctionCall","src":"6755:19:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6742:6:89"},"nodeType":"YulFunctionCall","src":"6742:33:89"},"nodeType":"YulExpressionStatement","src":"6742:33:89"}]},"nodeType":"YulCase","src":"6169:616:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6174:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"6802:235:89","statements":[{"nodeType":"YulVariableDeclaration","src":"6816:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"6829:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6820:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6862:74:89","statements":[{"nodeType":"YulAssignment","src":"6880:42:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"6906:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"6911:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6902:3:89"},"nodeType":"YulFunctionCall","src":"6902:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6889:12:89"},"nodeType":"YulFunctionCall","src":"6889:33:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6880:5:89"}]}]},"condition":{"name":"len","nodeType":"YulIdentifier","src":"6846:3:89"},"nodeType":"YulIf","src":"6843:93:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"6956:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7015:5:89"},{"name":"len","nodeType":"YulIdentifier","src":"7022:3:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"6962:52:89"},"nodeType":"YulFunctionCall","src":"6962:64:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"6949:6:89"},"nodeType":"YulFunctionCall","src":"6949:78:89"},"nodeType":"YulExpressionStatement","src":"6949:78:89"}]},"nodeType":"YulCase","src":"6794:243:89","value":"default"}],"expression":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"6152:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6149:2:89"},"nodeType":"YulFunctionCall","src":"6149:11:89"},"nodeType":"YulSwitch","src":"6142:895:89"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"5920:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"5926:3:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"5931:3:89","type":""}],"src":"5837:1206:89"},{"body":{"nodeType":"YulBlock","src":"7097:176:89","statements":[{"nodeType":"YulAssignment","src":"7107:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"7119:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"7122:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7115:3:89"},"nodeType":"YulFunctionCall","src":"7115:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"7107:4:89"}]},{"body":{"nodeType":"YulBlock","src":"7156:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7177:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7184:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7189:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7180:3:89"},"nodeType":"YulFunctionCall","src":"7180:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7170:6:89"},"nodeType":"YulFunctionCall","src":"7170:31:89"},"nodeType":"YulExpressionStatement","src":"7170:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7221:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7224:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7214:6:89"},"nodeType":"YulFunctionCall","src":"7214:15:89"},"nodeType":"YulExpressionStatement","src":"7214:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7249:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7252:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7242:6:89"},"nodeType":"YulFunctionCall","src":"7242:15:89"},"nodeType":"YulExpressionStatement","src":"7242:15:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"7139:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"7145:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7136:2:89"},"nodeType":"YulFunctionCall","src":"7136:11:89"},"nodeType":"YulIf","src":"7133:134:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"7079:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"7082:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"7088:4:89","type":""}],"src":"7048:225:89"},{"body":{"nodeType":"YulBlock","src":"7374:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7384:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7404:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7398:5:89"},"nodeType":"YulFunctionCall","src":"7398:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"7388:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7451:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7453:16:89"},"nodeType":"YulFunctionCall","src":"7453:18:89"},"nodeType":"YulExpressionStatement","src":"7453:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7423:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7431:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7420:2:89"},"nodeType":"YulFunctionCall","src":"7420:30:89"},"nodeType":"YulIf","src":"7417:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"7526:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"7564:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"7558:5:89"},"nodeType":"YulFunctionCall","src":"7558:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"7532:25:89"},"nodeType":"YulFunctionCall","src":"7532:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"7572:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"7482:43:89"},"nodeType":"YulFunctionCall","src":"7482:97:89"},"nodeType":"YulExpressionStatement","src":"7482:97:89"},{"nodeType":"YulVariableDeclaration","src":"7588:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7605:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"7592:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7615:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7634:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"7619:11:89","type":""}]},{"nodeType":"YulAssignment","src":"7647:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"7660:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"7647:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"7717:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"7731:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7750:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7762:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7758:3:89"},"nodeType":"YulFunctionCall","src":"7758:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7746:3:89"},"nodeType":"YulFunctionCall","src":"7746:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"7735:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7779:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"7823:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"7793:29:89"},"nodeType":"YulFunctionCall","src":"7793:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"7783:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7841:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7850:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7845:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7928:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"7953:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7971:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"7976:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7967:3:89"},"nodeType":"YulFunctionCall","src":"7967:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7961:5:89"},"nodeType":"YulFunctionCall","src":"7961:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"7946:6:89"},"nodeType":"YulFunctionCall","src":"7946:42:89"},"nodeType":"YulExpressionStatement","src":"7946:42:89"},{"nodeType":"YulAssignment","src":"8005:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8019:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8027:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8015:3:89"},"nodeType":"YulFunctionCall","src":"8015:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8005:6:89"}]},{"nodeType":"YulAssignment","src":"8046:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"8063:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"8074:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8059:3:89"},"nodeType":"YulFunctionCall","src":"8059:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"8046:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7875:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"7878:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7872:2:89"},"nodeType":"YulFunctionCall","src":"7872:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7887:28:89","statements":[{"nodeType":"YulAssignment","src":"7889:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7898:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"7901:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7894:3:89"},"nodeType":"YulFunctionCall","src":"7894:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7889:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"7868:3:89","statements":[]},"src":"7864:236:89"},{"body":{"nodeType":"YulBlock","src":"8148:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"8166:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8193:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"8198:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8189:3:89"},"nodeType":"YulFunctionCall","src":"8189:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8183:5:89"},"nodeType":"YulFunctionCall","src":"8183:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"8170:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"8233:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"8245:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8272:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"8275:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8268:3:89"},"nodeType":"YulFunctionCall","src":"8268:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"8284:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8264:3:89"},"nodeType":"YulFunctionCall","src":"8264:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8294:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8290:3:89"},"nodeType":"YulFunctionCall","src":"8290:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8260:3:89"},"nodeType":"YulFunctionCall","src":"8260:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8256:3:89"},"nodeType":"YulFunctionCall","src":"8256:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8241:3:89"},"nodeType":"YulFunctionCall","src":"8241:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8226:6:89"},"nodeType":"YulFunctionCall","src":"8226:74:89"},"nodeType":"YulExpressionStatement","src":"8226:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"8119:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"8128:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8116:2:89"},"nodeType":"YulFunctionCall","src":"8116:19:89"},"nodeType":"YulIf","src":"8113:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"8334:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8348:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"8351:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8344:3:89"},"nodeType":"YulFunctionCall","src":"8344:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"8360:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8340:3:89"},"nodeType":"YulFunctionCall","src":"8340:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8327:6:89"},"nodeType":"YulFunctionCall","src":"8327:36:89"},"nodeType":"YulExpressionStatement","src":"8327:36:89"}]},"nodeType":"YulCase","src":"7710:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7715:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"8390:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"8404:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"8417:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8408:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8453:67:89","statements":[{"nodeType":"YulAssignment","src":"8471:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8490:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"8495:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8486:3:89"},"nodeType":"YulFunctionCall","src":"8486:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8480:5:89"},"nodeType":"YulFunctionCall","src":"8480:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8471:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"8434:6:89"},"nodeType":"YulIf","src":"8431:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"8540:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8599:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"8606:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"8546:52:89"},"nodeType":"YulFunctionCall","src":"8546:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"8533:6:89"},"nodeType":"YulFunctionCall","src":"8533:81:89"},"nodeType":"YulExpressionStatement","src":"8533:81:89"}]},"nodeType":"YulCase","src":"8382:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"7690:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7698:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7687:2:89"},"nodeType":"YulFunctionCall","src":"7687:14:89"},"nodeType":"YulSwitch","src":"7680:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"7359:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"7365:3:89","type":""}],"src":"7278:1352:89"},{"body":{"nodeType":"YulBlock","src":"8667:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8684:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8691:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8696:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8687:3:89"},"nodeType":"YulFunctionCall","src":"8687:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8677:6:89"},"nodeType":"YulFunctionCall","src":"8677:31:89"},"nodeType":"YulExpressionStatement","src":"8677:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8724:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8727:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8717:6:89"},"nodeType":"YulFunctionCall","src":"8717:15:89"},"nodeType":"YulExpressionStatement","src":"8717:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8748:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8751:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8741:6:89"},"nodeType":"YulFunctionCall","src":"8741:15:89"},"nodeType":"YulExpressionStatement","src":"8741:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"8635:127:89"},{"body":{"nodeType":"YulBlock","src":"8951:836:89","statements":[{"nodeType":"YulVariableDeclaration","src":"8961:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"8972:1:89","type":"","value":"0"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"8965:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8982:30:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9005:6:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"8999:5:89"},"nodeType":"YulFunctionCall","src":"8999:13:89"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"8986:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9021:50:89","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"9061:9:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"9035:25:89"},"nodeType":"YulFunctionCall","src":"9035:36:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9025:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9080:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9090:1:89","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9084:2:89","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"9141:126:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9162:3:89"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"9171:9:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9186:3:89","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9182:3:89"},"nodeType":"YulFunctionCall","src":"9182:8:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9167:3:89"},"nodeType":"YulFunctionCall","src":"9167:24:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9155:6:89"},"nodeType":"YulFunctionCall","src":"9155:37:89"},"nodeType":"YulExpressionStatement","src":"9155:37:89"},{"nodeType":"YulAssignment","src":"9205:52:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9216:3:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9225:6:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9247:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9240:6:89"},"nodeType":"YulFunctionCall","src":"9240:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9233:6:89"},"nodeType":"YulFunctionCall","src":"9233:22:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"9221:3:89"},"nodeType":"YulFunctionCall","src":"9221:35:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9212:3:89"},"nodeType":"YulFunctionCall","src":"9212:45:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9205:3:89"}]}]},"nodeType":"YulCase","src":"9134:133:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9139:1:89","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"9283:349:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9304:1:89","type":"","value":"0"},{"name":"value0","nodeType":"YulIdentifier","src":"9307:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9297:6:89"},"nodeType":"YulFunctionCall","src":"9297:17:89"},"nodeType":"YulExpressionStatement","src":"9297:17:89"},{"nodeType":"YulVariableDeclaration","src":"9327:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9337:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9331:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9354:31:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9379:1:89","type":"","value":"0"},{"name":"_2","nodeType":"YulIdentifier","src":"9382:2:89"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9369:9:89"},"nodeType":"YulFunctionCall","src":"9369:16:89"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"9358:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9398:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9407:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9402:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9475:111:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9504:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"9509:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9500:3:89"},"nodeType":"YulFunctionCall","src":"9500:11:89"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"9519:7:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"9513:5:89"},"nodeType":"YulFunctionCall","src":"9513:14:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9493:6:89"},"nodeType":"YulFunctionCall","src":"9493:35:89"},"nodeType":"YulExpressionStatement","src":"9493:35:89"},{"nodeType":"YulAssignment","src":"9545:27:89","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"9560:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9569:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:89"},"nodeType":"YulFunctionCall","src":"9556:16:89"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"9545:7:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9432:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"9435:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9429:2:89"},"nodeType":"YulFunctionCall","src":"9429:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9443:19:89","statements":[{"nodeType":"YulAssignment","src":"9445:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9454:1:89"},{"name":"_2","nodeType":"YulIdentifier","src":"9457:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:89"},"nodeType":"YulFunctionCall","src":"9450:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9445:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"9425:3:89","statements":[]},"src":"9421:165:89"},{"nodeType":"YulAssignment","src":"9599:23:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9610:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"9615:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9606:3:89"},"nodeType":"YulFunctionCall","src":"9606:16:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9599:3:89"}]}]},"nodeType":"YulCase","src":"9276:356:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9281:1:89","type":"","value":"1"}}],"expression":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"9111:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9122:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9107:3:89"},"nodeType":"YulFunctionCall","src":"9107:18:89"},"nodeType":"YulSwitch","src":"9100:532:89"},{"nodeType":"YulVariableDeclaration","src":"9641:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9663:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9657:5:89"},"nodeType":"YulFunctionCall","src":"9657:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"9645:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9718:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9726:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9714:3:89"},"nodeType":"YulFunctionCall","src":"9714:17:89"},{"name":"ret","nodeType":"YulIdentifier","src":"9733:3:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"9738:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"9679:34:89"},"nodeType":"YulFunctionCall","src":"9679:68:89"},"nodeType":"YulExpressionStatement","src":"9679:68:89"},{"nodeType":"YulAssignment","src":"9756:25:89","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"9767:3:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"9772:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9763:3:89"},"nodeType":"YulFunctionCall","src":"9763:18:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9756:3:89"}]}]},"name":"abi_encode_tuple_packed_t_string_storage_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":"8919:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8924:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8932:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8943:3:89","type":""}],"src":"8767:1020:89"},{"body":{"nodeType":"YulBlock","src":"9966:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9983:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9994:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9976:6:89"},"nodeType":"YulFunctionCall","src":"9976:21:89"},"nodeType":"YulExpressionStatement","src":"9976:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10017:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10028:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10013:3:89"},"nodeType":"YulFunctionCall","src":"10013:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10033:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10006:6:89"},"nodeType":"YulFunctionCall","src":"10006:30:89"},"nodeType":"YulExpressionStatement","src":"10006:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10056:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10067:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10052:3:89"},"nodeType":"YulFunctionCall","src":"10052:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"10072:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10045:6:89"},"nodeType":"YulFunctionCall","src":"10045:62:89"},"nodeType":"YulExpressionStatement","src":"10045:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10127:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10138:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10123:3:89"},"nodeType":"YulFunctionCall","src":"10123:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"10143:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10116:6:89"},"nodeType":"YulFunctionCall","src":"10116:36:89"},"nodeType":"YulExpressionStatement","src":"10116:36:89"},{"nodeType":"YulAssignment","src":"10161:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10173:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10184:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10169:3:89"},"nodeType":"YulFunctionCall","src":"10169:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10161:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9943:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9957:4:89","type":""}],"src":"9792:402:89"},{"body":{"nodeType":"YulBlock","src":"10373:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10390:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10401:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10383:6:89"},"nodeType":"YulFunctionCall","src":"10383:21:89"},"nodeType":"YulExpressionStatement","src":"10383:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10424:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10435:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10420:3:89"},"nodeType":"YulFunctionCall","src":"10420:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10413:6:89"},"nodeType":"YulFunctionCall","src":"10413:30:89"},"nodeType":"YulExpressionStatement","src":"10413:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10463:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10474:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10459:3:89"},"nodeType":"YulFunctionCall","src":"10459:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"10479:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:89"},"nodeType":"YulFunctionCall","src":"10452:62:89"},"nodeType":"YulExpressionStatement","src":"10452:62:89"},{"nodeType":"YulAssignment","src":"10523:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10535:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10546:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10531:3:89"},"nodeType":"YulFunctionCall","src":"10531:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10523:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10350:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10364:4:89","type":""}],"src":"10199:356:89"},{"body":{"nodeType":"YulBlock","src":"10592:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10609:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10616:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10621:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10612:3:89"},"nodeType":"YulFunctionCall","src":"10612:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10602:6:89"},"nodeType":"YulFunctionCall","src":"10602:31:89"},"nodeType":"YulExpressionStatement","src":"10602:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10649:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10652:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10642:6:89"},"nodeType":"YulFunctionCall","src":"10642:15:89"},"nodeType":"YulExpressionStatement","src":"10642:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10673:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10676:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10666:6:89"},"nodeType":"YulFunctionCall","src":"10666:15:89"},"nodeType":"YulExpressionStatement","src":"10666:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10560:127:89"}]},"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_decode_struct_CreateSkill_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 32) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_struct$_CreateSkill_$22114_calldata_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_struct_CreateSkill_calldata(add(headStart, offset), dataEnd)\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_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        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 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value0 := memPtr\n    }\n    function copy_memory_to_memory_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_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_uint256t_struct$_UpdateSkill_$22117_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_struct_CreateSkill_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_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_struct$_SkillView_$22122_memory_ptr__to_t_struct$_SkillView_$22122_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), mload(value0))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 0x40), 0x40)\n        tail := abi_encode_string(memberValue0, add(headStart, 96))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function 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_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, not(31))\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), not(0)))))\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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\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, 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 panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let ret := 0\n        let slotValue := sload(value0)\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, not(255)))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value0)\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        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), ret, length_1)\n        end := add(ret, length_1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146100eb5780638c2576b2146100f35780638da5cb5b14610106578063bd880fae14610121578063f2fde38b1461014157600080fd5b806305f53b29146100985780633fa9b1e4146100ae57806355f804b3146100c3578063714c5398146100d6575b600080fd5b6001546040519081526020015b60405180910390f35b6100c16100bc36600461073d565b610154565b005b6100c16100d1366004610790565b6101cb565b6100de610208565b6040516100a59190610891565b6100c161029a565b6100c16101013660046108ab565b6102ae565b6000546040516001600160a01b0390911681526020016100a5565b61013461012f3660046108f2565b61032c565b6040516100a5919061090b565b6100c161014f366004610930565b610497565b61015c610515565b60016101688280610959565b825460018101845560009384526020909320909201916101889183610a29565b506001805460009161019991610aea565b60405190915081907f22b345891f7ed770623196d690a94cfb1906bda0a1a7510e8526979c4792bc7490600090a25050565b6101d3610515565b806001815110156101f7576040516348be0eb360e01b815260040160405180910390fd5b60026102038382610b0b565b505050565b606060028054610217906109a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610243906109a7565b80156102905780601f1061026557610100808354040283529160200191610290565b820191906000526020600020905b81548152906001019060200180831161027357829003601f168201915b5050505050905090565b6102a2610515565b6102ac600061056f565b565b6102b6610515565b60018054839111806102d45750600180546102d19190610aea565b81115b156102f2576040516301f4bca560e01b815260040160405180910390fd5b6102fc8280610959565b6001858154811061030f5761030f610bcb565b906000526020600020019182610326929190610a29565b50505050565b604080518082019091526000815260606020820152600180548391118061035f57506001805461035c9190610aea565b81115b1561037d576040516301f4bca560e01b815260040160405180910390fd5b60006001848154811061039257610392610bcb565b9060005260206000200180546103a7906109a7565b80601f01602080910402602001604051908101604052809291908181526020018280546103d3906109a7565b80156104205780601f106103f557610100808354040283529160200191610420565b820191906000526020600020905b81548152906001019060200180831161040357829003601f168201915b5050505050905060018151111561044e57604051806040016040528085815260200182815250925050610491565b6040518060400160405280858152602001600261046a876105bf565b60405160200161047b929190610be1565b6040516020818303038152906040528152509250505b50919050565b61049f610515565b6001600160a01b0381166105095760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6105128161056f565b50565b6000546001600160a01b031633146102ac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610500565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060006105cc83610652565b600101905060008167ffffffffffffffff8111156105ec576105ec61077a565b6040519080825280601f01601f191660200182016040528015610616576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461062057509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106106915772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106106bd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106106db57662386f26fc10000830492506010015b6305f5e10083106106f3576305f5e100830492506008015b612710831061070757612710830492506004015b60648310610719576064830492506002015b600a8310610725576001015b92915050565b60006020828403121561049157600080fd5b60006020828403121561074f57600080fd5b813567ffffffffffffffff81111561076657600080fd5b6107728482850161072b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156107a257600080fd5b813567ffffffffffffffff808211156107ba57600080fd5b818401915084601f8301126107ce57600080fd5b8135818111156107e0576107e061077a565b604051601f8201601f19908116603f011681019083821181831017156108085761080861077a565b8160405282815287602084870101111561082157600080fd5b826020860160208301376000928101602001929092525095945050505050565b60005b8381101561085c578181015183820152602001610844565b50506000910152565b6000815180845261087d816020860160208601610841565b601f01601f19169290920160200192915050565b6020815260006108a46020830184610865565b9392505050565b600080604083850312156108be57600080fd5b82359150602083013567ffffffffffffffff8111156108dc57600080fd5b6108e88582860161072b565b9150509250929050565b60006020828403121561090457600080fd5b5035919050565b6020815281516020820152600060208301516040808401526107726060840182610865565b60006020828403121561094257600080fd5b81356001600160a01b03811681146108a457600080fd5b6000808335601e1984360301811261097057600080fd5b83018035915067ffffffffffffffff82111561098b57600080fd5b6020019150368190038213156109a057600080fd5b9250929050565b600181811c908216806109bb57607f821691505b60208210810361049157634e487b7160e01b600052602260045260246000fd5b601f82111561020357600081815260208120601f850160051c81016020861015610a025750805b601f850160051c820191505b81811015610a2157828155600101610a0e565b505050505050565b67ffffffffffffffff831115610a4157610a4161077a565b610a5583610a4f83546109a7565b836109db565b6000601f841160018114610a895760008515610a715750838201355b600019600387901b1c1916600186901b178355610ae3565b600083815260209020601f19861690835b82811015610aba5786850135825560209485019460019092019101610a9a565b5086821015610ad75760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561072557634e487b7160e01b600052601160045260246000fd5b815167ffffffffffffffff811115610b2557610b2561077a565b610b3981610b3384546109a7565b846109db565b602080601f831160018114610b6e5760008415610b565750858301515b600019600386901b1c1916600185901b178555610a21565b600085815260208120601f198616915b82811015610b9d57888601518255948401946001909101908401610b7e565b5085821015610bbb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000808454610bef816109a7565b60018281168015610c075760018114610c1c57610c4b565b60ff1984168752821515830287019450610c4b565b8860005260208060002060005b85811015610c425781548a820152908401908201610c29565b50505082870194505b505050508351610c5f818360208801610841565b0194935050505056fea2646970667358221220fc6eabd59ce3a8f7f7c7e4140fc92068b4346fca8fd774a19dc7bdcc19208af164736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0x8C2576B2 EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x106 JUMPI DUP1 PUSH4 0xBD880FAE EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x141 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5F53B29 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x3FA9B1E4 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x55F804B3 EQ PUSH2 0xC3 JUMPI DUP1 PUSH4 0x714C5398 EQ PUSH2 0xD6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC1 PUSH2 0xBC CALLDATASIZE PUSH1 0x4 PUSH2 0x73D JUMP JUMPDEST PUSH2 0x154 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC1 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x790 JUMP JUMPDEST PUSH2 0x1CB JUMP JUMPDEST PUSH2 0xDE PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x891 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x29A JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x101 CALLDATASIZE PUSH1 0x4 PUSH2 0x8AB JUMP JUMPDEST PUSH2 0x2AE 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 0xA5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5 SWAP2 SWAP1 PUSH2 0x90B JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x930 JUMP JUMPDEST PUSH2 0x497 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 PUSH2 0x168 DUP3 DUP1 PUSH2 0x959 JUMP JUMPDEST DUP3 SLOAD PUSH1 0x1 DUP2 ADD DUP5 SSTORE PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 KECCAK256 SWAP1 SWAP3 ADD SWAP2 PUSH2 0x188 SWAP2 DUP4 PUSH2 0xA29 JUMP JUMPDEST POP PUSH1 0x1 DUP1 SLOAD PUSH1 0x0 SWAP2 PUSH2 0x199 SWAP2 PUSH2 0xAEA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP DUP2 SWAP1 PUSH32 0x22B345891F7ED770623196D690A94CFB1906BDA0A1A7510E8526979C4792BC74 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x1D3 PUSH2 0x515 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 MLOAD LT ISZERO PUSH2 0x1F7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH2 0x203 DUP4 DUP3 PUSH2 0xB0B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x217 SWAP1 PUSH2 0x9A7 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 0x243 SWAP1 PUSH2 0x9A7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x290 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x265 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x290 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 0x273 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2A2 PUSH2 0x515 JUMP JUMPDEST PUSH2 0x2AC PUSH1 0x0 PUSH2 0x56F JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x2B6 PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 SWAP2 GT DUP1 PUSH2 0x2D4 JUMPI POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x2D1 SWAP2 SWAP1 PUSH2 0xAEA JUMP JUMPDEST DUP2 GT JUMPDEST ISZERO PUSH2 0x2F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1F4BCA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2FC DUP3 DUP1 PUSH2 0x959 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x30F JUMPI PUSH2 0x30F PUSH2 0xBCB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SWAP2 DUP3 PUSH2 0x326 SWAP3 SWAP2 SWAP1 PUSH2 0xA29 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 DUP1 SLOAD DUP4 SWAP2 GT DUP1 PUSH2 0x35F JUMPI POP PUSH1 0x1 DUP1 SLOAD PUSH2 0x35C SWAP2 SWAP1 PUSH2 0xAEA JUMP JUMPDEST DUP2 GT JUMPDEST ISZERO PUSH2 0x37D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1F4BCA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x392 JUMPI PUSH2 0x392 PUSH2 0xBCB JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x3A7 SWAP1 PUSH2 0x9A7 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 0x3D3 SWAP1 PUSH2 0x9A7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x420 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3F5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x420 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 0x403 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x1 DUP2 MLOAD GT ISZERO PUSH2 0x44E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP SWAP3 POP POP PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 PUSH2 0x46A DUP8 PUSH2 0x5BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x47B SWAP3 SWAP2 SWAP1 PUSH2 0xBE1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP SWAP3 POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x49F PUSH2 0x515 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x512 DUP2 PUSH2 0x56F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2AC 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 0x500 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 0x60 PUSH1 0x0 PUSH2 0x5CC DUP4 PUSH2 0x652 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5EC JUMPI PUSH2 0x5EC PUSH2 0x77A 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 0x616 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 PUSH2 0x620 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x691 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x6BD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x6DB JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x6F3 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x707 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x719 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x725 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x74F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x772 DUP5 DUP3 DUP6 ADD PUSH2 0x72B JUMP JUMPDEST 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 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x7BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x7E0 JUMPI PUSH2 0x7E0 PUSH2 0x77A 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 0x808 JUMPI PUSH2 0x808 PUSH2 0x77A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x821 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x85C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x844 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x87D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x841 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 0x8A4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x865 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E8 DUP6 DUP3 DUP7 ADD PUSH2 0x72B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x904 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH2 0x772 PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x865 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x942 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x8A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x98B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x9A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x9BB JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x491 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x203 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 0xA02 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA21 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xA0E JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0xA41 JUMPI PUSH2 0xA41 PUSH2 0x77A JUMP JUMPDEST PUSH2 0xA55 DUP4 PUSH2 0xA4F DUP4 SLOAD PUSH2 0x9A7 JUMP JUMPDEST DUP4 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0xA89 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0xA71 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 0xAE3 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xABA JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0xA9A JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0xAD7 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 JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x725 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB25 JUMPI PUSH2 0xB25 PUSH2 0x77A JUMP JUMPDEST PUSH2 0xB39 DUP2 PUSH2 0xB33 DUP5 SLOAD PUSH2 0x9A7 JUMP JUMPDEST DUP5 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0xB6E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0xB56 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 0xA21 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xB9D JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0xB7E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0xBBB 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 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP5 SLOAD PUSH2 0xBEF DUP2 PUSH2 0x9A7 JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0xC07 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0xC1C JUMPI PUSH2 0xC4B JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP8 MSTORE DUP3 ISZERO ISZERO DUP4 MUL DUP8 ADD SWAP5 POP PUSH2 0xC4B JUMP JUMPDEST DUP9 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0xC42 JUMPI DUP2 SLOAD DUP11 DUP3 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0xC29 JUMP JUMPDEST POP POP POP DUP3 DUP8 ADD SWAP5 POP JUMPDEST POP POP POP POP DUP4 MLOAD PUSH2 0xC5F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x841 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC PUSH15 0xABD59CE3A8F7F7C7E4140FC92068B4 CALLVALUE PUSH16 0xCA8FD774A19DC7BDCC19208AF164736F PUSH13 0x63430008110033000000000000 ","sourceMap":"340:1873:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;967:95;1041:7;:14;967:95;;160:25:89;;;148:2;133:18;967:95:80;;;;;;;;1815:203;;;;;;:::i;:::-;;:::i;:::-;;1652:122;;;;;;:::i;:::-;;:::i;1519:92::-;;;:::i;:::-;;;;;;;:::i;1831:101:19:-;;;:::i;2059:152:80:-;;;;;;:::i;:::-;;:::i;1201:85:19:-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:19;;;3129:51:89;;3117:2;3102:18;1201:85:19;2983:203:89;1103:375:80;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2081:198:19:-;;;;;;:::i;:::-;;:::i;1815:203:80:-;1094:13:19;:11;:13::i;:::-;1902:7:80::1;1915:16;:4:::0;;:16:::1;:::i;:::-;1902:30:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;1902:30:80;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1972:1:80::1;1955:14:::0;;1942:10:::1;::::0;1955:18:::1;::::0;::::1;:::i;:::-;1988:23;::::0;1942:31;;-1:-1:-1;1942:31:80;;1988:23:::1;::::0;;;::::1;1892:126;1815:203:::0;:::o;1652:122::-;1094:13:19;:11;:13::i;:::-;1730:7:80::1;576:1;558:7;552:21;:25;548:89;;;600:26;;-1:-1:-1::0;;;600:26:80::1;;;;;;;;;;;548:89;1749:8:::2;:18;1760:7:::0;1749:8;:18:::2;:::i;:::-;;1117:1:19::1;1652:122:80::0;:::o;1519:92::-;1564:13;1596:8;1589:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1519:92;:::o;1831:101:19:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2059:152:80:-;1094:13:19;:11;:13::i;:::-;724:1:80::1;707:14:::0;;2160:2;;-1:-1:-1;707:18:80;:45:::1;;-1:-1:-1::0;751:1:80::1;734:14:::0;;:18:::1;::::0;751:1;734:18:::1;:::i;:::-;729:2;:23;707:45;703:105;;;775:22;;-1:-1:-1::0;;;775:22:80::1;;;;;;;;;;;703:105;2188:16:::2;:4:::0;;:16:::2;:::i;:::-;2174:7;2182:2;2174:11;;;;;;;;:::i;:::-;;;;;;;;:30;;;;;;;:::i;:::-;;1117:1:19::1;2059:152:80::0;;:::o;1103:375::-;-1:-1:-1;;;;;;;;;;;;;;;;;724:1:80;707:14;;1162:5;;-1:-1:-1;707:18:80;:45;;-1:-1:-1;751:1:80;734:14;;:18;;751:1;734:18;:::i;:::-;729:2;:23;707:45;703:105;;;775:22;;-1:-1:-1;;;775:22:80;;;;;;;;;;;703:105;1216:25:::1;1244:7;1252:5;1244:14;;;;;;;;:::i;:::-;;;;;;;;1216:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1300:1;1278:11;1272:25;:29;1268:106;;;1324:39;;;;;;;;1344:5;1324:39;;;;1351:11;1324:39;;::::0;1317:46:::1;;;;;1268:106;1391:80;;;;;;;;1411:5;1391:80;;;;1442:8;1452:16;:5;:14;:16::i;:::-;1425:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1391:80;;::::0;1384:87:::1;;;817:1;1103:375:::0;;;;:::o;2081:198:19:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:19;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:19;;9994:2:89;2161:73:19::1;::::0;::::1;9976:21:89::0;10033:2;10013:18;;;10006:30;10072:34;10052:18;;;10045:62;-1:-1:-1;;;10123:18:89;;;10116:36;10169:19;;2161:73:19::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:19;719:10:47;1422:23:19;1414:68;;;;-1:-1:-1;;;1414:68:19;;10401:2:89;1414:68:19;;;10383:21:89;;;10420:18;;;10413:30;10479:34;10459:18;;;10452:62;10531:18;;1414:68:19;10199:356:89;2433:187:19;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;415:696:49:-;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:49;-1:-1:-1;572:41:49;-1:-1:-1;733:28:49;;;749:2;733:28;788:280;-1:-1:-1;;819:5:49;-1:-1:-1;;;953:2:49;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:49;788:280;1032:21;-1:-1:-1;1088:6:49;415:696;-1:-1:-1;;;415:696:49:o;9889:890:55:-;9942:7;;-1:-1:-1;;;10017:15:55;;10013:99;;-1:-1:-1;;;10052:15:55;;;-1:-1:-1;10095:2:55;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:55;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:55;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:55;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:55;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:55;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:55:o;196:159:89:-;260:5;305:2;296:6;291:3;287:16;283:25;280:45;;;321:1;318;311:12;360:365;451:6;504:2;492:9;483:7;479:23;475:32;472:52;;;520:1;517;510:12;472:52;560:9;547:23;593:18;585:6;582:30;579:50;;;625:1;622;615:12;579:50;648:71;711:7;702:6;691:9;687:22;648:71;:::i;:::-;638:81;360:365;-1:-1:-1;;;;360:365:89:o;730:127::-;791:10;786:3;782:20;779:1;772:31;822:4;819:1;812:15;846:4;843:1;836:15;862:922;931:6;984:2;972:9;963:7;959:23;955:32;952:52;;;1000:1;997;990:12;952:52;1040:9;1027:23;1069:18;1110:2;1102:6;1099:14;1096:34;;;1126:1;1123;1116:12;1096:34;1164:6;1153:9;1149:22;1139:32;;1209:7;1202:4;1198:2;1194:13;1190:27;1180:55;;1231:1;1228;1221:12;1180:55;1267:2;1254:16;1289:2;1285;1282:10;1279:36;;;1295:18;;:::i;:::-;1370:2;1364:9;1338:2;1424:13;;-1:-1:-1;;1420:22:89;;;1444:2;1416:31;1412:40;1400:53;;;1468:18;;;1488:22;;;1465:46;1462:72;;;1514:18;;:::i;:::-;1554:10;1550:2;1543:22;1589:2;1581:6;1574:18;1629:7;1624:2;1619;1615;1611:11;1607:20;1604:33;1601:53;;;1650:1;1647;1640:12;1601:53;1706:2;1701;1697;1693:11;1688:2;1680:6;1676:15;1663:46;1751:1;1729:15;;;1746:2;1725:24;1718:35;;;;-1:-1:-1;1733:6:89;862:922;-1:-1:-1;;;;;862:922:89:o;1789:250::-;1874:1;1884:113;1898:6;1895:1;1892:13;1884:113;;;1974:11;;;1968:18;1955:11;;;1948:39;1920:2;1913:10;1884:113;;;-1:-1:-1;;2031:1:89;2013:16;;2006:27;1789:250::o;2044:271::-;2086:3;2124:5;2118:12;2151:6;2146:3;2139:19;2167:76;2236:6;2229:4;2224:3;2220:14;2213:4;2206:5;2202:16;2167:76;:::i;:::-;2297:2;2276:15;-1:-1:-1;;2272:29:89;2263:39;;;;2304:4;2259:50;;2044:271;-1:-1:-1;;2044:271:89:o;2320:220::-;2469:2;2458:9;2451:21;2432:4;2489:45;2530:2;2519:9;2515:18;2507:6;2489:45;:::i;:::-;2481:53;2320:220;-1:-1:-1;;;2320:220:89:o;2545:433::-;2645:6;2653;2706:2;2694:9;2685:7;2681:23;2677:32;2674:52;;;2722:1;2719;2712:12;2674:52;2758:9;2745:23;2735:33;;2819:2;2808:9;2804:18;2791:32;2846:18;2838:6;2835:30;2832:50;;;2878:1;2875;2868:12;2832:50;2901:71;2964:7;2955:6;2944:9;2940:22;2901:71;:::i;:::-;2891:81;;;2545:433;;;;;:::o;3191:180::-;3250:6;3303:2;3291:9;3282:7;3278:23;3274:32;3271:52;;;3319:1;3316;3309:12;3271:52;-1:-1:-1;3342:23:89;;3191:180;-1:-1:-1;3191:180:89:o;3376:406::-;3561:2;3550:9;3543:21;3606:6;3600:13;3595:2;3584:9;3580:18;3573:41;3524:4;3661:2;3653:6;3649:15;3643:22;3703:4;3696;3685:9;3681:20;3674:34;3725:51;3772:2;3761:9;3757:18;3743:12;3725:51;:::i;3787:286::-;3846:6;3899:2;3887:9;3878:7;3874:23;3870:32;3867:52;;;3915:1;3912;3905:12;3867:52;3941:23;;-1:-1:-1;;;;;3993:31:89;;3983:42;;3973:70;;4039:1;4036;4029:12;4078:522;4156:4;4162:6;4222:11;4209:25;4316:2;4312:7;4301:8;4285:14;4281:29;4277:43;4257:18;4253:68;4243:96;;4335:1;4332;4325:12;4243:96;4362:33;;4414:20;;;-1:-1:-1;4457:18:89;4446:30;;4443:50;;;4489:1;4486;4479:12;4443:50;4522:4;4510:17;;-1:-1:-1;4553:14:89;4549:27;;;4539:38;;4536:58;;;4590:1;4587;4580:12;4536:58;4078:522;;;;;:::o;4605:380::-;4684:1;4680:12;;;;4727;;;4748:61;;4802:4;4794:6;4790:17;4780:27;;4748:61;4855:2;4847:6;4844:14;4824:18;4821:38;4818:161;;4901:10;4896:3;4892:20;4889:1;4882:31;4936:4;4933:1;4926:15;4964:4;4961:1;4954:15;5116:545;5218:2;5213:3;5210:11;5207:448;;;5254:1;5279:5;5275:2;5268:17;5324:4;5320:2;5310:19;5394:2;5382:10;5378:19;5375:1;5371:27;5365:4;5361:38;5430:4;5418:10;5415:20;5412:47;;;-1:-1:-1;5453:4:89;5412:47;5508:2;5503:3;5499:12;5496:1;5492:20;5486:4;5482:31;5472:41;;5563:82;5581:2;5574:5;5571:13;5563:82;;;5626:17;;;5607:1;5596:13;5563:82;;;5567:3;;;5116:545;;;:::o;5837:1206::-;5961:18;5956:3;5953:27;5950:53;;;5983:18;;:::i;:::-;6012:94;6102:3;6062:38;6094:4;6088:11;6062:38;:::i;:::-;6056:4;6012:94;:::i;:::-;6132:1;6157:2;6152:3;6149:11;6174:1;6169:616;;;;6829:1;6846:3;6843:93;;;-1:-1:-1;6902:19:89;;;6889:33;6843:93;-1:-1:-1;;5794:1:89;5790:11;;;5786:24;5782:29;5772:40;5818:1;5814:11;;;5769:57;6949:78;;6142:895;;6169:616;5063:1;5056:14;;;5100:4;5087:18;;-1:-1:-1;;6205:17:89;;;6306:9;6328:229;6342:7;6339:1;6336:14;6328:229;;;6431:19;;;6418:33;6403:49;;6538:4;6523:20;;;;6491:1;6479:14;;;;6358:12;6328:229;;;6332:3;6585;6576:7;6573:16;6570:159;;;6709:1;6705:6;6699:3;6693;6690:1;6686:11;6682:21;6678:34;6674:39;6661:9;6656:3;6652:19;6639:33;6635:79;6627:6;6620:95;6570:159;;;6772:1;6766:3;6763:1;6759:11;6755:19;6749:4;6742:33;6142:895;;;5837:1206;;;:::o;7048:225::-;7115:9;;;7136:11;;;7133:134;;;7189:10;7184:3;7180:20;7177:1;7170:31;7224:4;7221:1;7214:15;7252:4;7249:1;7242:15;7278:1352;7404:3;7398:10;7431:18;7423:6;7420:30;7417:56;;;7453:18;;:::i;:::-;7482:97;7572:6;7532:38;7564:4;7558:11;7532:38;:::i;:::-;7526:4;7482:97;:::i;:::-;7634:4;;7698:2;7687:14;;7715:1;7710:663;;;;8417:1;8434:6;8431:89;;;-1:-1:-1;8486:19:89;;;8480:26;8431:89;-1:-1:-1;;5794:1:89;5790:11;;;5786:24;5782:29;5772:40;5818:1;5814:11;;;5769:57;8533:81;;7680:944;;7710:663;5063:1;5056:14;;;5100:4;5087:18;;-1:-1:-1;;7746:20:89;;;7864:236;7878:7;7875:1;7872:14;7864:236;;;7967:19;;;7961:26;7946:42;;8059:27;;;;8027:1;8015:14;;;;7894:19;;7864:236;;;7868:3;8128:6;8119:7;8116:19;8113:201;;;8189:19;;;8183:26;-1:-1:-1;;8272:1:89;8268:14;;;8284:3;8264:24;8260:37;8256:42;8241:58;8226:74;;8113:201;-1:-1:-1;;;;;8360:1:89;8344:14;;;8340:22;8327:36;;-1:-1:-1;7278:1352:89:o;8635:127::-;8696:10;8691:3;8687:20;8684:1;8677:31;8727:4;8724:1;8717:15;8751:4;8748:1;8741:15;8767:1020;8943:3;8972:1;9005:6;8999:13;9035:36;9061:9;9035:36;:::i;:::-;9090:1;9107:18;;;9134:133;;;;9281:1;9276:356;;;;9100:532;;9134:133;-1:-1:-1;;9167:24:89;;9155:37;;9240:14;;9233:22;9221:35;;9212:45;;;-1:-1:-1;9134:133:89;;9276:356;9307:6;9304:1;9297:17;9337:4;9382:2;9379:1;9369:16;9407:1;9421:165;9435:6;9432:1;9429:13;9421:165;;;9513:14;;9500:11;;;9493:35;9556:16;;;;9450:10;;9421:165;;;9425:3;;;9615:6;9610:3;9606:16;9599:23;;9100:532;;;;;9663:6;9657:13;9679:68;9738:8;9733:3;9726:4;9718:6;9714:17;9679:68;:::i;:::-;9763:18;;8767:1020;-1:-1:-1;;;;8767:1020:89:o"},"methodIdentifiers":{"createSkill((string))":"3fa9b1e4","getBaseURI()":"714c5398","getSkill(uint256)":"bd880fae","getSkillCount()":"05f53b29","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setBaseURI(string)":"55f804b3","transferOwnership(address)":"f2fde38b","updateSkill(uint256,(string))":"8c2576b2"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SkillNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateSkill\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createSkill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSkill\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.SkillView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSkillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.UpdateSkill\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateSkill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/SkillRegistry.sol\":\"SkillRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/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\"]},\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/interfaces/ISkillRegistry.sol\":{\"keccak256\":\"0x659399d8e4f8baab94ad26657789ee0e69290d36f98994eb2bada9d79bfe7bdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31c8e674d3767a0192eccc1a5e5606e318bbbb92af19eac232cc9ab0c57cc1d2\",\"dweb:/ipfs/QmZgkPipJhx6Ka2ero285Ro4XRgqPkXsiGvBpq3vEnz8cF\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/common/libraries/Events.sol\":{\"keccak256\":\"0xf94eef9e2c5a858a588565f639b15930f7f3aa70f52710c697f98cf11676dd8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cecefefa1e1df6b7a37cf2f1141c6f9e2f04d425b0c5066ad0e06083b45d1c\",\"dweb:/ipfs/Qmeetc3HCLA3HLySwHJrr73srfa5wG51hTSRcHAu2yCyax\"]},\"contracts/governance/SkillRegistry.sol\":{\"keccak256\":\"0xafe957fc3231816ae9200f7cdfb8d8bf369ad77a323692b6d518b77a60de78b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15df354b28118e8aef6acfc29a8e2836ae0c7351d1e1dc18cfd421d825415da0\",\"dweb:/ipfs/QmVZf4cm5beasnLDKknrwuz53SMtfeebXyX1iBQSAVWngE\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5535,"contract":"contracts/governance/SkillRegistry.sol:SkillRegistry","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":22679,"contract":"contracts/governance/SkillRegistry.sol:SkillRegistry","label":"_skills","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"},{"astId":22681,"contract":"contracts/governance/SkillRegistry.sol:SkillRegistry","label":"_baseURI","offset":0,"slot":"2","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}}}},"contracts/governance/Timelock.sol":{"Timelock":{"abi":[{"inputs":[{"internalType":"address[]","name":"proposers","type":"address[]"},{"internalType":"address[]","name":"executors","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"CallExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"delay","type":"uint256"}],"name":"CallScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"Cancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDuration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"MinDelayChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"CANCELLER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXECUTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"executeBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getMinDelay","outputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperation","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"hashOperationBatch","outputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperation","outputs":[{"internalType":"bool","name":"registered","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationDone","outputs":[{"internalType":"bool","name":"done","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationPending","outputs":[{"internalType":"bool","name":"pending","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"isOperationReady","outputs":[{"internalType":"bool","name":"ready","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"schedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes[]","name":"payloads","type":"bytes[]"},{"internalType":"bytes32","name":"predecessor","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256","name":"delay","type":"uint256"}],"name":"scheduleBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"updateDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_22899":{"entryPoint":null,"id":22899,"parameterSlots":2,"returnSlots":0},"@_7444":{"entryPoint":null,"id":7444,"parameterSlots":4,"returnSlots":0},"@_grantRole_5422":{"entryPoint":657,"id":5422,"parameterSlots":2,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_setRoleAdmin_5390":{"entryPoint":566,"id":5390,"parameterSlots":2,"returnSlots":0},"@_setupRole_5362":{"entryPoint":641,"id":5362,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_5285":{"entryPoint":null,"id":5285,"parameterSlots":1,"returnSlots":1},"@hasRole_5218":{"entryPoint":null,"id":5218,"parameterSlots":2,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":839,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_fromMemory":{"entryPoint":868,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":1041,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"increment_t_uint256":{"entryPoint":1169,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":1147,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":817,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2502:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"206:117:89","statements":[{"nodeType":"YulAssignment","src":"216:22:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"231:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"225:5:89"},"nodeType":"YulFunctionCall","src":"225:13:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:89"}]},{"body":{"nodeType":"YulBlock","src":"301:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"313:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"303:6:89"},"nodeType":"YulFunctionCall","src":"303:12:89"},"nodeType":"YulExpressionStatement","src":"303:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"260:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"271:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"291:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"282:3:89"},"nodeType":"YulFunctionCall","src":"282:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"278:3:89"},"nodeType":"YulFunctionCall","src":"278:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"267:3:89"},"nodeType":"YulFunctionCall","src":"267:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"257:2:89"},"nodeType":"YulFunctionCall","src":"257:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"250:6:89"},"nodeType":"YulFunctionCall","src":"250:50:89"},"nodeType":"YulIf","src":"247:70:89"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"185:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"196:5:89","type":""}],"src":"146:177:89"},{"body":{"nodeType":"YulBlock","src":"403:848:89","statements":[{"body":{"nodeType":"YulBlock","src":"452:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"461:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"464:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"454:6:89"},"nodeType":"YulFunctionCall","src":"454:12:89"},"nodeType":"YulExpressionStatement","src":"454:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"431:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"439:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"427:3:89"},"nodeType":"YulFunctionCall","src":"427:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"446:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"423:3:89"},"nodeType":"YulFunctionCall","src":"423:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"416:6:89"},"nodeType":"YulFunctionCall","src":"416:35:89"},"nodeType":"YulIf","src":"413:55:89"},{"nodeType":"YulVariableDeclaration","src":"477:23:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"493:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"487:5:89"},"nodeType":"YulFunctionCall","src":"487:13:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"481:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"509:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"519:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"513:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"532:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"550:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"554:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"546:3:89"},"nodeType":"YulFunctionCall","src":"546:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"558:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"542:3:89"},"nodeType":"YulFunctionCall","src":"542:18:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"536:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"583:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"585:16:89"},"nodeType":"YulFunctionCall","src":"585:18:89"},"nodeType":"YulExpressionStatement","src":"585:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"575:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"579:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"572:2:89"},"nodeType":"YulFunctionCall","src":"572:10:89"},"nodeType":"YulIf","src":"569:36:89"},{"nodeType":"YulVariableDeclaration","src":"614:20:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"628:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"631:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"624:3:89"},"nodeType":"YulFunctionCall","src":"624:10:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"618:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"643:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"663:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"657:5:89"},"nodeType":"YulFunctionCall","src":"657:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"647:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"675:56:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"697:6:89"},{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"713:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"717:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"709:3:89"},"nodeType":"YulFunctionCall","src":"709:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"726:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"722:3:89"},"nodeType":"YulFunctionCall","src":"722:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"705:3:89"},"nodeType":"YulFunctionCall","src":"705:25:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"693:3:89"},"nodeType":"YulFunctionCall","src":"693:38:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"679:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"790:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"792:16:89"},"nodeType":"YulFunctionCall","src":"792:18:89"},"nodeType":"YulExpressionStatement","src":"792:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"749:10:89"},{"name":"_3","nodeType":"YulIdentifier","src":"761:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"746:2:89"},"nodeType":"YulFunctionCall","src":"746:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"769:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"781:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"766:2:89"},"nodeType":"YulFunctionCall","src":"766:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"743:2:89"},"nodeType":"YulFunctionCall","src":"743:46:89"},"nodeType":"YulIf","src":"740:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"828:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"832:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"821:6:89"},"nodeType":"YulFunctionCall","src":"821:22:89"},"nodeType":"YulExpressionStatement","src":"821:22:89"},{"nodeType":"YulVariableDeclaration","src":"852:17:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"863:6:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"856:3:89","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"885:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"893:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"878:6:89"},"nodeType":"YulFunctionCall","src":"878:18:89"},"nodeType":"YulExpressionStatement","src":"878:18:89"},{"nodeType":"YulAssignment","src":"905:22:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"916:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"924:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"912:3:89"},"nodeType":"YulFunctionCall","src":"912:15:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"905:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"936:38:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"958:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"966:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"954:3:89"},"nodeType":"YulFunctionCall","src":"954:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"971:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"950:3:89"},"nodeType":"YulFunctionCall","src":"950:24:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"940:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1002:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1014:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1004:6:89"},"nodeType":"YulFunctionCall","src":"1004:12:89"},"nodeType":"YulExpressionStatement","src":"1004:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"989:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"997:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"986:2:89"},"nodeType":"YulFunctionCall","src":"986:15:89"},"nodeType":"YulIf","src":"983:35:89"},{"nodeType":"YulVariableDeclaration","src":"1027:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1042:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1050:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1038:3:89"},"nodeType":"YulFunctionCall","src":"1038:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1031:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:103:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1139:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1174:3:89"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1144:29:89"},"nodeType":"YulFunctionCall","src":"1144:34:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1132:6:89"},"nodeType":"YulFunctionCall","src":"1132:47:89"},"nodeType":"YulExpressionStatement","src":"1132:47:89"},{"nodeType":"YulAssignment","src":"1192:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1203:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1208:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1199:3:89"},"nodeType":"YulFunctionCall","src":"1199:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1192:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1073:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1078:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1070:2:89"},"nodeType":"YulFunctionCall","src":"1070:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1086:23:89","statements":[{"nodeType":"YulAssignment","src":"1088:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1099:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1104:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1095:3:89"},"nodeType":"YulFunctionCall","src":"1095:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1088:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1066:3:89","statements":[]},"src":"1062:159:89"},{"nodeType":"YulAssignment","src":"1230:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1239:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1230:5:89"}]}]},"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"377:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"385:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"393:5:89","type":""}],"src":"328:923:89"},{"body":{"nodeType":"YulBlock","src":"1404:466:89","statements":[{"body":{"nodeType":"YulBlock","src":"1450:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1459:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1462:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1452:6:89"},"nodeType":"YulFunctionCall","src":"1452:12:89"},"nodeType":"YulExpressionStatement","src":"1452:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1425:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1434:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1421:3:89"},"nodeType":"YulFunctionCall","src":"1421:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1446:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1417:3:89"},"nodeType":"YulFunctionCall","src":"1417:32:89"},"nodeType":"YulIf","src":"1414:52:89"},{"nodeType":"YulVariableDeclaration","src":"1475:30:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1495:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1489:5:89"},"nodeType":"YulFunctionCall","src":"1489:16:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1479:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1514:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1532:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1536:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1528:3:89"},"nodeType":"YulFunctionCall","src":"1528:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1524:3:89"},"nodeType":"YulFunctionCall","src":"1524:18:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1518:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1569:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1578:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1581:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1571:6:89"},"nodeType":"YulFunctionCall","src":"1571:12:89"},"nodeType":"YulExpressionStatement","src":"1571:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1557:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1565:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1554:2:89"},"nodeType":"YulFunctionCall","src":"1554:14:89"},"nodeType":"YulIf","src":"1551:34:89"},{"nodeType":"YulAssignment","src":"1594:82:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1648:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1659:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1644:3:89"},"nodeType":"YulFunctionCall","src":"1644:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1668:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1604:39:89"},"nodeType":"YulFunctionCall","src":"1604:72:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1594:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1685:41:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1711:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1722:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:89"},"nodeType":"YulFunctionCall","src":"1707:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1701:5:89"},"nodeType":"YulFunctionCall","src":"1701:25:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1689:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1755:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1764:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1767:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1757:6:89"},"nodeType":"YulFunctionCall","src":"1757:12:89"},"nodeType":"YulExpressionStatement","src":"1757:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1741:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1751:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1738:2:89"},"nodeType":"YulFunctionCall","src":"1738:16:89"},"nodeType":"YulIf","src":"1735:36:89"},{"nodeType":"YulAssignment","src":"1780:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1845:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:89"},"nodeType":"YulFunctionCall","src":"1830:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1856:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_fromMemory","nodeType":"YulIdentifier","src":"1790:39:89"},"nodeType":"YulFunctionCall","src":"1790:74:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1780:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1362:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1373:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1385:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1393:6:89","type":""}],"src":"1256:614:89"},{"body":{"nodeType":"YulBlock","src":"1907:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1924:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1931:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1936:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1927:3:89"},"nodeType":"YulFunctionCall","src":"1927:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1917:6:89"},"nodeType":"YulFunctionCall","src":"1917:31:89"},"nodeType":"YulExpressionStatement","src":"1917:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1964:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1967:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1957:6:89"},"nodeType":"YulFunctionCall","src":"1957:15:89"},"nodeType":"YulExpressionStatement","src":"1957:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1988:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1991:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1981:6:89"},"nodeType":"YulFunctionCall","src":"1981:15:89"},"nodeType":"YulExpressionStatement","src":"1981:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"1875:127:89"},{"body":{"nodeType":"YulBlock","src":"2054:185:89","statements":[{"body":{"nodeType":"YulBlock","src":"2093:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2114:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2121:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2126:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2117:3:89"},"nodeType":"YulFunctionCall","src":"2117:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2107:6:89"},"nodeType":"YulFunctionCall","src":"2107:31:89"},"nodeType":"YulExpressionStatement","src":"2107:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2158:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2161:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2151:6:89"},"nodeType":"YulFunctionCall","src":"2151:15:89"},"nodeType":"YulExpressionStatement","src":"2151:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2186:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2189:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2179:6:89"},"nodeType":"YulFunctionCall","src":"2179:15:89"},"nodeType":"YulExpressionStatement","src":"2179:15:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2070:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2081:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2077:3:89"},"nodeType":"YulFunctionCall","src":"2077:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2067:2:89"},"nodeType":"YulFunctionCall","src":"2067:17:89"},"nodeType":"YulIf","src":"2064:140:89"},{"nodeType":"YulAssignment","src":"2213:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2224:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2231:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2220:3:89"},"nodeType":"YulFunctionCall","src":"2220:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"2213:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2036:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"2046:3:89","type":""}],"src":"2007:232:89"},{"body":{"nodeType":"YulBlock","src":"2381:119:89","statements":[{"nodeType":"YulAssignment","src":"2391:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2403:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2414:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2399:3:89"},"nodeType":"YulFunctionCall","src":"2399:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2391:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2433:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2444:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2426:6:89"},"nodeType":"YulFunctionCall","src":"2426:25:89"},"nodeType":"YulExpressionStatement","src":"2426:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2471:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2482:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2467:3:89"},"nodeType":"YulFunctionCall","src":"2467:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"2487:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2460:6:89"},"nodeType":"YulFunctionCall","src":"2460:34:89"},"nodeType":"YulExpressionStatement","src":"2460:34:89"}]},"name":"abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2342:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2353:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2361:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2372:4:89","type":""}],"src":"2244:256:89"}]},"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_address_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_array_address_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := sub(shl(64, 1), 1)\n        if gt(_1, _3) { panic_error_0x41() }\n        let _4 := shl(5, _1)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_4, 63), not(31)))\n        if or(gt(newFreePtr, _3), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let srcEnd := add(add(offset, _4), _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, abi_decode_address_fromMemory(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_address_$dyn_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_array_address_dyn_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_array_address_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\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 abi_encode_tuple_t_rational_0_by_1_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620022ec380380620022ec833981016040819052620000349162000411565b62015180828233620000566000805160206200226c8339815191528062000236565b620000806000805160206200228c8339815191526000805160206200226c83398151915262000236565b620000aa600080516020620022ac8339815191526000805160206200226c83398151915262000236565b620000d4600080516020620022cc8339815191526000805160206200226c83398151915262000236565b620000ef6000805160206200226c8339815191523062000281565b6001600160a01b038116156200011a576200011a6000805160206200226c8339815191528262000281565b60005b8351811015620001a057620001646000805160206200228c8339815191528583815181106200015057620001506200047b565b60200260200101516200028160201b60201c565b6200018d600080516020620022cc8339815191528583815181106200015057620001506200047b565b620001988162000491565b90506200011d565b5060005b8251811015620001ea57620001d7600080516020620022ac8339815191528483815181106200015057620001506200047b565b620001e28162000491565b9050620001a4565b5060028490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1505050505050620004b9565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6200028d828262000291565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200028d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200035f57600080fd5b919050565b600082601f8301126200037657600080fd5b815160206001600160401b038083111562000395576200039562000331565b8260051b604051601f19603f83011681018181108482111715620003bd57620003bd62000331565b604052938452858101830193838101925087851115620003dc57600080fd5b83870191505b848210156200040657620003f68262000347565b83529183019190830190620003e2565b979650505050505050565b600080604083850312156200042557600080fd5b82516001600160401b03808211156200043d57600080fd5b6200044b8683870162000364565b935060208501519150808211156200046257600080fd5b50620004718582860162000364565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b600060018201620004b257634e487b7160e01b600052601160045260246000fd5b5060010190565b611da380620004c96000396000f3fe6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046113c0565b6105f6565b005b3480156101f557600080fd5b50610209610204366004611434565b61068b565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a236600461145e565b6106b6565b3480156102b357600080fd5b506102096102c23660046114c9565b61076b565b3480156102d357600080fd5b506102f26102e2366004611597565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b506102526103263660046114c9565b60009081526020819052604090206001015490565b34801561034757600080fd5b506102096103563660046114c9565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e76103873660046115fe565b610791565b34801561039857600080fd5b506102096103a73660046114c9565b6107bb565b3480156103b857600080fd5b506101e76103c73660046115fe565b6107d4565b3480156103d857600080fd5b506102096103e73660046114c9565b610857565b3480156103f857600080fd5b506101e76104073660046114c9565b61086d565b34801561041857600080fd5b5061025261042736600461145e565b610911565b34801561043857600080fd5b506101e761044736600461166e565b610950565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b3660046115fe565b610aa2565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b5061025261050436600461171f565b610acb565b34801561051557600080fd5b506102f2610524366004611846565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e76105503660046114c9565b610b10565b34801561056157600080fd5b506102526105703660046114c9565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d3660046115fe565b610be5565b6101e76105b036600461171f565b610c0a565b3480156105c157600080fd5b506102f26105d03660046118ef565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610d94565b6000610630898989898989610911565b905061063c8184610da1565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106789695949392919061197c565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106b057506106b082610e90565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636106e2816000610aa2565b6106f0576106f08133610ec5565b6000610700888888888888610911565b905061070c8185610f1e565b61071888888888610fba565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161075094939291906119b9565b60405180910390a36107618161108d565b5050505050505050565b60008181526001602052604081205460018111801561078a5750428111155b9392505050565b6000828152602081905260409020600101546107ac81610d94565b6107b683836110c6565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146108495760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610853828261114a565b5050565b60008181526001602081905260408220546107cd565b3330146108d05760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610840565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161092e9695949392919061197c565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161097a81610d94565b8887146109995760405162461bcd60e51b8152600401610840906119eb565b8885146109b85760405162461bcd60e51b8152600401610840906119eb565b60006109ca8b8b8b8b8b8b8b8b610acb565b90506109d68184610da1565b60005b8a811015610a945780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a1657610a16611a2e565b9050602002016020810190610a2b9190611a44565b8d8d86818110610a3d57610a3d611a2e565b905060200201358c8c87818110610a5657610a56611a2e565b9050602002810190610a689190611a5f565b8c8b604051610a7c9695949392919061197c565b60405180910390a3610a8d81611abb565b90506109d9565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610aec989796959493929190611b65565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b3a81610d94565b610b4382610857565b610ba95760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610840565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c0081610d94565b6107b6838361114a565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610c36816000610aa2565b610c4457610c448133610ec5565b878614610c635760405162461bcd60e51b8152600401610840906119eb565b878414610c825760405162461bcd60e51b8152600401610840906119eb565b6000610c948a8a8a8a8a8a8a8a610acb565b9050610ca08185610f1e565b60005b89811015610d7e5760008b8b83818110610cbf57610cbf611a2e565b9050602002016020810190610cd49190611a44565b905060008a8a84818110610cea57610cea611a2e565b9050602002013590503660008a8a86818110610d0857610d08611a2e565b9050602002810190610d1a9190611a5f565b91509150610d2a84848484610fba565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d6194939291906119b9565b60405180910390a35050505080610d7790611abb565b9050610ca3565b50610d888161108d565b50505050505050505050565b610d9e8133610ec5565b50565b610daa826107bb565b15610e0f5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610840565b600254811015610e705760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610840565b610e7a8142611c06565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106b057506301ffc9a760e01b6001600160e01b03198316146106b0565b610ecf8282610aa2565b61085357610edc816111af565b610ee78360206111c1565b604051602001610ef8929190611c3d565b60408051601f198184030181529082905262461bcd60e51b825261084091600401611cb2565b610f278261076b565b610f435760405162461bcd60e51b815260040161084090611ce5565b801580610f5f5750600081815260016020819052604090912054145b6108535760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610840565b6000846001600160a01b0316848484604051610fd7929190611d2f565b60006040518083038185875af1925050503d8060008114611014576040519150601f19603f3d011682016040523d82523d6000602084013e611019565b606091505b50509050806110865760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610840565b5050505050565b6110968161076b565b6110b25760405162461bcd60e51b815260040161084090611ce5565b600090815260016020819052604090912055565b6110d08282610aa2565b610853576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111548282610aa2565b15610853576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106b06001600160a01b03831660145b606060006111d0836002611d3f565b6111db906002611c06565b6001600160401b038111156111f2576111f26114e2565b6040519080825280601f01601f19166020018201604052801561121c576020820181803683370190505b509050600360fc1b8160008151811061123757611237611a2e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061126657611266611a2e565b60200101906001600160f81b031916908160001a905350600061128a846002611d3f565b611295906001611c06565b90505b600181111561130d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112c9576112c9611a2e565b1a60f81b8282815181106112df576112df611a2e565b60200101906001600160f81b031916908160001a90535060049490941c9361130681611d56565b9050611298565b50831561078a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610840565b80356001600160a01b038116811461137357600080fd5b919050565b60008083601f84011261138a57600080fd5b5081356001600160401b038111156113a157600080fd5b6020830191508360208285010111156113b957600080fd5b9250929050565b600080600080600080600060c0888a0312156113db57600080fd5b6113e48861135c565b96506020880135955060408801356001600160401b0381111561140657600080fd5b6114128a828b01611378565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561144657600080fd5b81356001600160e01b03198116811461078a57600080fd5b60008060008060008060a0878903121561147757600080fd5b6114808761135c565b95506020870135945060408701356001600160401b038111156114a257600080fd5b6114ae89828a01611378565b979a9699509760608101359660809091013595509350505050565b6000602082840312156114db57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611520576115206114e2565b604052919050565b600082601f83011261153957600080fd5b81356001600160401b03811115611552576115526114e2565b611565601f8201601f19166020016114f8565b81815284602083860101111561157a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156115ad57600080fd5b6115b68561135c565b93506115c46020860161135c565b92506040850135915060608501356001600160401b038111156115e657600080fd5b6115f287828801611528565b91505092959194509250565b6000806040838503121561161157600080fd5b823591506116216020840161135c565b90509250929050565b60008083601f84011261163c57600080fd5b5081356001600160401b0381111561165357600080fd5b6020830191508360208260051b85010111156113b957600080fd5b600080600080600080600080600060c08a8c03121561168c57600080fd5b89356001600160401b03808211156116a357600080fd5b6116af8d838e0161162a565b909b50995060208c01359150808211156116c857600080fd5b6116d48d838e0161162a565b909950975060408c01359150808211156116ed57600080fd5b506116fa8c828d0161162a565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561173b57600080fd5b88356001600160401b038082111561175257600080fd5b61175e8c838d0161162a565b909a50985060208b013591508082111561177757600080fd5b6117838c838d0161162a565b909850965060408b013591508082111561179c57600080fd5b506117a98b828c0161162a565b999c989b509699959896976060870135966080013595509350505050565b600082601f8301126117d857600080fd5b813560206001600160401b038211156117f3576117f36114e2565b8160051b6118028282016114f8565b928352848101820192828101908785111561181c57600080fd5b83870192505b8483101561183b57823582529183019190830190611822565b979650505050505050565b600080600080600060a0868803121561185e57600080fd5b6118678661135c565b94506118756020870161135c565b935060408601356001600160401b038082111561189157600080fd5b61189d89838a016117c7565b945060608801359150808211156118b357600080fd5b6118bf89838a016117c7565b935060808801359150808211156118d557600080fd5b506118e288828901611528565b9150509295509295909350565b600080600080600060a0868803121561190757600080fd5b6119108661135c565b945061191e6020870161135c565b9350604086013592506060860135915060808601356001600160401b0381111561194757600080fd5b6118e288828901611528565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006119a460a083018688611953565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006119e1606083018486611953565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5657600080fd5b61078a8261135c565b6000808335601e19843603018112611a7657600080fd5b8301803591506001600160401b03821115611a9057600080fd5b6020019150368190038213156113b957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611acd57611acd611aa5565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611b585782840389528135601e19883603018112611b0f57600080fd5b870185810190356001600160401b03811115611b2a57600080fd5b803603821315611b3957600080fd5b611b44868284611953565b9a87019a9550505090840190600101611aee565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611ba6576001600160a01b03611b918461135c565b16825260209283019290910190600101611b78565b5083810360208501528881526001600160fb1b03891115611bc657600080fd5b8860051b9150818a60208301370182810360209081016040850152611bee9082018789611ad4565b60608401959095525050608001529695505050505050565b808201808211156106b0576106b0611aa5565b60005b83811015611c34578181015183820152602001611c1c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c75816017850160208801611c19565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ca6816028840160208801611c19565b01602801949350505050565b6020815260008251806020840152611cd1816040850160208701611c19565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b80820281158282048414176106b0576106b0611aa5565b600081611d6557611d65611aa5565b50600019019056fea2646970667358221220d456213c69ce38a096b380f0d51915a45c5ce80705bb7209a87f10f5764e710a64736f6c634300081100335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x22EC CODESIZE SUB DUP1 PUSH3 0x22EC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x411 JUMP JUMPDEST PUSH3 0x15180 DUP3 DUP3 CALLER PUSH3 0x56 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH3 0x236 JUMP JUMPDEST PUSH3 0x80 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x228C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x236 JUMP JUMPDEST PUSH3 0xAA PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22AC DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x236 JUMP JUMPDEST PUSH3 0xD4 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22CC DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x236 JUMP JUMPDEST PUSH3 0xEF PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE ADDRESS PUSH3 0x281 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH3 0x11A JUMPI PUSH3 0x11A PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x226C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP3 PUSH3 0x281 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH3 0x1A0 JUMPI PUSH3 0x164 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x228C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x150 JUMPI PUSH3 0x150 PUSH3 0x47B JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x281 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x18D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22CC DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x150 JUMPI PUSH3 0x150 PUSH3 0x47B JUMP JUMPDEST PUSH3 0x198 DUP2 PUSH3 0x491 JUMP JUMPDEST SWAP1 POP PUSH3 0x11D JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH3 0x1EA JUMPI PUSH3 0x1D7 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x22AC DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH3 0x150 JUMPI PUSH3 0x150 PUSH3 0x47B JUMP JUMPDEST PUSH3 0x1E2 DUP2 PUSH3 0x491 JUMP JUMPDEST SWAP1 POP PUSH3 0x1A4 JUMP JUMPDEST POP PUSH1 0x2 DUP5 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP PUSH3 0x4B9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 DUP5 SWAP1 SSTORE SWAP1 MLOAD SWAP1 SWAP2 DUP4 SWAP2 DUP4 SWAP2 DUP7 SWAP2 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF SWAP2 SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH3 0x28D DUP3 DUP3 PUSH3 0x291 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x28D 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 0x2ED 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x35F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x376 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 GT ISZERO PUSH3 0x395 JUMPI PUSH3 0x395 PUSH3 0x331 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP5 DUP3 GT OR ISZERO PUSH3 0x3BD JUMPI PUSH3 0x3BD PUSH3 0x331 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP3 POP DUP8 DUP6 GT ISZERO PUSH3 0x3DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP2 POP JUMPDEST DUP5 DUP3 LT ISZERO PUSH3 0x406 JUMPI PUSH3 0x3F6 DUP3 PUSH3 0x347 JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH3 0x3E2 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x425 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x44B DUP7 DUP4 DUP8 ADD PUSH3 0x364 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x471 DUP6 DUP3 DUP7 ADD PUSH3 0x364 JUMP JUMPDEST SWAP2 POP 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 PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x4B2 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 PUSH2 0x1DA3 DUP1 PUSH3 0x4C9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x582 JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x535 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x31D50750 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3CF6FC GT PUSH2 0x195 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13C0 JUMP JUMPDEST PUSH2 0x5F6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x1434 JUMP JUMPDEST PUSH2 0x68B 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 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1597 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x387 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x791 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x86D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x166E JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x515 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x524 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x550 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0xB10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xC0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x252 JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x620 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x630 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x63C DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH2 0x6B0 DUP3 PUSH2 0xE90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0x6E2 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x6F0 JUMPI PUSH2 0x6F0 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x700 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x70C DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x718 DUP9 DUP9 DUP9 DUP9 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x750 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x761 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x78A JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7AC DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x10C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x853 DUP3 DUP3 PUSH2 0x114A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x7CD JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x92E SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x97A DUP2 PUSH2 0xD94 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x9B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D6 DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA94 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA2B SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA3D JUMPI PUSH2 0xA3D PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA56 JUMPI PUSH2 0xA56 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA68 SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8D DUP2 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D9 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAEC SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB3A DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0xB43 DUP3 PUSH2 0x857 JUMP JUMPDEST PUSH2 0xBA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC00 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x114A JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0xC36 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0xC44 JUMPI PUSH2 0xC44 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA0 DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xCEA JUMPI PUSH2 0xCEA PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD08 JUMPI PUSH2 0xD08 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD1A SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD2A DUP5 DUP5 DUP5 DUP5 PUSH2 0xFBA JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD61 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD77 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA3 JUMP JUMPDEST POP PUSH2 0xD88 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9E DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x7BB JUMP JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH2 0xE7A DUP2 TIMESTAMP PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0xECF DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 JUMPI PUSH2 0xEDC DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0xEE7 DUP4 PUSH1 0x20 PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEF8 SWAP3 SWAP2 SWAP1 PUSH2 0x1C3D 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 0x840 SWAP2 PUSH1 0x4 ADD PUSH2 0x1CB2 JUMP JUMPDEST PUSH2 0xF27 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xF43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF5F JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x853 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1014 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 0x1019 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1096 DUP2 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x10B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x10D0 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 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 0x1106 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1154 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST ISZERO PUSH2 0x853 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x11D0 DUP4 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x11DB SWAP1 PUSH1 0x2 PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11F2 JUMPI PUSH2 0x11F2 PUSH2 0x14E2 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 0x121C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1237 JUMPI PUSH2 0x1237 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1266 JUMPI PUSH2 0x1266 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x128A DUP5 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x1295 SWAP1 PUSH1 0x1 PUSH2 0x1C06 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x130D JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x1A2E JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12DF JUMPI PUSH2 0x12DF PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1306 DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP PUSH2 0x1298 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x78A 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 0x840 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x138A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x13DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E4 DUP9 PUSH2 0x135C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1412 DUP11 DUP3 DUP12 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP8 PUSH2 0x135C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14AE DUP10 DUP3 DUP11 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x14E2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1552 JUMPI PUSH2 0x1552 PUSH2 0x14E2 JUMP JUMPDEST PUSH2 0x1565 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x14F8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x157A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B6 DUP6 PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH2 0x15C4 PUSH1 0x20 DUP7 ADD PUSH2 0x135C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F2 DUP8 DUP3 DUP9 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1621 PUSH1 0x20 DUP5 ADD PUSH2 0x135C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1653 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 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x168C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AF DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16D4 DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16FA DUP13 DUP3 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x173B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x175E DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1783 DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A9 DUP12 DUP3 DUP13 ADD PUSH2 0x162A JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x17F3 PUSH2 0x14E2 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x1802 DUP3 DUP3 ADD PUSH2 0x14F8 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x181C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x183B JUMPI DUP3 CALLDATALOAD DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x1822 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x185E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1867 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x1875 PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x189D DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18BF DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1910 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x191E PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19A4 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19E1 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1953 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78A DUP3 PUSH2 0x135C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 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 PUSH2 0x1ACD JUMPI PUSH2 0x1ACD PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1B58 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 ADD DUP6 DUP2 ADD SWAP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B44 DUP7 DUP3 DUP5 PUSH2 0x1953 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AEE JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1B91 DUP5 PUSH2 0x135C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B78 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD DUP3 DUP2 SUB PUSH1 0x20 SWAP1 DUP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1BEE SWAP1 DUP3 ADD DUP8 DUP10 PUSH2 0x1AD4 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C34 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C1C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C75 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1CA6 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 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 0x1CD1 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1D65 JUMPI PUSH2 0x1D65 PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 JUMP 0x21 EXTCODECOPY PUSH10 0xCE38A096B380F0D51915 LOG4 0x5C 0x5C 0xE8 SMOD SDIV 0xBB PUSH19 0x9A87F10F5764E710A64736F6C634300081100 CALLER 0x5F PC 0xE3 LOG2 BALANCE PUSH4 0x49923CE3 PUSH25 0xF8D587DB2D72378AED66A8261C916544FA6846CA5B09AA5AE 0xB3 PUSH17 0x2CFD50B6B62BC4532604938F21248A27A1 0xD5 0xCA PUSH20 0x6082B6819CC1D8AA0F3194971A2A116679F7C209 0xF PUSH10 0x39C8D4E01A2A8D7E41D5 0x5E MSTORE8 MLOAD CHAINID SWAP15 PUSH4 0xFD643C72 PUSH18 0xC63C0180259ABA6B2D05451E3591A24E58B PUSH3 0x239378 ADDMOD JUMPI 0x26 0xF7 DUP4 ","sourceMap":"171:223:81:-:0;;;217:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;467:6:74;356:9:81;367;378:10;3238:55:22;-1:-1:-1;;;;;;;;;;;1162:32:22;3238:13;:55::i;:::-;3303:49;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3303:13:22;:49::i;:::-;3362;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3362:13:22;:49::i;:::-;3421:50;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;3421:13:22;:50::i;:::-;3513:46;-1:-1:-1;;;;;;;;;;;3553:4:22;3513:10;:46::i;:::-;-1:-1:-1;;;;;3600:19:22;;;3596:88;;3635:38;-1:-1:-1;;;;;;;;;;;3667:5:22;3635:10;:38::i;:::-;3744:9;3739:165;3763:9;:16;3759:1;:20;3739:165;;;3800:39;-1:-1:-1;;;;;;;;;;;3826:9:22;3836:1;3826:12;;;;;;;;:::i;:::-;;;;;;;3800:10;;;:39;;:::i;:::-;3853:40;-1:-1:-1;;;;;;;;;;;3880:9:22;3890:1;3880:12;;;;;;;;:::i;3853:40::-;3781:3;;;:::i;:::-;;;3739:165;;;;3949:9;3944:111;3968:9;:16;3964:1;:20;3944:111;;;4005:39;-1:-1:-1;;;;;;;;;;;4031:9:22;4041:1;4031:12;;;;;;;;:::i;4005:39::-;3986:3;;;:::i;:::-;;;3944:111;;;-1:-1:-1;4065:9:22;:20;;;4100:27;;;4115:1;2426:25:89;;2482:2;2467:18;;2460:34;;;4100:27:22;;2399:18:89;4100:27:22;;;;;;;3089:1045;;;;217:175:81;;171:223;;7046:247:17;7129:25;4478:12;;;;;;;;;;;:22;;;;7185:34;;;;7234:52;;4478:22;;7185:34;;4478:22;;:12;;7234:52;;7129:25;7234:52;7119:174;7046:247;;:::o;6811:110::-;6889:25;6900:4;6906:7;6889:10;:25::i;:::-;6811:110;;:::o;7461:233::-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:17;;;;;;;;;;;;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:17;;;;;;;;;:36;;-1:-1:-1;;7582:36:17;7614:4;7582:36;;;7664:12;719:10:47;;640:96;7664:12:17;-1:-1:-1;;;;;7637:40:17;7655:7;-1:-1:-1;;;;;7637:40:17;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;14:127:89:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:89;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:923::-;393:5;446:3;439:4;431:6;427:17;423:27;413:55;;464:1;461;454:12;413:55;487:13;;519:4;-1:-1:-1;;;;;572:10:89;;;569:36;;;585:18;;:::i;:::-;631:2;628:1;624:10;663:2;657:9;726:2;722:7;717:2;713;709:11;705:25;697:6;693:38;781:6;769:10;766:22;761:2;749:10;746:18;743:46;740:72;;;792:18;;:::i;:::-;828:2;821:22;878:18;;;954:15;;;950:24;;;912:15;;;;-1:-1:-1;986:15:89;;;983:35;;;1014:1;1011;1004:12;983:35;1050:2;1042:6;1038:15;1027:26;;1062:159;1078:6;1073:3;1070:15;1062:159;;;1144:34;1174:3;1144:34;:::i;:::-;1132:47;;1199:12;;;;1095;;;;1062:159;;;1239:6;328:923;-1:-1:-1;;;;;;;328:923:89:o;1256:614::-;1385:6;1393;1446:2;1434:9;1425:7;1421:23;1417:32;1414:52;;;1462:1;1459;1452:12;1414:52;1489:16;;-1:-1:-1;;;;;1554:14:89;;;1551:34;;;1581:1;1578;1571:12;1551:34;1604:72;1668:7;1659:6;1648:9;1644:22;1604:72;:::i;:::-;1594:82;;1722:2;1711:9;1707:18;1701:25;1685:41;;1751:2;1741:8;1738:16;1735:36;;;1767:1;1764;1757:12;1735:36;;1790:74;1856:7;1845:8;1834:9;1830:24;1790:74;:::i;:::-;1780:84;;;1256:614;;;;;:::o;1875:127::-;1936:10;1931:3;1927:20;1924:1;1917:31;1967:4;1964:1;1957:15;1991:4;1988:1;1981:15;2007:232;2046:3;2067:17;;;2064:140;;2126:10;2121:3;2117:20;2114:1;2107:31;2161:4;2158:1;2151:15;2189:4;2186:1;2179:15;2064:140;-1:-1:-1;2231:1:89;2220:13;;2007:232::o;2244:256::-;171:223:81;;;;;;"},"deployedBytecode":{"functionDebugData":{"@CANCELLER_ROLE_7278":{"entryPoint":null,"id":7278,"parameterSlots":0,"returnSlots":0},"@DEFAULT_ADMIN_ROLE_5166":{"entryPoint":null,"id":5166,"parameterSlots":0,"returnSlots":0},"@EXECUTOR_ROLE_7273":{"entryPoint":null,"id":7273,"parameterSlots":0,"returnSlots":0},"@PROPOSER_ROLE_7268":{"entryPoint":null,"id":7268,"parameterSlots":0,"returnSlots":0},"@TIMELOCK_ADMIN_ROLE_7263":{"entryPoint":null,"id":7263,"parameterSlots":0,"returnSlots":0},"@_7472":{"entryPoint":null,"id":7472,"parameterSlots":0,"returnSlots":0},"@_afterCall_8065":{"entryPoint":4237,"id":8065,"parameterSlots":1,"returnSlots":0},"@_beforeCall_8045":{"entryPoint":3870,"id":8045,"parameterSlots":2,"returnSlots":0},"@_checkRole_5231":{"entryPoint":3476,"id":5231,"parameterSlots":1,"returnSlots":0},"@_checkRole_5270":{"entryPoint":3781,"id":5270,"parameterSlots":2,"returnSlots":0},"@_execute_8015":{"entryPoint":4026,"id":8015,"parameterSlots":4,"returnSlots":0},"@_grantRole_5422":{"entryPoint":4294,"id":5422,"parameterSlots":2,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_revokeRole_5453":{"entryPoint":4426,"id":5453,"parameterSlots":2,"returnSlots":0},"@_schedule_7810":{"entryPoint":3489,"id":7810,"parameterSlots":2,"returnSlots":0},"@cancel_7836":{"entryPoint":2832,"id":7836,"parameterSlots":1,"returnSlots":0},"@executeBatch_7990":{"entryPoint":3082,"id":7990,"parameterSlots":8,"returnSlots":0},"@execute_7887":{"entryPoint":1718,"id":7887,"parameterSlots":6,"returnSlots":0},"@getMinDelay_7587":{"entryPoint":null,"id":7587,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_5285":{"entryPoint":null,"id":5285,"parameterSlots":1,"returnSlots":1},"@getTimestamp_7578":{"entryPoint":null,"id":7578,"parameterSlots":1,"returnSlots":1},"@grantRole_5305":{"entryPoint":1937,"id":5305,"parameterSlots":2,"returnSlots":0},"@hasRole_5218":{"entryPoint":2722,"id":5218,"parameterSlots":2,"returnSlots":1},"@hashOperationBatch_7646":{"entryPoint":2763,"id":7646,"parameterSlots":8,"returnSlots":1},"@hashOperation_7615":{"entryPoint":2321,"id":7615,"parameterSlots":6,"returnSlots":1},"@isOperationDone_7565":{"entryPoint":null,"id":7565,"parameterSlots":1,"returnSlots":1},"@isOperationPending_7526":{"entryPoint":2135,"id":7526,"parameterSlots":1,"returnSlots":1},"@isOperationReady_7550":{"entryPoint":1899,"id":7550,"parameterSlots":1,"returnSlots":1},"@isOperation_7511":{"entryPoint":1979,"id":7511,"parameterSlots":1,"returnSlots":1},"@onERC1155BatchReceived_8158":{"entryPoint":null,"id":8158,"parameterSlots":5,"returnSlots":1},"@onERC1155Received_8134":{"entryPoint":null,"id":8134,"parameterSlots":5,"returnSlots":1},"@onERC721Received_8112":{"entryPoint":null,"id":8112,"parameterSlots":4,"returnSlots":1},"@renounceRole_5348":{"entryPoint":2004,"id":5348,"parameterSlots":2,"returnSlots":0},"@revokeRole_5325":{"entryPoint":3045,"id":5325,"parameterSlots":2,"returnSlots":0},"@scheduleBatch_7776":{"entryPoint":2384,"id":7776,"parameterSlots":9,"returnSlots":0},"@schedule_7691":{"entryPoint":1526,"id":7691,"parameterSlots":7,"returnSlots":0},"@supportsInterface_15325":{"entryPoint":null,"id":15325,"parameterSlots":1,"returnSlots":1},"@supportsInterface_5199":{"entryPoint":3728,"id":5199,"parameterSlots":1,"returnSlots":1},"@supportsInterface_7496":{"entryPoint":1675,"id":7496,"parameterSlots":1,"returnSlots":1},"@toHexString_14552":{"entryPoint":4545,"id":14552,"parameterSlots":2,"returnSlots":1},"@toHexString_14572":{"entryPoint":4527,"id":14572,"parameterSlots":1,"returnSlots":1},"@updateDelay_8092":{"entryPoint":2157,"id":8092,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":4956,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_address_dyn_calldata":{"entryPoint":5674,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_array_uint256_dyn":{"entryPoint":6087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":5416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes_calldata":{"entryPoint":4984,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":6724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr":{"entryPoint":6214,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":5527,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":6383,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32":{"entryPoint":5214,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256":{"entryPoint":5056,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32":{"entryPoint":5919,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256":{"entryPoint":5742,"id":null,"parameterSlots":2,"returnSlots":9},"abi_decode_tuple_t_bytes32":{"entryPoint":5321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5630,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5172,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_array_bytes_calldata_dyn_calldata":{"entryPoint":6868,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_bytes_calldata":{"entryPoint":6483,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":7471,"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":7229,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6585,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed":{"entryPoint":6524,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":7013,"id":null,"parameterSlots":9,"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_bytes4__to_t_bytes4__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":7346,"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_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6635,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7397,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__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_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__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},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":6751,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":5368,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7174,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7487,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":7193,"id":null,"parameterSlots":3,"returnSlots":0},"decrement_t_uint256":{"entryPoint":7510,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":6843,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6821,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6702,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5346,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:22292:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:89","statements":[{"nodeType":"YulAssignment","src":"73:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:89"},"nodeType":"YulFunctionCall","src":"82:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:89"}]},{"body":{"nodeType":"YulBlock","src":"165:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:89"},"nodeType":"YulFunctionCall","src":"167:12:89"},"nodeType":"YulExpressionStatement","src":"167:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:89"},"nodeType":"YulFunctionCall","src":"146:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:89"},"nodeType":"YulFunctionCall","src":"142:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:89"},"nodeType":"YulFunctionCall","src":"131:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:89"},"nodeType":"YulFunctionCall","src":"121:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:89"},"nodeType":"YulFunctionCall","src":"114:50:89"},"nodeType":"YulIf","src":"111:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:89","type":""}],"src":"14:173:89"},{"body":{"nodeType":"YulBlock","src":"264:275:89","statements":[{"body":{"nodeType":"YulBlock","src":"313:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"322:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"325:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"315:6:89"},"nodeType":"YulFunctionCall","src":"315:12:89"},"nodeType":"YulExpressionStatement","src":"315:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"292:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"300:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"288:3:89"},"nodeType":"YulFunctionCall","src":"288:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"307:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"284:3:89"},"nodeType":"YulFunctionCall","src":"284:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"277:6:89"},"nodeType":"YulFunctionCall","src":"277:35:89"},"nodeType":"YulIf","src":"274:55:89"},{"nodeType":"YulAssignment","src":"338:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"361:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"348:12:89"},"nodeType":"YulFunctionCall","src":"348:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"338:6:89"}]},{"body":{"nodeType":"YulBlock","src":"411:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"420:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"413:6:89"},"nodeType":"YulFunctionCall","src":"413:12:89"},"nodeType":"YulExpressionStatement","src":"413:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"383:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"391:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"380:2:89"},"nodeType":"YulFunctionCall","src":"380:30:89"},"nodeType":"YulIf","src":"377:50:89"},{"nodeType":"YulAssignment","src":"436:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"452:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"460:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"448:3:89"},"nodeType":"YulFunctionCall","src":"448:17:89"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"436:8:89"}]},{"body":{"nodeType":"YulBlock","src":"517:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"526:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"529:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"519:6:89"},"nodeType":"YulFunctionCall","src":"519:12:89"},"nodeType":"YulExpressionStatement","src":"519:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"488:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"496:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"484:3:89"},"nodeType":"YulFunctionCall","src":"484:19:89"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"480:3:89"},"nodeType":"YulFunctionCall","src":"480:30:89"},{"name":"end","nodeType":"YulIdentifier","src":"512:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"477:2:89"},"nodeType":"YulFunctionCall","src":"477:39:89"},"nodeType":"YulIf","src":"474:59:89"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"227:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"235:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"243:8:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"253:6:89","type":""}],"src":"192:347:89"},{"body":{"nodeType":"YulBlock","src":"718:584:89","statements":[{"body":{"nodeType":"YulBlock","src":"765:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"774:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"777:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"767:6:89"},"nodeType":"YulFunctionCall","src":"767:12:89"},"nodeType":"YulExpressionStatement","src":"767:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"739:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"748:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"735:3:89"},"nodeType":"YulFunctionCall","src":"735:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"760:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"731:3:89"},"nodeType":"YulFunctionCall","src":"731:33:89"},"nodeType":"YulIf","src":"728:53:89"},{"nodeType":"YulAssignment","src":"790:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"819:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"800:18:89"},"nodeType":"YulFunctionCall","src":"800:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"790:6:89"}]},{"nodeType":"YulAssignment","src":"838:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"865:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"876:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"861:3:89"},"nodeType":"YulFunctionCall","src":"861:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"848:12:89"},"nodeType":"YulFunctionCall","src":"848:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"838:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"889:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"920:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"931:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"916:3:89"},"nodeType":"YulFunctionCall","src":"916:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"903:12:89"},"nodeType":"YulFunctionCall","src":"903:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"893:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"978:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"987:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"990:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"980:6:89"},"nodeType":"YulFunctionCall","src":"980:12:89"},"nodeType":"YulExpressionStatement","src":"980:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"950:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"958:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"947:2:89"},"nodeType":"YulFunctionCall","src":"947:30:89"},"nodeType":"YulIf","src":"944:50:89"},{"nodeType":"YulVariableDeclaration","src":"1003:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1059:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"1070:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1055:3:89"},"nodeType":"YulFunctionCall","src":"1055:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1079:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1029:25:89"},"nodeType":"YulFunctionCall","src":"1029:58:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"1007:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"1017:8:89","type":""}]},{"nodeType":"YulAssignment","src":"1096:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1106:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1096:6:89"}]},{"nodeType":"YulAssignment","src":"1123:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"1133:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1123:6:89"}]},{"nodeType":"YulAssignment","src":"1150:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1177:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1188:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1173:3:89"},"nodeType":"YulFunctionCall","src":"1173:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1160:12:89"},"nodeType":"YulFunctionCall","src":"1160:32:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1150:6:89"}]},{"nodeType":"YulAssignment","src":"1201:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1228:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1239:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1224:3:89"},"nodeType":"YulFunctionCall","src":"1224:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1211:12:89"},"nodeType":"YulFunctionCall","src":"1211:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1201:6:89"}]},{"nodeType":"YulAssignment","src":"1253:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1280:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1291:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1276:3:89"},"nodeType":"YulFunctionCall","src":"1276:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1263:12:89"},"nodeType":"YulFunctionCall","src":"1263:33:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"1253:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"636:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"647:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"659:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"667:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"675:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"683:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"691:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"699:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"707:6:89","type":""}],"src":"544:758:89"},{"body":{"nodeType":"YulBlock","src":"1376:217:89","statements":[{"body":{"nodeType":"YulBlock","src":"1422:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1431:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1434:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1424:6:89"},"nodeType":"YulFunctionCall","src":"1424:12:89"},"nodeType":"YulExpressionStatement","src":"1424:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1397:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1393:3:89"},"nodeType":"YulFunctionCall","src":"1393:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1418:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1389:3:89"},"nodeType":"YulFunctionCall","src":"1389:32:89"},"nodeType":"YulIf","src":"1386:52:89"},{"nodeType":"YulVariableDeclaration","src":"1447:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1473:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1460:12:89"},"nodeType":"YulFunctionCall","src":"1460:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1451:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1547:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1556:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1559:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1549:6:89"},"nodeType":"YulFunctionCall","src":"1549:12:89"},"nodeType":"YulExpressionStatement","src":"1549:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1505:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1516:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1527:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1532:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1523:3:89"},"nodeType":"YulFunctionCall","src":"1523:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1512:3:89"},"nodeType":"YulFunctionCall","src":"1512:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1502:2:89"},"nodeType":"YulFunctionCall","src":"1502:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1495:6:89"},"nodeType":"YulFunctionCall","src":"1495:51:89"},"nodeType":"YulIf","src":"1492:71:89"},{"nodeType":"YulAssignment","src":"1572:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"1582:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1572:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1342:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1353:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1365:6:89","type":""}],"src":"1307:286:89"},{"body":{"nodeType":"YulBlock","src":"1693:92:89","statements":[{"nodeType":"YulAssignment","src":"1703:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1715:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1726:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1711:3:89"},"nodeType":"YulFunctionCall","src":"1711:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1703:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1745:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1770:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1763:6:89"},"nodeType":"YulFunctionCall","src":"1763:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1756:6:89"},"nodeType":"YulFunctionCall","src":"1756:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1738:6:89"},"nodeType":"YulFunctionCall","src":"1738:41:89"},"nodeType":"YulExpressionStatement","src":"1738:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1662:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1673:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1684:4:89","type":""}],"src":"1598:187:89"},{"body":{"nodeType":"YulBlock","src":"1891:76:89","statements":[{"nodeType":"YulAssignment","src":"1901:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1913:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1924:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1909:3:89"},"nodeType":"YulFunctionCall","src":"1909:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1901:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1943:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1954:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1936:6:89"},"nodeType":"YulFunctionCall","src":"1936:25:89"},"nodeType":"YulExpressionStatement","src":"1936:25:89"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1860:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1871:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1882:4:89","type":""}],"src":"1790:177:89"},{"body":{"nodeType":"YulBlock","src":"2129:532:89","statements":[{"body":{"nodeType":"YulBlock","src":"2176:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2185:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2188:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2178:6:89"},"nodeType":"YulFunctionCall","src":"2178:12:89"},"nodeType":"YulExpressionStatement","src":"2178:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2150:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2146:3:89"},"nodeType":"YulFunctionCall","src":"2146:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2171:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2142:3:89"},"nodeType":"YulFunctionCall","src":"2142:33:89"},"nodeType":"YulIf","src":"2139:53:89"},{"nodeType":"YulAssignment","src":"2201:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2211:18:89"},"nodeType":"YulFunctionCall","src":"2211:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2201:6:89"}]},{"nodeType":"YulAssignment","src":"2249:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2276:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2287:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2272:3:89"},"nodeType":"YulFunctionCall","src":"2272:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2259:12:89"},"nodeType":"YulFunctionCall","src":"2259:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2249:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"2300:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2331:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2342:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2327:3:89"},"nodeType":"YulFunctionCall","src":"2327:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2314:12:89"},"nodeType":"YulFunctionCall","src":"2314:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2304:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2398:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2401:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2391:6:89"},"nodeType":"YulFunctionCall","src":"2391:12:89"},"nodeType":"YulExpressionStatement","src":"2391:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2361:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2369:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2358:2:89"},"nodeType":"YulFunctionCall","src":"2358:30:89"},"nodeType":"YulIf","src":"2355:50:89"},{"nodeType":"YulVariableDeclaration","src":"2414:84:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2481:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2466:3:89"},"nodeType":"YulFunctionCall","src":"2466:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2490:7:89"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2440:25:89"},"nodeType":"YulFunctionCall","src":"2440:58:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2418:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2428:8:89","type":""}]},{"nodeType":"YulAssignment","src":"2507:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2517:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2507:6:89"}]},{"nodeType":"YulAssignment","src":"2534:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2544:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2534:6:89"}]},{"nodeType":"YulAssignment","src":"2561:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2588:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2599:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:89"},"nodeType":"YulFunctionCall","src":"2584:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2571:12:89"},"nodeType":"YulFunctionCall","src":"2571:32:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2561:6:89"}]},{"nodeType":"YulAssignment","src":"2612:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2639:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2650:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2635:3:89"},"nodeType":"YulFunctionCall","src":"2635:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2622:12:89"},"nodeType":"YulFunctionCall","src":"2622:33:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2612:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2055:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2066:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2078:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2086:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2094:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2102:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2110:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2118:6:89","type":""}],"src":"1972:689:89"},{"body":{"nodeType":"YulBlock","src":"2736:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"2782:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2791:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2794:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2784:6:89"},"nodeType":"YulFunctionCall","src":"2784:12:89"},"nodeType":"YulExpressionStatement","src":"2784:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2757:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2753:3:89"},"nodeType":"YulFunctionCall","src":"2753:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2778:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2749:3:89"},"nodeType":"YulFunctionCall","src":"2749:32:89"},"nodeType":"YulIf","src":"2746:52:89"},{"nodeType":"YulAssignment","src":"2807:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2830:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2817:12:89"},"nodeType":"YulFunctionCall","src":"2817:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2807:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2702:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2713:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2725:6:89","type":""}],"src":"2666:180:89"},{"body":{"nodeType":"YulBlock","src":"2883:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2900:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2907:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2912:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2903:3:89"},"nodeType":"YulFunctionCall","src":"2903:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2893:6:89"},"nodeType":"YulFunctionCall","src":"2893:31:89"},"nodeType":"YulExpressionStatement","src":"2893:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2940:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2943:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2933:6:89"},"nodeType":"YulFunctionCall","src":"2933:15:89"},"nodeType":"YulExpressionStatement","src":"2933:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2964:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2967:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:89"},"nodeType":"YulFunctionCall","src":"2957:15:89"},"nodeType":"YulExpressionStatement","src":"2957:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2851:127:89"},{"body":{"nodeType":"YulBlock","src":"3028:230:89","statements":[{"nodeType":"YulAssignment","src":"3038:19:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3054:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3048:5:89"},"nodeType":"YulFunctionCall","src":"3048:9:89"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3038:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3066:58:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3088:6:89"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"3104:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"3110:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:89"},"nodeType":"YulFunctionCall","src":"3100:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3119:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3115:3:89"},"nodeType":"YulFunctionCall","src":"3115:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3096:3:89"},"nodeType":"YulFunctionCall","src":"3096:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3084:3:89"},"nodeType":"YulFunctionCall","src":"3084:40:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3070:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3199:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3201:16:89"},"nodeType":"YulFunctionCall","src":"3201:18:89"},"nodeType":"YulExpressionStatement","src":"3201:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3142:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"3154:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3139:2:89"},"nodeType":"YulFunctionCall","src":"3139:34:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3178:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3190:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3175:2:89"},"nodeType":"YulFunctionCall","src":"3175:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3136:2:89"},"nodeType":"YulFunctionCall","src":"3136:62:89"},"nodeType":"YulIf","src":"3133:88:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3237:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3241:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3230:6:89"},"nodeType":"YulFunctionCall","src":"3230:22:89"},"nodeType":"YulExpressionStatement","src":"3230:22:89"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"3008:4:89","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3017:6:89","type":""}],"src":"2983:275:89"},{"body":{"nodeType":"YulBlock","src":"3315:478:89","statements":[{"body":{"nodeType":"YulBlock","src":"3364:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3373:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3376:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3366:6:89"},"nodeType":"YulFunctionCall","src":"3366:12:89"},"nodeType":"YulExpressionStatement","src":"3366:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3343:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3351:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3339:3:89"},"nodeType":"YulFunctionCall","src":"3339:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"3358:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3335:3:89"},"nodeType":"YulFunctionCall","src":"3335:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3328:6:89"},"nodeType":"YulFunctionCall","src":"3328:35:89"},"nodeType":"YulIf","src":"3325:55:89"},{"nodeType":"YulVariableDeclaration","src":"3389:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3412:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3399:12:89"},"nodeType":"YulFunctionCall","src":"3399:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3393:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3458:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3460:16:89"},"nodeType":"YulFunctionCall","src":"3460:18:89"},"nodeType":"YulExpressionStatement","src":"3460:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3434:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3438:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3431:2:89"},"nodeType":"YulFunctionCall","src":"3431:26:89"},"nodeType":"YulIf","src":"3428:52:89"},{"nodeType":"YulVariableDeclaration","src":"3489:70:89","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3532:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"3536:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3528:3:89"},"nodeType":"YulFunctionCall","src":"3528:13:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3547:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3543:3:89"},"nodeType":"YulFunctionCall","src":"3543:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3524:3:89"},"nodeType":"YulFunctionCall","src":"3524:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"3553:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3520:3:89"},"nodeType":"YulFunctionCall","src":"3520:38:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3504:15:89"},"nodeType":"YulFunctionCall","src":"3504:55:89"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"3493:7:89","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3575:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3584:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3568:6:89"},"nodeType":"YulFunctionCall","src":"3568:19:89"},"nodeType":"YulExpressionStatement","src":"3568:19:89"},{"body":{"nodeType":"YulBlock","src":"3635:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3644:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3647:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3637:6:89"},"nodeType":"YulFunctionCall","src":"3637:12:89"},"nodeType":"YulExpressionStatement","src":"3637:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3610:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3618:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3606:3:89"},"nodeType":"YulFunctionCall","src":"3606:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"3623:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3602:3:89"},"nodeType":"YulFunctionCall","src":"3602:26:89"},{"name":"end","nodeType":"YulIdentifier","src":"3630:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3599:2:89"},"nodeType":"YulFunctionCall","src":"3599:35:89"},"nodeType":"YulIf","src":"3596:55:89"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3677:7:89"},{"kind":"number","nodeType":"YulLiteral","src":"3686:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3673:3:89"},"nodeType":"YulFunctionCall","src":"3673:18:89"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3697:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3705:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3693:3:89"},"nodeType":"YulFunctionCall","src":"3693:17:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3712:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3660:12:89"},"nodeType":"YulFunctionCall","src":"3660:55:89"},"nodeType":"YulExpressionStatement","src":"3660:55:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"3739:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3748:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3735:3:89"},"nodeType":"YulFunctionCall","src":"3735:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"3753:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3731:3:89"},"nodeType":"YulFunctionCall","src":"3731:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"3760:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3724:6:89"},"nodeType":"YulFunctionCall","src":"3724:38:89"},"nodeType":"YulExpressionStatement","src":"3724:38:89"},{"nodeType":"YulAssignment","src":"3771:16:89","value":{"name":"array_1","nodeType":"YulIdentifier","src":"3780:7:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3771:5:89"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3289:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"3297:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3305:5:89","type":""}],"src":"3263:530:89"},{"body":{"nodeType":"YulBlock","src":"3928:407:89","statements":[{"body":{"nodeType":"YulBlock","src":"3975:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3984:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3987:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3977:6:89"},"nodeType":"YulFunctionCall","src":"3977:12:89"},"nodeType":"YulExpressionStatement","src":"3977:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3949:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3958:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3945:3:89"},"nodeType":"YulFunctionCall","src":"3945:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3970:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3941:3:89"},"nodeType":"YulFunctionCall","src":"3941:33:89"},"nodeType":"YulIf","src":"3938:53:89"},{"nodeType":"YulAssignment","src":"4000:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4029:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4010:18:89"},"nodeType":"YulFunctionCall","src":"4010:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4000:6:89"}]},{"nodeType":"YulAssignment","src":"4048:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4081:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4092:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4077:3:89"},"nodeType":"YulFunctionCall","src":"4077:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4058:18:89"},"nodeType":"YulFunctionCall","src":"4058:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4048:6:89"}]},{"nodeType":"YulAssignment","src":"4105:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4132:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4143:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4128:3:89"},"nodeType":"YulFunctionCall","src":"4128:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4115:12:89"},"nodeType":"YulFunctionCall","src":"4115:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4105:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4156:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4187:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4198:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4183:3:89"},"nodeType":"YulFunctionCall","src":"4183:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4170:12:89"},"nodeType":"YulFunctionCall","src":"4170:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4160:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4245:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4254:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4257:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4247:6:89"},"nodeType":"YulFunctionCall","src":"4247:12:89"},"nodeType":"YulExpressionStatement","src":"4247:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4217:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4225:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4214:2:89"},"nodeType":"YulFunctionCall","src":"4214:30:89"},"nodeType":"YulIf","src":"4211:50:89"},{"nodeType":"YulAssignment","src":"4270:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4301:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4312:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4297:3:89"},"nodeType":"YulFunctionCall","src":"4297:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4321:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"4280:16:89"},"nodeType":"YulFunctionCall","src":"4280:49:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4270:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3870:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3881:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3893:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3901:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3909:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3917:6:89","type":""}],"src":"3798:537:89"},{"body":{"nodeType":"YulBlock","src":"4439:103:89","statements":[{"nodeType":"YulAssignment","src":"4449:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4461:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4472:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4457:3:89"},"nodeType":"YulFunctionCall","src":"4457:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4449:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4491:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4506:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4518:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4523:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4514:3:89"},"nodeType":"YulFunctionCall","src":"4514:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4502:3:89"},"nodeType":"YulFunctionCall","src":"4502:33:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4484:6:89"},"nodeType":"YulFunctionCall","src":"4484:52:89"},"nodeType":"YulExpressionStatement","src":"4484:52:89"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4408:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4419:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4430:4:89","type":""}],"src":"4340:202:89"},{"body":{"nodeType":"YulBlock","src":"4634:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"4680:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4689:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4692:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4682:6:89"},"nodeType":"YulFunctionCall","src":"4682:12:89"},"nodeType":"YulExpressionStatement","src":"4682:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4655:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4664:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4651:3:89"},"nodeType":"YulFunctionCall","src":"4651:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4676:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4647:3:89"},"nodeType":"YulFunctionCall","src":"4647:32:89"},"nodeType":"YulIf","src":"4644:52:89"},{"nodeType":"YulAssignment","src":"4705:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4728:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4715:12:89"},"nodeType":"YulFunctionCall","src":"4715:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4705:6:89"}]},{"nodeType":"YulAssignment","src":"4747:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4780:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4791:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4776:3:89"},"nodeType":"YulFunctionCall","src":"4776:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4757:18:89"},"nodeType":"YulFunctionCall","src":"4757:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4747:6:89"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4592:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4603:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4615:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4623:6:89","type":""}],"src":"4547:254:89"},{"body":{"nodeType":"YulBlock","src":"4876:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"4922:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4931:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4934:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4924:6:89"},"nodeType":"YulFunctionCall","src":"4924:12:89"},"nodeType":"YulExpressionStatement","src":"4924:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4897:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4906:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4893:3:89"},"nodeType":"YulFunctionCall","src":"4893:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4918:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4889:3:89"},"nodeType":"YulFunctionCall","src":"4889:32:89"},"nodeType":"YulIf","src":"4886:52:89"},{"nodeType":"YulAssignment","src":"4947:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4970:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4957:12:89"},"nodeType":"YulFunctionCall","src":"4957:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4947:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4842:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4853:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4865:6:89","type":""}],"src":"4806:180:89"},{"body":{"nodeType":"YulBlock","src":"5075:283:89","statements":[{"body":{"nodeType":"YulBlock","src":"5124:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5133:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5136:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5126:6:89"},"nodeType":"YulFunctionCall","src":"5126:12:89"},"nodeType":"YulExpressionStatement","src":"5126:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5103:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5111:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5099:3:89"},"nodeType":"YulFunctionCall","src":"5099:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"5118:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5095:3:89"},"nodeType":"YulFunctionCall","src":"5095:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5088:6:89"},"nodeType":"YulFunctionCall","src":"5088:35:89"},"nodeType":"YulIf","src":"5085:55:89"},{"nodeType":"YulAssignment","src":"5149:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5172:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5159:12:89"},"nodeType":"YulFunctionCall","src":"5159:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5149:6:89"}]},{"body":{"nodeType":"YulBlock","src":"5222:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5231:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5234:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5224:6:89"},"nodeType":"YulFunctionCall","src":"5224:12:89"},"nodeType":"YulExpressionStatement","src":"5224:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5194:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5202:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5191:2:89"},"nodeType":"YulFunctionCall","src":"5191:30:89"},"nodeType":"YulIf","src":"5188:50:89"},{"nodeType":"YulAssignment","src":"5247:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5263:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5271:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5259:3:89"},"nodeType":"YulFunctionCall","src":"5259:17:89"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"5247:8:89"}]},{"body":{"nodeType":"YulBlock","src":"5336:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5345:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5348:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5338:6:89"},"nodeType":"YulFunctionCall","src":"5338:12:89"},"nodeType":"YulExpressionStatement","src":"5338:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5299:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5311:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"5314:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5307:3:89"},"nodeType":"YulFunctionCall","src":"5307:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5295:3:89"},"nodeType":"YulFunctionCall","src":"5295:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"5324:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5291:3:89"},"nodeType":"YulFunctionCall","src":"5291:38:89"},{"name":"end","nodeType":"YulIdentifier","src":"5331:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5288:2:89"},"nodeType":"YulFunctionCall","src":"5288:47:89"},"nodeType":"YulIf","src":"5285:67:89"}]},"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5038:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"5046:3:89","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"5054:8:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"5064:6:89","type":""}],"src":"4991:367:89"},{"body":{"nodeType":"YulBlock","src":"5634:1035:89","statements":[{"body":{"nodeType":"YulBlock","src":"5681:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5690:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5693:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5683:6:89"},"nodeType":"YulFunctionCall","src":"5683:12:89"},"nodeType":"YulExpressionStatement","src":"5683:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5655:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5664:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5651:3:89"},"nodeType":"YulFunctionCall","src":"5651:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5676:3:89","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5647:3:89"},"nodeType":"YulFunctionCall","src":"5647:33:89"},"nodeType":"YulIf","src":"5644:53:89"},{"nodeType":"YulVariableDeclaration","src":"5706:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5733:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5720:12:89"},"nodeType":"YulFunctionCall","src":"5720:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5710:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5752:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"5762:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5756:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5807:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5816:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5819:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5809:6:89"},"nodeType":"YulFunctionCall","src":"5809:12:89"},"nodeType":"YulExpressionStatement","src":"5809:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5795:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5803:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5792:2:89"},"nodeType":"YulFunctionCall","src":"5792:14:89"},"nodeType":"YulIf","src":"5789:34:89"},{"nodeType":"YulVariableDeclaration","src":"5832:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5900:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5911:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5896:3:89"},"nodeType":"YulFunctionCall","src":"5896:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5920:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"5858:37:89"},"nodeType":"YulFunctionCall","src":"5858:70:89"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"5836:8:89","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"5846:8:89","type":""}]},{"nodeType":"YulAssignment","src":"5937:18:89","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"5947:8:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5937:6:89"}]},{"nodeType":"YulAssignment","src":"5964:18:89","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5974:8:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5964:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5991:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6024:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6035:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6020:3:89"},"nodeType":"YulFunctionCall","src":"6020:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6007:12:89"},"nodeType":"YulFunctionCall","src":"6007:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5995:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6068:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6077:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6080:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6070:6:89"},"nodeType":"YulFunctionCall","src":"6070:12:89"},"nodeType":"YulExpressionStatement","src":"6070:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6054:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6064:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6051:2:89"},"nodeType":"YulFunctionCall","src":"6051:16:89"},"nodeType":"YulIf","src":"6048:36:89"},{"nodeType":"YulVariableDeclaration","src":"6093:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6161:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6172:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6157:3:89"},"nodeType":"YulFunctionCall","src":"6157:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6183:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6119:37:89"},"nodeType":"YulFunctionCall","src":"6119:72:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"6097:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6107:8:89","type":""}]},{"nodeType":"YulAssignment","src":"6200:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6210:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6200:6:89"}]},{"nodeType":"YulAssignment","src":"6227:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6237:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6227:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"6254:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:89"},"nodeType":"YulFunctionCall","src":"6283:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6270:12:89"},"nodeType":"YulFunctionCall","src":"6270:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"6258:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6331:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6340:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6343:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6333:6:89"},"nodeType":"YulFunctionCall","src":"6333:12:89"},"nodeType":"YulExpressionStatement","src":"6333:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"6317:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"6327:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6314:2:89"},"nodeType":"YulFunctionCall","src":"6314:16:89"},"nodeType":"YulIf","src":"6311:36:89"},{"nodeType":"YulVariableDeclaration","src":"6356:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6424:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"6435:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6420:3:89"},"nodeType":"YulFunctionCall","src":"6420:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6446:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"6382:37:89"},"nodeType":"YulFunctionCall","src":"6382:72:89"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"6360:8:89","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"6370:8:89","type":""}]},{"nodeType":"YulAssignment","src":"6463:18:89","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6473:8:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6463:6:89"}]},{"nodeType":"YulAssignment","src":"6490:18:89","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"6500:8:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6490:6:89"}]},{"nodeType":"YulAssignment","src":"6517:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6544:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6555:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6540:3:89"},"nodeType":"YulFunctionCall","src":"6540:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6527:12:89"},"nodeType":"YulFunctionCall","src":"6527:32:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"6517:6:89"}]},{"nodeType":"YulAssignment","src":"6568:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6595:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6606:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6591:3:89"},"nodeType":"YulFunctionCall","src":"6591:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6578:12:89"},"nodeType":"YulFunctionCall","src":"6578:33:89"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"6568:6:89"}]},{"nodeType":"YulAssignment","src":"6620:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6647:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6658:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6643:3:89"},"nodeType":"YulFunctionCall","src":"6643:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6630:12:89"},"nodeType":"YulFunctionCall","src":"6630:33:89"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"6620:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5536:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5547:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5559:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5567:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5575:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5583:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5591:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5599:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"5607:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"5615:6:89","type":""},{"name":"value8","nodeType":"YulTypedName","src":"5623:6:89","type":""}],"src":"5363:1306:89"},{"body":{"nodeType":"YulBlock","src":"6928:983:89","statements":[{"body":{"nodeType":"YulBlock","src":"6975:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6984:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6987:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6977:6:89"},"nodeType":"YulFunctionCall","src":"6977:12:89"},"nodeType":"YulExpressionStatement","src":"6977:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6949:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6945:3:89"},"nodeType":"YulFunctionCall","src":"6945:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"6970:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6941:3:89"},"nodeType":"YulFunctionCall","src":"6941:33:89"},"nodeType":"YulIf","src":"6938:53:89"},{"nodeType":"YulVariableDeclaration","src":"7000:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7027:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7014:12:89"},"nodeType":"YulFunctionCall","src":"7014:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7004:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7046:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"7056:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7050:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7101:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7110:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7113:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7103:6:89"},"nodeType":"YulFunctionCall","src":"7103:12:89"},"nodeType":"YulExpressionStatement","src":"7103:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7089:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7097:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7086:2:89"},"nodeType":"YulFunctionCall","src":"7086:14:89"},"nodeType":"YulIf","src":"7083:34:89"},{"nodeType":"YulVariableDeclaration","src":"7126:96:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7194:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"7205:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7190:3:89"},"nodeType":"YulFunctionCall","src":"7190:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7214:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7152:37:89"},"nodeType":"YulFunctionCall","src":"7152:70:89"},"variables":[{"name":"value0_1","nodeType":"YulTypedName","src":"7130:8:89","type":""},{"name":"value1_1","nodeType":"YulTypedName","src":"7140:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7231:18:89","value":{"name":"value0_1","nodeType":"YulIdentifier","src":"7241:8:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7231:6:89"}]},{"nodeType":"YulAssignment","src":"7258:18:89","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"7268:8:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7258:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"7285:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7318:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7329:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7314:3:89"},"nodeType":"YulFunctionCall","src":"7314:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7301:12:89"},"nodeType":"YulFunctionCall","src":"7301:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7289:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7362:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7371:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7374:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7364:6:89"},"nodeType":"YulFunctionCall","src":"7364:12:89"},"nodeType":"YulExpressionStatement","src":"7364:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7348:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7358:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7345:2:89"},"nodeType":"YulFunctionCall","src":"7345:16:89"},"nodeType":"YulIf","src":"7342:36:89"},{"nodeType":"YulVariableDeclaration","src":"7387:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7455:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7466:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7451:3:89"},"nodeType":"YulFunctionCall","src":"7451:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7477:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7413:37:89"},"nodeType":"YulFunctionCall","src":"7413:72:89"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"7391:8:89","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"7401:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7494:18:89","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"7504:8:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"7494:6:89"}]},{"nodeType":"YulAssignment","src":"7521:18:89","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"7531:8:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"7521:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"7548:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7581:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7592:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7577:3:89"},"nodeType":"YulFunctionCall","src":"7577:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7564:12:89"},"nodeType":"YulFunctionCall","src":"7564:32:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7552:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"7625:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7634:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7637:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7627:6:89"},"nodeType":"YulFunctionCall","src":"7627:12:89"},"nodeType":"YulExpressionStatement","src":"7627:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7611:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"7621:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7608:2:89"},"nodeType":"YulFunctionCall","src":"7608:16:89"},"nodeType":"YulIf","src":"7605:36:89"},{"nodeType":"YulVariableDeclaration","src":"7650:98:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7718:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7729:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7714:3:89"},"nodeType":"YulFunctionCall","src":"7714:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7740:7:89"}],"functionName":{"name":"abi_decode_array_address_dyn_calldata","nodeType":"YulIdentifier","src":"7676:37:89"},"nodeType":"YulFunctionCall","src":"7676:72:89"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"7654:8:89","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"7664:8:89","type":""}]},{"nodeType":"YulAssignment","src":"7757:18:89","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7767:8:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7757:6:89"}]},{"nodeType":"YulAssignment","src":"7784:18:89","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"7794:8:89"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7784:6:89"}]},{"nodeType":"YulAssignment","src":"7811:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7838:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7849:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7834:3:89"},"nodeType":"YulFunctionCall","src":"7834:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7821:12:89"},"nodeType":"YulFunctionCall","src":"7821:32:89"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"7811:6:89"}]},{"nodeType":"YulAssignment","src":"7862:43:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7889:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7900:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7885:3:89"},"nodeType":"YulFunctionCall","src":"7885:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7872:12:89"},"nodeType":"YulFunctionCall","src":"7872:33:89"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"7862:6:89"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6838:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6849:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6861:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6869:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6877:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6885:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6893:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6901:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6909:6:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6917:6:89","type":""}],"src":"6674:1237:89"},{"body":{"nodeType":"YulBlock","src":"7980:648:89","statements":[{"body":{"nodeType":"YulBlock","src":"8029:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8038:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8041:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8031:6:89"},"nodeType":"YulFunctionCall","src":"8031:12:89"},"nodeType":"YulExpressionStatement","src":"8031:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8008:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8016:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8004:3:89"},"nodeType":"YulFunctionCall","src":"8004:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"8023:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8000:3:89"},"nodeType":"YulFunctionCall","src":"8000:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7993:6:89"},"nodeType":"YulFunctionCall","src":"7993:35:89"},"nodeType":"YulIf","src":"7990:55:89"},{"nodeType":"YulVariableDeclaration","src":"8054:30:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8077:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8064:12:89"},"nodeType":"YulFunctionCall","src":"8064:20:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8058:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8093:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"8103:4:89","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8097:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8146:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"8148:16:89"},"nodeType":"YulFunctionCall","src":"8148:18:89"},"nodeType":"YulExpressionStatement","src":"8148:18:89"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8122:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"8126:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8119:2:89"},"nodeType":"YulFunctionCall","src":"8119:26:89"},"nodeType":"YulIf","src":"8116:52:89"},{"nodeType":"YulVariableDeclaration","src":"8177:20:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:1:89","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"8194:2:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8187:3:89"},"nodeType":"YulFunctionCall","src":"8187:10:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"8181:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8206:39:89","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"8237:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8241:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8233:3:89"},"nodeType":"YulFunctionCall","src":"8233:11:89"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8217:15:89"},"nodeType":"YulFunctionCall","src":"8217:28:89"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"8210:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8254:16:89","value":{"name":"dst","nodeType":"YulIdentifier","src":"8267:3:89"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"8258:5:89","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8286:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"8291:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8279:6:89"},"nodeType":"YulFunctionCall","src":"8279:15:89"},"nodeType":"YulExpressionStatement","src":"8279:15:89"},{"nodeType":"YulAssignment","src":"8303:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8314:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8319:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8310:3:89"},"nodeType":"YulFunctionCall","src":"8310:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"8303:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"8331:38:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8353:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"8361:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8349:3:89"},"nodeType":"YulFunctionCall","src":"8349:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8366:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8345:3:89"},"nodeType":"YulFunctionCall","src":"8345:24:89"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"8335:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8397:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8406:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8409:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8399:6:89"},"nodeType":"YulFunctionCall","src":"8399:12:89"},"nodeType":"YulExpressionStatement","src":"8399:12:89"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"8384:6:89"},{"name":"end","nodeType":"YulIdentifier","src":"8392:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8381:2:89"},"nodeType":"YulFunctionCall","src":"8381:15:89"},"nodeType":"YulIf","src":"8378:35:89"},{"nodeType":"YulVariableDeclaration","src":"8422:26:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8437:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8445:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8433:3:89"},"nodeType":"YulFunctionCall","src":"8433:15:89"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"8426:3:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8513:86:89","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8534:3:89"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8552:3:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8539:12:89"},"nodeType":"YulFunctionCall","src":"8539:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8527:6:89"},"nodeType":"YulFunctionCall","src":"8527:30:89"},"nodeType":"YulExpressionStatement","src":"8527:30:89"},{"nodeType":"YulAssignment","src":"8570:19:89","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8581:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8586:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8577:3:89"},"nodeType":"YulFunctionCall","src":"8577:12:89"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"8570:3:89"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8468:3:89"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"8473:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8465:2:89"},"nodeType":"YulFunctionCall","src":"8465:15:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8481:23:89","statements":[{"nodeType":"YulAssignment","src":"8483:19:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8494:3:89"},{"name":"_2","nodeType":"YulIdentifier","src":"8499:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8490:3:89"},"nodeType":"YulFunctionCall","src":"8490:12:89"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"8483:3:89"}]}]},"pre":{"nodeType":"YulBlock","src":"8461:3:89","statements":[]},"src":"8457:142:89"},{"nodeType":"YulAssignment","src":"8608:14:89","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"8617:5:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"8608:5:89"}]}]},"name":"abi_decode_array_uint256_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7954:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"7962:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7970:5:89","type":""}],"src":"7916:712:89"},{"body":{"nodeType":"YulBlock","src":"8830:746:89","statements":[{"body":{"nodeType":"YulBlock","src":"8877:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8886:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8889:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8879:6:89"},"nodeType":"YulFunctionCall","src":"8879:12:89"},"nodeType":"YulExpressionStatement","src":"8879:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8851:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"8860:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8847:3:89"},"nodeType":"YulFunctionCall","src":"8847:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"8872:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8843:3:89"},"nodeType":"YulFunctionCall","src":"8843:33:89"},"nodeType":"YulIf","src":"8840:53:89"},{"nodeType":"YulAssignment","src":"8902:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8931:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8912:18:89"},"nodeType":"YulFunctionCall","src":"8912:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8902:6:89"}]},{"nodeType":"YulAssignment","src":"8950:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8983:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8994:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8979:3:89"},"nodeType":"YulFunctionCall","src":"8979:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"8960:18:89"},"nodeType":"YulFunctionCall","src":"8960:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8950:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9007:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9038:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9049:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9034:3:89"},"nodeType":"YulFunctionCall","src":"9034:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9021:12:89"},"nodeType":"YulFunctionCall","src":"9021:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9011:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9062:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9072:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9066:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9117:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9126:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9129:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9119:6:89"},"nodeType":"YulFunctionCall","src":"9119:12:89"},"nodeType":"YulExpressionStatement","src":"9119:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9105:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9113:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9102:2:89"},"nodeType":"YulFunctionCall","src":"9102:14:89"},"nodeType":"YulIf","src":"9099:34:89"},{"nodeType":"YulAssignment","src":"9142:71:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9185:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"9196:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9181:3:89"},"nodeType":"YulFunctionCall","src":"9181:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9205:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9152:28:89"},"nodeType":"YulFunctionCall","src":"9152:61:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9142:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9222:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9255:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9266:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9251:3:89"},"nodeType":"YulFunctionCall","src":"9251:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9238:12:89"},"nodeType":"YulFunctionCall","src":"9238:32:89"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9226:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9299:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9308:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9311:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9301:6:89"},"nodeType":"YulFunctionCall","src":"9301:12:89"},"nodeType":"YulExpressionStatement","src":"9301:12:89"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9285:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9295:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9282:2:89"},"nodeType":"YulFunctionCall","src":"9282:16:89"},"nodeType":"YulIf","src":"9279:36:89"},{"nodeType":"YulAssignment","src":"9324:73:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9367:9:89"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9378:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9363:3:89"},"nodeType":"YulFunctionCall","src":"9363:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9389:7:89"}],"functionName":{"name":"abi_decode_array_uint256_dyn","nodeType":"YulIdentifier","src":"9334:28:89"},"nodeType":"YulFunctionCall","src":"9334:63:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9324:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"9406:49:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9450:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:89"},"nodeType":"YulFunctionCall","src":"9435:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9422:12:89"},"nodeType":"YulFunctionCall","src":"9422:33:89"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"9410:8:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9484:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9493:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9496:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9486:6:89"},"nodeType":"YulFunctionCall","src":"9486:12:89"},"nodeType":"YulExpressionStatement","src":"9486:12:89"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"9470:8:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9480:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9467:2:89"},"nodeType":"YulFunctionCall","src":"9467:16:89"},"nodeType":"YulIf","src":"9464:36:89"},{"nodeType":"YulAssignment","src":"9509:61:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9540:9:89"},{"name":"offset_2","nodeType":"YulIdentifier","src":"9551:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9536:3:89"},"nodeType":"YulFunctionCall","src":"9536:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9562:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"9519:16:89"},"nodeType":"YulFunctionCall","src":"9519:51:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"9509:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8764:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8775:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8787:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8795:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8803:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8811:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8819:6:89","type":""}],"src":"8633:943:89"},{"body":{"nodeType":"YulBlock","src":"9682:76:89","statements":[{"nodeType":"YulAssignment","src":"9692:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9704:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9715:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9700:3:89"},"nodeType":"YulFunctionCall","src":"9700:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9692:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9734:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"9745:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9727:6:89"},"nodeType":"YulFunctionCall","src":"9727:25:89"},"nodeType":"YulExpressionStatement","src":"9727:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9651:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9662:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9673:4:89","type":""}],"src":"9581:177:89"},{"body":{"nodeType":"YulBlock","src":"9910:459:89","statements":[{"body":{"nodeType":"YulBlock","src":"9957:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9966:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9969:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9959:6:89"},"nodeType":"YulFunctionCall","src":"9959:12:89"},"nodeType":"YulExpressionStatement","src":"9959:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9931:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"9940:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9927:3:89"},"nodeType":"YulFunctionCall","src":"9927:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"9952:3:89","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9923:3:89"},"nodeType":"YulFunctionCall","src":"9923:33:89"},"nodeType":"YulIf","src":"9920:53:89"},{"nodeType":"YulAssignment","src":"9982:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10011:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"9992:18:89"},"nodeType":"YulFunctionCall","src":"9992:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9982:6:89"}]},{"nodeType":"YulAssignment","src":"10030:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10063:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10074:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10059:3:89"},"nodeType":"YulFunctionCall","src":"10059:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"10040:18:89"},"nodeType":"YulFunctionCall","src":"10040:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10030:6:89"}]},{"nodeType":"YulAssignment","src":"10087:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10114:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10125:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10110:3:89"},"nodeType":"YulFunctionCall","src":"10110:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10097:12:89"},"nodeType":"YulFunctionCall","src":"10097:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10087:6:89"}]},{"nodeType":"YulAssignment","src":"10138:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10165:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10176:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10161:3:89"},"nodeType":"YulFunctionCall","src":"10161:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10148:12:89"},"nodeType":"YulFunctionCall","src":"10148:32:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10138:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"10189:47:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10231:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10216:3:89"},"nodeType":"YulFunctionCall","src":"10216:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10203:12:89"},"nodeType":"YulFunctionCall","src":"10203:33:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10193:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"10279:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10288:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10291:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10281:6:89"},"nodeType":"YulFunctionCall","src":"10281:12:89"},"nodeType":"YulExpressionStatement","src":"10281:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10251:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10259:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10248:2:89"},"nodeType":"YulFunctionCall","src":"10248:30:89"},"nodeType":"YulIf","src":"10245:50:89"},{"nodeType":"YulAssignment","src":"10304:59:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10335:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"10346:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10331:3:89"},"nodeType":"YulFunctionCall","src":"10331:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10355:7:89"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"10314:16:89"},"nodeType":"YulFunctionCall","src":"10314:49:89"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"10304:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9844:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9855:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9867:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9875:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9883:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9891:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9899:6:89","type":""}],"src":"9763:606:89"},{"body":{"nodeType":"YulBlock","src":"10440:200:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10457:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"10462:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10450:6:89"},"nodeType":"YulFunctionCall","src":"10450:19:89"},"nodeType":"YulExpressionStatement","src":"10450:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10495:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"10500:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10491:3:89"},"nodeType":"YulFunctionCall","src":"10491:14:89"},{"name":"start","nodeType":"YulIdentifier","src":"10507:5:89"},{"name":"length","nodeType":"YulIdentifier","src":"10514:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"10478:12:89"},"nodeType":"YulFunctionCall","src":"10478:43:89"},"nodeType":"YulExpressionStatement","src":"10478:43:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10545:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"10550:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10541:3:89"},"nodeType":"YulFunctionCall","src":"10541:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"10559:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10537:3:89"},"nodeType":"YulFunctionCall","src":"10537:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"10566:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10530:6:89"},"nodeType":"YulFunctionCall","src":"10530:38:89"},"nodeType":"YulExpressionStatement","src":"10530:38:89"},{"nodeType":"YulAssignment","src":"10577:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10592:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10605:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10613:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10601:3:89"},"nodeType":"YulFunctionCall","src":"10601:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10622:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10618:3:89"},"nodeType":"YulFunctionCall","src":"10618:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10597:3:89"},"nodeType":"YulFunctionCall","src":"10597:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10588:3:89"},"nodeType":"YulFunctionCall","src":"10588:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"10629:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10584:3:89"},"nodeType":"YulFunctionCall","src":"10584:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10577:3:89"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"10409:5:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"10416:6:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10424:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10432:3:89","type":""}],"src":"10374:266:89"},{"body":{"nodeType":"YulBlock","src":"10886:316:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10903:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10918:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10934:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10939:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10930:3:89"},"nodeType":"YulFunctionCall","src":"10930:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"10943:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10926:3:89"},"nodeType":"YulFunctionCall","src":"10926:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10914:3:89"},"nodeType":"YulFunctionCall","src":"10914:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10896:6:89"},"nodeType":"YulFunctionCall","src":"10896:51:89"},"nodeType":"YulExpressionStatement","src":"10896:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10967:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10978:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10963:3:89"},"nodeType":"YulFunctionCall","src":"10963:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"10983:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10956:6:89"},"nodeType":"YulFunctionCall","src":"10956:34:89"},"nodeType":"YulExpressionStatement","src":"10956:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11010:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11021:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11006:3:89"},"nodeType":"YulFunctionCall","src":"11006:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11026:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10999:6:89"},"nodeType":"YulFunctionCall","src":"10999:31:89"},"nodeType":"YulExpressionStatement","src":"10999:31:89"},{"nodeType":"YulAssignment","src":"11039:70:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11073:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"11081:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11093:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11104:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11089:3:89"},"nodeType":"YulFunctionCall","src":"11089:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11047:25:89"},"nodeType":"YulFunctionCall","src":"11047:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11039:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11129:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11140:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11125:3:89"},"nodeType":"YulFunctionCall","src":"11125:18:89"},{"name":"value4","nodeType":"YulIdentifier","src":"11145:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11118:6:89"},"nodeType":"YulFunctionCall","src":"11118:34:89"},"nodeType":"YulExpressionStatement","src":"11118:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11172:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11183:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11168:3:89"},"nodeType":"YulFunctionCall","src":"11168:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"11189:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11161:6:89"},"nodeType":"YulFunctionCall","src":"11161:35:89"},"nodeType":"YulExpressionStatement","src":"11161:35:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10815:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10826:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10834:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10842:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10850:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10858:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10866:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10877:4:89","type":""}],"src":"10645:557:89"},{"body":{"nodeType":"YulBlock","src":"11392:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11409:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11424:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11440:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11445:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11436:3:89"},"nodeType":"YulFunctionCall","src":"11436:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"11449:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11432:3:89"},"nodeType":"YulFunctionCall","src":"11432:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11420:3:89"},"nodeType":"YulFunctionCall","src":"11420:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11402:6:89"},"nodeType":"YulFunctionCall","src":"11402:51:89"},"nodeType":"YulExpressionStatement","src":"11402:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11473:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11484:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11469:3:89"},"nodeType":"YulFunctionCall","src":"11469:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"11489:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11462:6:89"},"nodeType":"YulFunctionCall","src":"11462:34:89"},"nodeType":"YulExpressionStatement","src":"11462:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11516:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11527:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11512:3:89"},"nodeType":"YulFunctionCall","src":"11512:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11532:2:89","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11505:6:89"},"nodeType":"YulFunctionCall","src":"11505:30:89"},"nodeType":"YulExpressionStatement","src":"11505:30:89"},{"nodeType":"YulAssignment","src":"11544:69:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11578:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"11586:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11598:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11609:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11594:3:89"},"nodeType":"YulFunctionCall","src":"11594:18:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"11552:25:89"},"nodeType":"YulFunctionCall","src":"11552:61:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11544:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11337:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11348:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11356:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11364:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11372:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11383:4:89","type":""}],"src":"11207:412:89"},{"body":{"nodeType":"YulBlock","src":"11798:237:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11815:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11826:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11808:6:89"},"nodeType":"YulFunctionCall","src":"11808:21:89"},"nodeType":"YulExpressionStatement","src":"11808:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11849:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11860:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11845:3:89"},"nodeType":"YulFunctionCall","src":"11845:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11865:2:89","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11838:6:89"},"nodeType":"YulFunctionCall","src":"11838:30:89"},"nodeType":"YulExpressionStatement","src":"11838:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11888:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11899:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11884:3:89"},"nodeType":"YulFunctionCall","src":"11884:18:89"},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365","kind":"string","nodeType":"YulLiteral","src":"11904:34:89","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11877:6:89"},"nodeType":"YulFunctionCall","src":"11877:62:89"},"nodeType":"YulExpressionStatement","src":"11877:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11959:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11970:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11955:3:89"},"nodeType":"YulFunctionCall","src":"11955:18:89"},{"hexValue":"20726f6c657320666f722073656c66","kind":"string","nodeType":"YulLiteral","src":"11975:17:89","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11948:6:89"},"nodeType":"YulFunctionCall","src":"11948:45:89"},"nodeType":"YulExpressionStatement","src":"11948:45:89"},{"nodeType":"YulAssignment","src":"12002:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12014:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12025:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12010:3:89"},"nodeType":"YulFunctionCall","src":"12010:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12002:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11775:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11789:4:89","type":""}],"src":"11624:411:89"},{"body":{"nodeType":"YulBlock","src":"12214:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12231:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12242:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12224:6:89"},"nodeType":"YulFunctionCall","src":"12224:21:89"},"nodeType":"YulExpressionStatement","src":"12224:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12265:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12276:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12261:3:89"},"nodeType":"YulFunctionCall","src":"12261:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12281:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12254:6:89"},"nodeType":"YulFunctionCall","src":"12254:30:89"},"nodeType":"YulExpressionStatement","src":"12254:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12304:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12315:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12300:3:89"},"nodeType":"YulFunctionCall","src":"12300:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d75737420","kind":"string","nodeType":"YulLiteral","src":"12320:34:89","type":"","value":"TimelockController: caller must "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12293:6:89"},"nodeType":"YulFunctionCall","src":"12293:62:89"},"nodeType":"YulExpressionStatement","src":"12293:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12375:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12386:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12371:3:89"},"nodeType":"YulFunctionCall","src":"12371:18:89"},{"hexValue":"62652074696d656c6f636b","kind":"string","nodeType":"YulLiteral","src":"12391:13:89","type":"","value":"be timelock"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12364:6:89"},"nodeType":"YulFunctionCall","src":"12364:41:89"},"nodeType":"YulExpressionStatement","src":"12364:41:89"},{"nodeType":"YulAssignment","src":"12414:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12426:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12437:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12422:3:89"},"nodeType":"YulFunctionCall","src":"12422:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12414:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12191:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12205:4:89","type":""}],"src":"12040:407:89"},{"body":{"nodeType":"YulBlock","src":"12581:119:89","statements":[{"nodeType":"YulAssignment","src":"12591:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12603:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12614:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12599:3:89"},"nodeType":"YulFunctionCall","src":"12599:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12591:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12633:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"12644:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12626:6:89"},"nodeType":"YulFunctionCall","src":"12626:25:89"},"nodeType":"YulExpressionStatement","src":"12626:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12682:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12667:3:89"},"nodeType":"YulFunctionCall","src":"12667:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"12687:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12660:6:89"},"nodeType":"YulFunctionCall","src":"12660:34:89"},"nodeType":"YulExpressionStatement","src":"12660:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12542:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12553:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12561:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12572:4:89","type":""}],"src":"12452:248:89"},{"body":{"nodeType":"YulBlock","src":"12946:316:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12963:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12978:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12994:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12999:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12990:3:89"},"nodeType":"YulFunctionCall","src":"12990:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"13003:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12986:3:89"},"nodeType":"YulFunctionCall","src":"12986:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12974:3:89"},"nodeType":"YulFunctionCall","src":"12974:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12956:6:89"},"nodeType":"YulFunctionCall","src":"12956:51:89"},"nodeType":"YulExpressionStatement","src":"12956:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13027:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13038:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13023:3:89"},"nodeType":"YulFunctionCall","src":"13023:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"13043:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13016:6:89"},"nodeType":"YulFunctionCall","src":"13016:34:89"},"nodeType":"YulExpressionStatement","src":"13016:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13070:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13081:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13066:3:89"},"nodeType":"YulFunctionCall","src":"13066:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"13086:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13059:6:89"},"nodeType":"YulFunctionCall","src":"13059:31:89"},"nodeType":"YulExpressionStatement","src":"13059:31:89"},{"nodeType":"YulAssignment","src":"13099:70:89","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13133:6:89"},{"name":"value3","nodeType":"YulIdentifier","src":"13141:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13153:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13164:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13149:3:89"},"nodeType":"YulFunctionCall","src":"13149:19:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13107:25:89"},"nodeType":"YulFunctionCall","src":"13107:62:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13099:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13189:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13200:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13185:3:89"},"nodeType":"YulFunctionCall","src":"13185:18:89"},{"name":"value4","nodeType":"YulIdentifier","src":"13205:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13178:6:89"},"nodeType":"YulFunctionCall","src":"13178:34:89"},"nodeType":"YulExpressionStatement","src":"13178:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13232:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13243:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13228:3:89"},"nodeType":"YulFunctionCall","src":"13228:19:89"},{"name":"value5","nodeType":"YulIdentifier","src":"13249:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13221:6:89"},"nodeType":"YulFunctionCall","src":"13221:35:89"},"nodeType":"YulExpressionStatement","src":"13221:35:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12875:9:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"12886:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12894:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12902:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12910:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12918:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12926:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12937:4:89","type":""}],"src":"12705:557:89"},{"body":{"nodeType":"YulBlock","src":"13441:225:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13458:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13469:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13451:6:89"},"nodeType":"YulFunctionCall","src":"13451:21:89"},"nodeType":"YulExpressionStatement","src":"13451:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13492:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13503:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13488:3:89"},"nodeType":"YulFunctionCall","src":"13488:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"13508:2:89","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13481:6:89"},"nodeType":"YulFunctionCall","src":"13481:30:89"},"nodeType":"YulExpressionStatement","src":"13481:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13531:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13542:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13527:3:89"},"nodeType":"YulFunctionCall","src":"13527:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d61","kind":"string","nodeType":"YulLiteral","src":"13547:34:89","type":"","value":"TimelockController: length misma"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13520:6:89"},"nodeType":"YulFunctionCall","src":"13520:62:89"},"nodeType":"YulExpressionStatement","src":"13520:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13602:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13613:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13598:3:89"},"nodeType":"YulFunctionCall","src":"13598:18:89"},{"hexValue":"746368","kind":"string","nodeType":"YulLiteral","src":"13618:5:89","type":"","value":"tch"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13591:6:89"},"nodeType":"YulFunctionCall","src":"13591:33:89"},"nodeType":"YulExpressionStatement","src":"13591:33:89"},{"nodeType":"YulAssignment","src":"13633:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13645:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"13656:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13641:3:89"},"nodeType":"YulFunctionCall","src":"13641:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13633:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13418:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13432:4:89","type":""}],"src":"13267:399:89"},{"body":{"nodeType":"YulBlock","src":"13703:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13720:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13727:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13732:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13723:3:89"},"nodeType":"YulFunctionCall","src":"13723:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13713:6:89"},"nodeType":"YulFunctionCall","src":"13713:31:89"},"nodeType":"YulExpressionStatement","src":"13713:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13760:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13763:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13753:6:89"},"nodeType":"YulFunctionCall","src":"13753:15:89"},"nodeType":"YulExpressionStatement","src":"13753:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13784:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13787:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13777:6:89"},"nodeType":"YulFunctionCall","src":"13777:15:89"},"nodeType":"YulExpressionStatement","src":"13777:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"13671:127:89"},{"body":{"nodeType":"YulBlock","src":"13873:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"13919:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13928:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13931:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13921:6:89"},"nodeType":"YulFunctionCall","src":"13921:12:89"},"nodeType":"YulExpressionStatement","src":"13921:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13894:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"13903:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13890:3:89"},"nodeType":"YulFunctionCall","src":"13890:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13886:3:89"},"nodeType":"YulFunctionCall","src":"13886:32:89"},"nodeType":"YulIf","src":"13883:52:89"},{"nodeType":"YulAssignment","src":"13944:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13973:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"13954:18:89"},"nodeType":"YulFunctionCall","src":"13954:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13944:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13839:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13850:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13862:6:89","type":""}],"src":"13803:186:89"},{"body":{"nodeType":"YulBlock","src":"14088:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14098:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"14137:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14124:12:89"},"nodeType":"YulFunctionCall","src":"14124:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"14102:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14238:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14247:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14250:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14240:6:89"},"nodeType":"YulFunctionCall","src":"14240:12:89"},"nodeType":"YulExpressionStatement","src":"14240:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"14172:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"14200:12:89"},"nodeType":"YulFunctionCall","src":"14200:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"14216:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14196:3:89"},"nodeType":"YulFunctionCall","src":"14196:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14231:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14227:3:89"},"nodeType":"YulFunctionCall","src":"14227:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14192:3:89"},"nodeType":"YulFunctionCall","src":"14192:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"14168:3:89"},"nodeType":"YulFunctionCall","src":"14168:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14161:6:89"},"nodeType":"YulFunctionCall","src":"14161:76:89"},"nodeType":"YulIf","src":"14158:96:89"},{"nodeType":"YulVariableDeclaration","src":"14263:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"14281:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"14291:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14277:3:89"},"nodeType":"YulFunctionCall","src":"14277:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"14267:6:89","type":""}]},{"nodeType":"YulAssignment","src":"14319:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"14342:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"14329:12:89"},"nodeType":"YulFunctionCall","src":"14329:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14319:6:89"}]},{"body":{"nodeType":"YulBlock","src":"14392:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14401:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14404:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14394:6:89"},"nodeType":"YulFunctionCall","src":"14394:12:89"},"nodeType":"YulExpressionStatement","src":"14394:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14364:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"14372:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14361:2:89"},"nodeType":"YulFunctionCall","src":"14361:30:89"},"nodeType":"YulIf","src":"14358:50:89"},{"nodeType":"YulAssignment","src":"14417:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"14429:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"14437:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14425:3:89"},"nodeType":"YulFunctionCall","src":"14425:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"14417:4:89"}]},{"body":{"nodeType":"YulBlock","src":"14493:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14502:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14505:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14495:6:89"},"nodeType":"YulFunctionCall","src":"14495:12:89"},"nodeType":"YulExpressionStatement","src":"14495:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"14458:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"14468:12:89"},"nodeType":"YulFunctionCall","src":"14468:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"14484:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14464:3:89"},"nodeType":"YulFunctionCall","src":"14464:27:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"14454:3:89"},"nodeType":"YulFunctionCall","src":"14454:38:89"},"nodeType":"YulIf","src":"14451:58:89"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"14045:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"14055:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"14071:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"14077:6:89","type":""}],"src":"13994:521:89"},{"body":{"nodeType":"YulBlock","src":"14552:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14569:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14576:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14581:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14572:3:89"},"nodeType":"YulFunctionCall","src":"14572:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14562:6:89"},"nodeType":"YulFunctionCall","src":"14562:31:89"},"nodeType":"YulExpressionStatement","src":"14562:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14609:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14612:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14602:6:89"},"nodeType":"YulFunctionCall","src":"14602:15:89"},"nodeType":"YulExpressionStatement","src":"14602:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14633:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14636:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14626:6:89"},"nodeType":"YulFunctionCall","src":"14626:15:89"},"nodeType":"YulExpressionStatement","src":"14626:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14520:127:89"},{"body":{"nodeType":"YulBlock","src":"14699:88:89","statements":[{"body":{"nodeType":"YulBlock","src":"14730:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14732:16:89"},"nodeType":"YulFunctionCall","src":"14732:18:89"},"nodeType":"YulExpressionStatement","src":"14732:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14715:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14726:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14722:3:89"},"nodeType":"YulFunctionCall","src":"14722:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14712:2:89"},"nodeType":"YulFunctionCall","src":"14712:17:89"},"nodeType":"YulIf","src":"14709:43:89"},{"nodeType":"YulAssignment","src":"14761:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14772:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"14779:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14768:3:89"},"nodeType":"YulFunctionCall","src":"14768:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14761:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14681:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14691:3:89","type":""}],"src":"14652:135:89"},{"body":{"nodeType":"YulBlock","src":"14877:982:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14894:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"14899:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14887:6:89"},"nodeType":"YulFunctionCall","src":"14887:19:89"},"nodeType":"YulExpressionStatement","src":"14887:19:89"},{"nodeType":"YulVariableDeclaration","src":"14915:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14925:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14919:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14938:31:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14961:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"14966:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14957:3:89"},"nodeType":"YulFunctionCall","src":"14957:12:89"},"variables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"14942:11:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14978:24:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"14991:11:89"},"variables":[{"name":"pos_1","nodeType":"YulTypedName","src":"14982:5:89","type":""}]},{"nodeType":"YulAssignment","src":"15011:18:89","value":{"name":"updated_pos","nodeType":"YulIdentifier","src":"15018:11:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15011:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"15038:38:89","value":{"arguments":[{"name":"pos_1","nodeType":"YulIdentifier","src":"15054:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15065:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"15068:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15061:3:89"},"nodeType":"YulFunctionCall","src":"15061:14:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15050:3:89"},"nodeType":"YulFunctionCall","src":"15050:26:89"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"15042:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15085:19:89","value":{"name":"value","nodeType":"YulIdentifier","src":"15099:5:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"15089:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15113:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"15122:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15117:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15181:652:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15202:3:89"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15211:4:89"},{"name":"pos_1","nodeType":"YulIdentifier","src":"15217:5:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15207:3:89"},"nodeType":"YulFunctionCall","src":"15207:16:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15195:6:89"},"nodeType":"YulFunctionCall","src":"15195:29:89"},"nodeType":"YulExpressionStatement","src":"15195:29:89"},{"nodeType":"YulVariableDeclaration","src":"15237:46:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15276:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15263:12:89"},"nodeType":"YulFunctionCall","src":"15263:20:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"15241:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15373:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15382:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15385:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15375:6:89"},"nodeType":"YulFunctionCall","src":"15375:12:89"},"nodeType":"YulExpressionStatement","src":"15375:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"15310:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"15338:12:89"},"nodeType":"YulFunctionCall","src":"15338:14:89"},{"name":"value","nodeType":"YulIdentifier","src":"15354:5:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15334:3:89"},"nodeType":"YulFunctionCall","src":"15334:26:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15366:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15362:3:89"},"nodeType":"YulFunctionCall","src":"15362:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15330:3:89"},"nodeType":"YulFunctionCall","src":"15330:40:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15306:3:89"},"nodeType":"YulFunctionCall","src":"15306:65:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15299:6:89"},"nodeType":"YulFunctionCall","src":"15299:73:89"},"nodeType":"YulIf","src":"15296:93:89"},{"nodeType":"YulVariableDeclaration","src":"15402:45:89","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"15421:18:89"},{"name":"value","nodeType":"YulIdentifier","src":"15441:5:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15417:3:89"},"nodeType":"YulFunctionCall","src":"15417:30:89"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"15406:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15460:37:89","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15489:7:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"15476:12:89"},"nodeType":"YulFunctionCall","src":"15476:21:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"15464:8:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15510:31:89","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"15529:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15538:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15525:3:89"},"nodeType":"YulFunctionCall","src":"15525:16:89"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"15514:7:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"15590:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15599:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15602:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15592:6:89"},"nodeType":"YulFunctionCall","src":"15592:12:89"},"nodeType":"YulExpressionStatement","src":"15592:12:89"}]},"condition":{"arguments":[{"name":"length_1","nodeType":"YulIdentifier","src":"15560:8:89"},{"kind":"number","nodeType":"YulLiteral","src":"15570:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15557:2:89"},"nodeType":"YulFunctionCall","src":"15557:32:89"},"nodeType":"YulIf","src":"15554:52:89"},{"body":{"nodeType":"YulBlock","src":"15666:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15675:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15678:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15668:6:89"},"nodeType":"YulFunctionCall","src":"15668:12:89"},"nodeType":"YulExpressionStatement","src":"15668:12:89"}]},"condition":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"15626:7:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"15639:12:89"},"nodeType":"YulFunctionCall","src":"15639:14:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"15655:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15635:3:89"},"nodeType":"YulFunctionCall","src":"15635:29:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"15622:3:89"},"nodeType":"YulFunctionCall","src":"15622:43:89"},"nodeType":"YulIf","src":"15619:63:89"},{"nodeType":"YulAssignment","src":"15695:58:89","value":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"15729:7:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"15738:8:89"},{"name":"tail","nodeType":"YulIdentifier","src":"15748:4:89"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15703:25:89"},"nodeType":"YulFunctionCall","src":"15703:50:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15695:4:89"}]},{"nodeType":"YulAssignment","src":"15766:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15780:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15788:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15776:3:89"},"nodeType":"YulFunctionCall","src":"15776:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15766:6:89"}]},{"nodeType":"YulAssignment","src":"15804:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15815:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15820:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15811:3:89"},"nodeType":"YulFunctionCall","src":"15811:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15804:3:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15143:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"15146:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15140:2:89"},"nodeType":"YulFunctionCall","src":"15140:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15154:18:89","statements":[{"nodeType":"YulAssignment","src":"15156:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15165:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"15168:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15161:3:89"},"nodeType":"YulFunctionCall","src":"15161:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15156:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"15136:3:89","statements":[]},"src":"15132:701:89"},{"nodeType":"YulAssignment","src":"15842:11:89","value":{"name":"tail","nodeType":"YulIdentifier","src":"15849:4:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15842:3:89"}]}]},"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14846:5:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"14853:6:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"14861:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14869:3:89","type":""}],"src":"14792:1067:89"},{"body":{"nodeType":"YulBlock","src":"16277:980:89","statements":[{"nodeType":"YulVariableDeclaration","src":"16287:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16305:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16316:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16301:3:89"},"nodeType":"YulFunctionCall","src":"16301:19:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"16291:6:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16336:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16347:3:89","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16329:6:89"},"nodeType":"YulFunctionCall","src":"16329:22:89"},"nodeType":"YulExpressionStatement","src":"16329:22:89"},{"nodeType":"YulVariableDeclaration","src":"16360:17:89","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"16371:6:89"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"16364:3:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"16393:6:89"},{"name":"value1","nodeType":"YulIdentifier","src":"16401:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16386:6:89"},"nodeType":"YulFunctionCall","src":"16386:22:89"},"nodeType":"YulExpressionStatement","src":"16386:22:89"},{"nodeType":"YulAssignment","src":"16417:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16428:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16439:3:89","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16424:3:89"},"nodeType":"YulFunctionCall","src":"16424:19:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16417:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"16452:20:89","value":{"name":"value0","nodeType":"YulIdentifier","src":"16466:6:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"16456:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16481:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"16490:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"16485:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"16549:186:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16570:3:89"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16598:6:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"16579:18:89"},"nodeType":"YulFunctionCall","src":"16579:26:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16615:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16620:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16611:3:89"},"nodeType":"YulFunctionCall","src":"16611:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16624:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16607:3:89"},"nodeType":"YulFunctionCall","src":"16607:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16575:3:89"},"nodeType":"YulFunctionCall","src":"16575:52:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16563:6:89"},"nodeType":"YulFunctionCall","src":"16563:65:89"},"nodeType":"YulExpressionStatement","src":"16563:65:89"},{"nodeType":"YulVariableDeclaration","src":"16641:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"16651:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16645:2:89","type":""}]},{"nodeType":"YulAssignment","src":"16668:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16679:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16684:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16675:3:89"},"nodeType":"YulFunctionCall","src":"16675:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16668:3:89"}]},{"nodeType":"YulAssignment","src":"16700:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16714:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16722:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16710:3:89"},"nodeType":"YulFunctionCall","src":"16710:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"16700:6:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16511:1:89"},{"name":"value1","nodeType":"YulIdentifier","src":"16514:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16508:2:89"},"nodeType":"YulFunctionCall","src":"16508:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"16522:18:89","statements":[{"nodeType":"YulAssignment","src":"16524:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"16533:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"16536:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16529:3:89"},"nodeType":"YulFunctionCall","src":"16529:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"16524:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"16504:3:89","statements":[]},"src":"16500:235:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16755:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16766:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16751:3:89"},"nodeType":"YulFunctionCall","src":"16751:20:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16777:3:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"16782:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16773:3:89"},"nodeType":"YulFunctionCall","src":"16773:19:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16744:6:89"},"nodeType":"YulFunctionCall","src":"16744:49:89"},"nodeType":"YulExpressionStatement","src":"16744:49:89"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16809:3:89"},{"name":"value3","nodeType":"YulIdentifier","src":"16814:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16802:6:89"},"nodeType":"YulFunctionCall","src":"16802:19:89"},"nodeType":"YulExpressionStatement","src":"16802:19:89"},{"body":{"nodeType":"YulBlock","src":"16865:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16874:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16877:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16867:6:89"},"nodeType":"YulFunctionCall","src":"16867:12:89"},"nodeType":"YulExpressionStatement","src":"16867:12:89"}]},"condition":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16836:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16852:3:89","type":"","value":"251"},{"kind":"number","nodeType":"YulLiteral","src":"16857:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16848:3:89"},"nodeType":"YulFunctionCall","src":"16848:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16861:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16844:3:89"},"nodeType":"YulFunctionCall","src":"16844:19:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"16833:2:89"},"nodeType":"YulFunctionCall","src":"16833:31:89"},"nodeType":"YulIf","src":"16830:51:89"},{"nodeType":"YulVariableDeclaration","src":"16890:28:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16908:1:89","type":"","value":"5"},{"name":"value3","nodeType":"YulIdentifier","src":"16911:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16904:3:89"},"nodeType":"YulFunctionCall","src":"16904:14:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"16894:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16944:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"16949:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16940:3:89"},"nodeType":"YulFunctionCall","src":"16940:14:89"},{"name":"value2","nodeType":"YulIdentifier","src":"16956:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"16964:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"16927:12:89"},"nodeType":"YulFunctionCall","src":"16927:44:89"},"nodeType":"YulExpressionStatement","src":"16927:44:89"},{"nodeType":"YulVariableDeclaration","src":"16980:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16994:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"16999:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16990:3:89"},"nodeType":"YulFunctionCall","src":"16990:16:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"16984:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17026:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17037:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17022:3:89"},"nodeType":"YulFunctionCall","src":"17022:18:89"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17050:2:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"17054:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17046:3:89"},"nodeType":"YulFunctionCall","src":"17046:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17066:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17042:3:89"},"nodeType":"YulFunctionCall","src":"17042:29:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17015:6:89"},"nodeType":"YulFunctionCall","src":"17015:57:89"},"nodeType":"YulExpressionStatement","src":"17015:57:89"},{"nodeType":"YulAssignment","src":"17081:83:89","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"17134:6:89"},{"name":"value5","nodeType":"YulIdentifier","src":"17142:6:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"17154:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"17158:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17150:3:89"},"nodeType":"YulFunctionCall","src":"17150:13:89"}],"functionName":{"name":"abi_encode_array_bytes_calldata_dyn_calldata","nodeType":"YulIdentifier","src":"17089:44:89"},"nodeType":"YulFunctionCall","src":"17089:75:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17081:4:89"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17184:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17195:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17180:3:89"},"nodeType":"YulFunctionCall","src":"17180:18:89"},{"name":"value6","nodeType":"YulIdentifier","src":"17200:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17173:6:89"},"nodeType":"YulFunctionCall","src":"17173:34:89"},"nodeType":"YulExpressionStatement","src":"17173:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17227:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17238:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17223:3:89"},"nodeType":"YulFunctionCall","src":"17223:19:89"},{"name":"value7","nodeType":"YulIdentifier","src":"17244:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17216:6:89"},"nodeType":"YulFunctionCall","src":"17216:35:89"},"nodeType":"YulExpressionStatement","src":"17216:35:89"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16190:9:89","type":""},{"name":"value7","nodeType":"YulTypedName","src":"16201:6:89","type":""},{"name":"value6","nodeType":"YulTypedName","src":"16209:6:89","type":""},{"name":"value5","nodeType":"YulTypedName","src":"16217:6:89","type":""},{"name":"value4","nodeType":"YulTypedName","src":"16225:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16233:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16241:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16249:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16257:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16268:4:89","type":""}],"src":"15864:1393:89"},{"body":{"nodeType":"YulBlock","src":"17436:239:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17453:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17464:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17446:6:89"},"nodeType":"YulFunctionCall","src":"17446:21:89"},"nodeType":"YulExpressionStatement","src":"17446:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17487:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17498:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17483:3:89"},"nodeType":"YulFunctionCall","src":"17483:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17503:2:89","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17476:6:89"},"nodeType":"YulFunctionCall","src":"17476:30:89"},"nodeType":"YulExpressionStatement","src":"17476:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17526:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17537:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17522:3:89"},"nodeType":"YulFunctionCall","src":"17522:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206361","kind":"string","nodeType":"YulLiteral","src":"17542:34:89","type":"","value":"TimelockController: operation ca"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17515:6:89"},"nodeType":"YulFunctionCall","src":"17515:62:89"},"nodeType":"YulExpressionStatement","src":"17515:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17597:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17608:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17593:3:89"},"nodeType":"YulFunctionCall","src":"17593:18:89"},{"hexValue":"6e6e6f742062652063616e63656c6c6564","kind":"string","nodeType":"YulLiteral","src":"17613:19:89","type":"","value":"nnot be cancelled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17586:6:89"},"nodeType":"YulFunctionCall","src":"17586:47:89"},"nodeType":"YulExpressionStatement","src":"17586:47:89"},{"nodeType":"YulAssignment","src":"17642:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17654:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17665:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17650:3:89"},"nodeType":"YulFunctionCall","src":"17650:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17642:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17413:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17427:4:89","type":""}],"src":"17262:413:89"},{"body":{"nodeType":"YulBlock","src":"17854:237:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17871:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17882:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17864:6:89"},"nodeType":"YulFunctionCall","src":"17864:21:89"},"nodeType":"YulExpressionStatement","src":"17864:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17905:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17916:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17901:3:89"},"nodeType":"YulFunctionCall","src":"17901:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17921:2:89","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17894:6:89"},"nodeType":"YulFunctionCall","src":"17894:30:89"},"nodeType":"YulExpressionStatement","src":"17894:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17944:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17955:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17940:3:89"},"nodeType":"YulFunctionCall","src":"17940:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c","kind":"string","nodeType":"YulLiteral","src":"17960:34:89","type":"","value":"TimelockController: operation al"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17933:6:89"},"nodeType":"YulFunctionCall","src":"17933:62:89"},"nodeType":"YulExpressionStatement","src":"17933:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18015:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18026:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18011:3:89"},"nodeType":"YulFunctionCall","src":"18011:18:89"},{"hexValue":"7265616479207363686564756c6564","kind":"string","nodeType":"YulLiteral","src":"18031:17:89","type":"","value":"ready scheduled"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18004:6:89"},"nodeType":"YulFunctionCall","src":"18004:45:89"},"nodeType":"YulExpressionStatement","src":"18004:45:89"},{"nodeType":"YulAssignment","src":"18058:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18070:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18081:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18066:3:89"},"nodeType":"YulFunctionCall","src":"18066:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18058:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17831:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17845:4:89","type":""}],"src":"17680:411:89"},{"body":{"nodeType":"YulBlock","src":"18270:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18287:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18298:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18280:6:89"},"nodeType":"YulFunctionCall","src":"18280:21:89"},"nodeType":"YulExpressionStatement","src":"18280:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18321:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18332:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18317:3:89"},"nodeType":"YulFunctionCall","src":"18317:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"18337:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18310:6:89"},"nodeType":"YulFunctionCall","src":"18310:30:89"},"nodeType":"YulExpressionStatement","src":"18310:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18360:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18371:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18356:3:89"},"nodeType":"YulFunctionCall","src":"18356:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"18376:34:89","type":"","value":"TimelockController: insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18349:6:89"},"nodeType":"YulFunctionCall","src":"18349:62:89"},"nodeType":"YulExpressionStatement","src":"18349:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18431:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18442:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18427:3:89"},"nodeType":"YulFunctionCall","src":"18427:18:89"},{"hexValue":"2064656c6179","kind":"string","nodeType":"YulLiteral","src":"18447:8:89","type":"","value":" delay"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18420:6:89"},"nodeType":"YulFunctionCall","src":"18420:36:89"},"nodeType":"YulExpressionStatement","src":"18420:36:89"},{"nodeType":"YulAssignment","src":"18465:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18477:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"18488:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18473:3:89"},"nodeType":"YulFunctionCall","src":"18473:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18465:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18247:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18261:4:89","type":""}],"src":"18096:402:89"},{"body":{"nodeType":"YulBlock","src":"18551:77:89","statements":[{"nodeType":"YulAssignment","src":"18561:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18572:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"18575:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18568:3:89"},"nodeType":"YulFunctionCall","src":"18568:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18561:3:89"}]},{"body":{"nodeType":"YulBlock","src":"18600:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18602:16:89"},"nodeType":"YulFunctionCall","src":"18602:18:89"},"nodeType":"YulExpressionStatement","src":"18602:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18592:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"18595:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18589:2:89"},"nodeType":"YulFunctionCall","src":"18589:10:89"},"nodeType":"YulIf","src":"18586:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18534:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"18537:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18543:3:89","type":""}],"src":"18503:125:89"},{"body":{"nodeType":"YulBlock","src":"18699:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"18709:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"18718:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18713:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"18778:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18803:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"18808:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18799:3:89"},"nodeType":"YulFunctionCall","src":"18799:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18822:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"18827:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18818:3:89"},"nodeType":"YulFunctionCall","src":"18818:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18812:5:89"},"nodeType":"YulFunctionCall","src":"18812:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18792:6:89"},"nodeType":"YulFunctionCall","src":"18792:39:89"},"nodeType":"YulExpressionStatement","src":"18792:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18739:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"18742:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18736:2:89"},"nodeType":"YulFunctionCall","src":"18736:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18750:19:89","statements":[{"nodeType":"YulAssignment","src":"18752:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18761:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"18764:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18757:3:89"},"nodeType":"YulFunctionCall","src":"18757:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18752:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"18732:3:89","statements":[]},"src":"18728:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18861:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"18866:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18857:3:89"},"nodeType":"YulFunctionCall","src":"18857:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"18875:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18850:6:89"},"nodeType":"YulFunctionCall","src":"18850:27:89"},"nodeType":"YulExpressionStatement","src":"18850:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"18677:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"18682:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"18687:6:89","type":""}],"src":"18633:250:89"},{"body":{"nodeType":"YulBlock","src":"19277:423:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19294:3:89"},{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","kind":"string","nodeType":"YulLiteral","src":"19299:25:89","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19287:6:89"},"nodeType":"YulFunctionCall","src":"19287:38:89"},"nodeType":"YulExpressionStatement","src":"19287:38:89"},{"nodeType":"YulVariableDeclaration","src":"19334:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19354:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19348:5:89"},"nodeType":"YulFunctionCall","src":"19348:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19338:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19409:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19417:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19405:3:89"},"nodeType":"YulFunctionCall","src":"19405:17:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19428:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"19433:2:89","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19424:3:89"},"nodeType":"YulFunctionCall","src":"19424:12:89"},{"name":"length","nodeType":"YulIdentifier","src":"19438:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19370:34:89"},"nodeType":"YulFunctionCall","src":"19370:75:89"},"nodeType":"YulExpressionStatement","src":"19370:75:89"},{"nodeType":"YulVariableDeclaration","src":"19454:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"19468:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"19473:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19464:3:89"},"nodeType":"YulFunctionCall","src":"19464:16:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19458:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19500:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"19504:2:89","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19496:3:89"},"nodeType":"YulFunctionCall","src":"19496:11:89"},{"hexValue":"206973206d697373696e6720726f6c6520","kind":"string","nodeType":"YulLiteral","src":"19509:19:89","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19489:6:89"},"nodeType":"YulFunctionCall","src":"19489:40:89"},"nodeType":"YulExpressionStatement","src":"19489:40:89"},{"nodeType":"YulVariableDeclaration","src":"19538:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19560:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19554:5:89"},"nodeType":"YulFunctionCall","src":"19554:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"19542:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19615:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19623:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19611:3:89"},"nodeType":"YulFunctionCall","src":"19611:17:89"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19634:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"19638:2:89","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:89"},"nodeType":"YulFunctionCall","src":"19630:11:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"19643:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19576:34:89"},"nodeType":"YulFunctionCall","src":"19576:76:89"},"nodeType":"YulExpressionStatement","src":"19576:76:89"},{"nodeType":"YulAssignment","src":"19661:33:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19676:2:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"19680:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19672:3:89"},"nodeType":"YulFunctionCall","src":"19672:17:89"},{"kind":"number","nodeType":"YulLiteral","src":"19691:2:89","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19668:3:89"},"nodeType":"YulFunctionCall","src":"19668:26:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"19661:3:89"}]}]},"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":"19245:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19250:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19258:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"19269:3:89","type":""}],"src":"18888:812:89"},{"body":{"nodeType":"YulBlock","src":"19826:275:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19843:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"19854:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19836:6:89"},"nodeType":"YulFunctionCall","src":"19836:21:89"},"nodeType":"YulExpressionStatement","src":"19836:21:89"},{"nodeType":"YulVariableDeclaration","src":"19866:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19886:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19880:5:89"},"nodeType":"YulFunctionCall","src":"19880:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"19870:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19913:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"19924:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19909:3:89"},"nodeType":"YulFunctionCall","src":"19909:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"19929:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19902:6:89"},"nodeType":"YulFunctionCall","src":"19902:34:89"},"nodeType":"YulExpressionStatement","src":"19902:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19984:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"19992:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19980:3:89"},"nodeType":"YulFunctionCall","src":"19980:15:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20001:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20012:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19997:3:89"},"nodeType":"YulFunctionCall","src":"19997:18:89"},{"name":"length","nodeType":"YulIdentifier","src":"20017:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"19945:34:89"},"nodeType":"YulFunctionCall","src":"19945:79:89"},"nodeType":"YulExpressionStatement","src":"19945:79:89"},{"nodeType":"YulAssignment","src":"20033:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20049:9:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20068:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"20076:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20064:3:89"},"nodeType":"YulFunctionCall","src":"20064:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20085:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20081:3:89"},"nodeType":"YulFunctionCall","src":"20081:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20060:3:89"},"nodeType":"YulFunctionCall","src":"20060:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20045:3:89"},"nodeType":"YulFunctionCall","src":"20045:45:89"},{"kind":"number","nodeType":"YulLiteral","src":"20092:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20041:3:89"},"nodeType":"YulFunctionCall","src":"20041:54:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20033:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19795:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19806:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19817:4:89","type":""}],"src":"19705:396:89"},{"body":{"nodeType":"YulBlock","src":"20280:232:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20297:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20308:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20290:6:89"},"nodeType":"YulFunctionCall","src":"20290:21:89"},"nodeType":"YulExpressionStatement","src":"20290:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20331:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20342:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20327:3:89"},"nodeType":"YulFunctionCall","src":"20327:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"20347:2:89","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20320:6:89"},"nodeType":"YulFunctionCall","src":"20320:30:89"},"nodeType":"YulExpressionStatement","src":"20320:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20370:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20381:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20366:3:89"},"nodeType":"YulFunctionCall","src":"20366:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973","kind":"string","nodeType":"YulLiteral","src":"20386:34:89","type":"","value":"TimelockController: operation is"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20359:6:89"},"nodeType":"YulFunctionCall","src":"20359:62:89"},"nodeType":"YulExpressionStatement","src":"20359:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20441:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20452:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20437:3:89"},"nodeType":"YulFunctionCall","src":"20437:18:89"},{"hexValue":"206e6f74207265616479","kind":"string","nodeType":"YulLiteral","src":"20457:12:89","type":"","value":" not ready"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20430:6:89"},"nodeType":"YulFunctionCall","src":"20430:40:89"},"nodeType":"YulExpressionStatement","src":"20430:40:89"},{"nodeType":"YulAssignment","src":"20479:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20491:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20502:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20487:3:89"},"nodeType":"YulFunctionCall","src":"20487:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20479:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20257:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20271:4:89","type":""}],"src":"20106:406:89"},{"body":{"nodeType":"YulBlock","src":"20691:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20708:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20719:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20701:6:89"},"nodeType":"YulFunctionCall","src":"20701:21:89"},"nodeType":"YulExpressionStatement","src":"20701:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20742:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20753:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20738:3:89"},"nodeType":"YulFunctionCall","src":"20738:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"20758:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20731:6:89"},"nodeType":"YulFunctionCall","src":"20731:30:89"},"nodeType":"YulExpressionStatement","src":"20731:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20781:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20792:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20777:3:89"},"nodeType":"YulFunctionCall","src":"20777:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a206d697373696e672064657065","kind":"string","nodeType":"YulLiteral","src":"20797:34:89","type":"","value":"TimelockController: missing depe"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20770:6:89"},"nodeType":"YulFunctionCall","src":"20770:62:89"},"nodeType":"YulExpressionStatement","src":"20770:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20852:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20863:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20848:3:89"},"nodeType":"YulFunctionCall","src":"20848:18:89"},{"hexValue":"6e64656e6379","kind":"string","nodeType":"YulLiteral","src":"20868:8:89","type":"","value":"ndency"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20841:6:89"},"nodeType":"YulFunctionCall","src":"20841:36:89"},"nodeType":"YulExpressionStatement","src":"20841:36:89"},{"nodeType":"YulAssignment","src":"20886:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20898:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"20909:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20894:3:89"},"nodeType":"YulFunctionCall","src":"20894:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20886:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20668:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20682:4:89","type":""}],"src":"20517:402:89"},{"body":{"nodeType":"YulBlock","src":"21071:124:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21094:3:89"},{"name":"value0","nodeType":"YulIdentifier","src":"21099:6:89"},{"name":"value1","nodeType":"YulIdentifier","src":"21107:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"21081:12:89"},"nodeType":"YulFunctionCall","src":"21081:33:89"},"nodeType":"YulExpressionStatement","src":"21081:33:89"},{"nodeType":"YulVariableDeclaration","src":"21123:26:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"21137:3:89"},{"name":"value1","nodeType":"YulIdentifier","src":"21142:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21133:3:89"},"nodeType":"YulFunctionCall","src":"21133:16:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21127:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21165:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"21169:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21158:6:89"},"nodeType":"YulFunctionCall","src":"21158:13:89"},"nodeType":"YulExpressionStatement","src":"21158:13:89"},{"nodeType":"YulAssignment","src":"21180:9:89","value":{"name":"_1","nodeType":"YulIdentifier","src":"21187:2:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"21180:3:89"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"21039:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"21044:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21052:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"21063:3:89","type":""}],"src":"20924:271:89"},{"body":{"nodeType":"YulBlock","src":"21374:241:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21391:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21402:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21384:6:89"},"nodeType":"YulFunctionCall","src":"21384:21:89"},"nodeType":"YulExpressionStatement","src":"21384:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21425:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21436:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21421:3:89"},"nodeType":"YulFunctionCall","src":"21421:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"21441:2:89","type":"","value":"51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21414:6:89"},"nodeType":"YulFunctionCall","src":"21414:30:89"},"nodeType":"YulExpressionStatement","src":"21414:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21464:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21475:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21460:3:89"},"nodeType":"YulFunctionCall","src":"21460:18:89"},{"hexValue":"54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e672074","kind":"string","nodeType":"YulLiteral","src":"21480:34:89","type":"","value":"TimelockController: underlying t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21453:6:89"},"nodeType":"YulFunctionCall","src":"21453:62:89"},"nodeType":"YulExpressionStatement","src":"21453:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21535:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21546:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21531:3:89"},"nodeType":"YulFunctionCall","src":"21531:18:89"},{"hexValue":"72616e73616374696f6e207265766572746564","kind":"string","nodeType":"YulLiteral","src":"21551:21:89","type":"","value":"ransaction reverted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21524:6:89"},"nodeType":"YulFunctionCall","src":"21524:49:89"},"nodeType":"YulExpressionStatement","src":"21524:49:89"},{"nodeType":"YulAssignment","src":"21582:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21594:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"21605:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21590:3:89"},"nodeType":"YulFunctionCall","src":"21590:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21582:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21351:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21365:4:89","type":""}],"src":"21200:415:89"},{"body":{"nodeType":"YulBlock","src":"21672:116:89","statements":[{"nodeType":"YulAssignment","src":"21682:20:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21697:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"21700:1:89"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21693:3:89"},"nodeType":"YulFunctionCall","src":"21693:9:89"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21682:7:89"}]},{"body":{"nodeType":"YulBlock","src":"21760:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21762:16:89"},"nodeType":"YulFunctionCall","src":"21762:18:89"},"nodeType":"YulExpressionStatement","src":"21762:18:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21731:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21724:6:89"},"nodeType":"YulFunctionCall","src":"21724:9:89"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21738:1:89"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"21745:7:89"},{"name":"x","nodeType":"YulIdentifier","src":"21754:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21741:3:89"},"nodeType":"YulFunctionCall","src":"21741:15:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21735:2:89"},"nodeType":"YulFunctionCall","src":"21735:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"21721:2:89"},"nodeType":"YulFunctionCall","src":"21721:37:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21714:6:89"},"nodeType":"YulFunctionCall","src":"21714:45:89"},"nodeType":"YulIf","src":"21711:71:89"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21651:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"21654:1:89","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21660:7:89","type":""}],"src":"21620:168:89"},{"body":{"nodeType":"YulBlock","src":"21840:89:89","statements":[{"body":{"nodeType":"YulBlock","src":"21867:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21869:16:89"},"nodeType":"YulFunctionCall","src":"21869:18:89"},"nodeType":"YulExpressionStatement","src":"21869:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21860:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21853:6:89"},"nodeType":"YulFunctionCall","src":"21853:13:89"},"nodeType":"YulIf","src":"21850:39:89"},{"nodeType":"YulAssignment","src":"21898:25:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21909:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21920:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21916:3:89"},"nodeType":"YulFunctionCall","src":"21916:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21905:3:89"},"nodeType":"YulFunctionCall","src":"21905:18:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21898:3:89"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21822:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21832:3:89","type":""}],"src":"21793:136:89"},{"body":{"nodeType":"YulBlock","src":"22108:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22136:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22118:6:89"},"nodeType":"YulFunctionCall","src":"22118:21:89"},"nodeType":"YulExpressionStatement","src":"22118:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22159:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22170:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22155:3:89"},"nodeType":"YulFunctionCall","src":"22155:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"22175:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22148:6:89"},"nodeType":"YulFunctionCall","src":"22148:30:89"},"nodeType":"YulExpressionStatement","src":"22148:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22198:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22209:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22194:3:89"},"nodeType":"YulFunctionCall","src":"22194:18:89"},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","kind":"string","nodeType":"YulLiteral","src":"22214:34:89","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22187:6:89"},"nodeType":"YulFunctionCall","src":"22187:62:89"},"nodeType":"YulExpressionStatement","src":"22187:62:89"},{"nodeType":"YulAssignment","src":"22258:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22270:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"22281:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22266:3:89"},"nodeType":"YulFunctionCall","src":"22266:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22258:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22085:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22099:4:89","type":""}],"src":"21934:356:89"}]},"contents":"{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bytes_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_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n        value6 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_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, shl(224, 0xffffffff)))) { 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_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        value4 := calldataload(add(headStart, 96))\n        value5 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\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, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), 0)\n        array := array_1\n    }\n    function abi_decode_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        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_array_address_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_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(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_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n        value8 := calldataload(add(headStart, 160))\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_bytes_calldata_ptr_$dyn_calldata_ptrt_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(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_address_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        value6 := calldataload(add(headStart, 96))\n        value7 := calldataload(add(headStart, 128))\n    }\n    function abi_decode_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        if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n        let _3 := shl(5, _1)\n        let dst := allocate_memory(add(_3, _2))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, _3), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\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_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { 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        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_bytes_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_uint256__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 96)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n    }\n    function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n        mstore(add(headStart, 96), \" roles for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f9bc92801aafde1b21a5337b55bc3174f20991aa3b4cf4e5fdd1a61b63aa92df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"TimelockController: caller must \")\n        mstore(add(headStart, 96), \"be timelock\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_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_address_t_uint256_t_bytes_calldata_ptr_t_bytes32_t_bytes32__to_t_address_t_uint256_t_bytes_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), 160)\n        tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 160))\n        mstore(add(headStart, 96), value4)\n        mstore(add(headStart, 128), value5)\n    }\n    function abi_encode_tuple_t_stringliteral_0c14c6f30381b2bdef28138a7ead69cb623f2ab2f3d25f0cebf8e7f631a759d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"TimelockController: length misma\")\n        mstore(add(headStart, 96), \"tch\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\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 access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function 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 abi_encode_array_bytes_calldata_dyn_calldata(value, length, pos) -> end\n    {\n        mstore(pos, length)\n        let _1 := 0x20\n        let updated_pos := add(pos, _1)\n        let pos_1 := updated_pos\n        pos := updated_pos\n        let tail := add(pos_1, shl(5, length))\n        let srcPtr := value\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, sub(tail, pos_1))\n            let rel_offset_of_tail := calldataload(srcPtr)\n            if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n            let value_1 := add(rel_offset_of_tail, value)\n            let length_1 := calldataload(value_1)\n            let value_2 := add(value_1, _1)\n            if gt(length_1, 0xffffffffffffffff) { revert(0, 0) }\n            if sgt(value_2, sub(calldatasize(), length_1)) { revert(0, 0) }\n            tail := abi_encode_bytes_calldata(value_2, length_1, tail)\n            srcPtr := add(srcPtr, _1)\n            pos := add(pos, _1)\n        }\n        end := tail\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_t_bytes32_t_bytes32__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_t_bytes32_t_bytes32__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 160)\n        mstore(headStart, 160)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 192)\n        let srcPtr := value0\n        let i := 0\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        mstore(pos, value3)\n        if gt(value3, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value3)\n        calldatacopy(add(pos, 0x20), value2, length)\n        let _2 := add(pos, length)\n        mstore(add(headStart, 64), add(sub(_2, headStart), 0x20))\n        tail := abi_encode_array_bytes_calldata_dyn_calldata(value4, value5, add(_2, 0x20))\n        mstore(add(headStart, 96), value6)\n        mstore(add(headStart, 128), value7)\n    }\n    function abi_encode_tuple_t_stringliteral_da89af2fc5eaabb52110eb28e200457fadb874889554529840e92529248f2d41__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 49)\n        mstore(add(headStart, 64), \"TimelockController: operation ca\")\n        mstore(add(headStart, 96), \"nnot be cancelled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b2e50231ecb348ec53d87c71b0f084343770a9a06cbe6e2505c22b7e29d233fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 47)\n        mstore(add(headStart, 64), \"TimelockController: operation al\")\n        mstore(add(headStart, 96), \"ready scheduled\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_75aaed5c76f1bea21a1c6dab60898c911c430cd1eac23b8d8a559aa50cb17eca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: insufficient\")\n        mstore(add(headStart, 96), \" delay\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function copy_memory_to_memory_with_cleanup(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        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_with_cleanup(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_with_cleanup(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_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_encode_tuple_t_stringliteral_bdd7703854adf2fa4a48f46f1199f94db1c1b76d093badefa0f8cb70636f7603__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"TimelockController: operation is\")\n        mstore(add(headStart, 96), \" not ready\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_085b5849f077fe696490280fee046708c1e4f3bcf6af0860b3ba8ae447863111__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"TimelockController: missing depe\")\n        mstore(add(headStart, 96), \"ndency\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        calldatacopy(pos, value0, value1)\n        let _1 := add(pos, value1)\n        mstore(_1, 0)\n        end := _1\n    }\n    function abi_encode_tuple_t_stringliteral_fbe63f64b4d04d8b888d3da1b3ef528c7e3e8181ee7a63834cb97d1e3be7bcbf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 51)\n        mstore(add(headStart, 64), \"TimelockController: underlying t\")\n        mstore(add(headStart, 96), \"ransaction reverted\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n        tail := add(headStart, 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046113c0565b6105f6565b005b3480156101f557600080fd5b50610209610204366004611434565b61068b565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a236600461145e565b6106b6565b3480156102b357600080fd5b506102096102c23660046114c9565b61076b565b3480156102d357600080fd5b506102f26102e2366004611597565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b506102526103263660046114c9565b60009081526020819052604090206001015490565b34801561034757600080fd5b506102096103563660046114c9565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e76103873660046115fe565b610791565b34801561039857600080fd5b506102096103a73660046114c9565b6107bb565b3480156103b857600080fd5b506101e76103c73660046115fe565b6107d4565b3480156103d857600080fd5b506102096103e73660046114c9565b610857565b3480156103f857600080fd5b506101e76104073660046114c9565b61086d565b34801561041857600080fd5b5061025261042736600461145e565b610911565b34801561043857600080fd5b506101e761044736600461166e565b610950565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b3660046115fe565b610aa2565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b5061025261050436600461171f565b610acb565b34801561051557600080fd5b506102f2610524366004611846565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e76105503660046114c9565b610b10565b34801561056157600080fd5b506102526105703660046114c9565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d3660046115fe565b610be5565b6101e76105b036600461171f565b610c0a565b3480156105c157600080fd5b506102f26105d03660046118ef565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610d94565b6000610630898989898989610911565b905061063c8184610da1565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106789695949392919061197c565b60405180910390a3505050505050505050565b60006001600160e01b03198216630271189760e51b14806106b057506106b082610e90565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636106e2816000610aa2565b6106f0576106f08133610ec5565b6000610700888888888888610911565b905061070c8185610f1e565b61071888888888610fba565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a60405161075094939291906119b9565b60405180910390a36107618161108d565b5050505050505050565b60008181526001602052604081205460018111801561078a5750428111155b9392505050565b6000828152602081905260409020600101546107ac81610d94565b6107b683836110c6565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b03811633146108495760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610853828261114a565b5050565b60008181526001602081905260408220546107cd565b3330146108d05760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610840565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161092e9695949392919061197c565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161097a81610d94565b8887146109995760405162461bcd60e51b8152600401610840906119eb565b8885146109b85760405162461bcd60e51b8152600401610840906119eb565b60006109ca8b8b8b8b8b8b8b8b610acb565b90506109d68184610da1565b60005b8a811015610a945780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a1657610a16611a2e565b9050602002016020810190610a2b9190611a44565b8d8d86818110610a3d57610a3d611a2e565b905060200201358c8c87818110610a5657610a56611a2e565b9050602002810190610a689190611a5f565b8c8b604051610a7c9695949392919061197c565b60405180910390a3610a8d81611abb565b90506109d9565b505050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610aec989796959493929190611b65565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610b3a81610d94565b610b4382610857565b610ba95760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610840565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c0081610d94565b6107b6838361114a565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610c36816000610aa2565b610c4457610c448133610ec5565b878614610c635760405162461bcd60e51b8152600401610840906119eb565b878414610c825760405162461bcd60e51b8152600401610840906119eb565b6000610c948a8a8a8a8a8a8a8a610acb565b9050610ca08185610f1e565b60005b89811015610d7e5760008b8b83818110610cbf57610cbf611a2e565b9050602002016020810190610cd49190611a44565b905060008a8a84818110610cea57610cea611a2e565b9050602002013590503660008a8a86818110610d0857610d08611a2e565b9050602002810190610d1a9190611a5f565b91509150610d2a84848484610fba565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610d6194939291906119b9565b60405180910390a35050505080610d7790611abb565b9050610ca3565b50610d888161108d565b50505050505050505050565b610d9e8133610ec5565b50565b610daa826107bb565b15610e0f5760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610840565b600254811015610e705760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610840565b610e7a8142611c06565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106b057506301ffc9a760e01b6001600160e01b03198316146106b0565b610ecf8282610aa2565b61085357610edc816111af565b610ee78360206111c1565b604051602001610ef8929190611c3d565b60408051601f198184030181529082905262461bcd60e51b825261084091600401611cb2565b610f278261076b565b610f435760405162461bcd60e51b815260040161084090611ce5565b801580610f5f5750600081815260016020819052604090912054145b6108535760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610840565b6000846001600160a01b0316848484604051610fd7929190611d2f565b60006040518083038185875af1925050503d8060008114611014576040519150601f19603f3d011682016040523d82523d6000602084013e611019565b606091505b50509050806110865760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610840565b5050505050565b6110968161076b565b6110b25760405162461bcd60e51b815260040161084090611ce5565b600090815260016020819052604090912055565b6110d08282610aa2565b610853576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556111063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111548282610aa2565b15610853576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106b06001600160a01b03831660145b606060006111d0836002611d3f565b6111db906002611c06565b6001600160401b038111156111f2576111f26114e2565b6040519080825280601f01601f19166020018201604052801561121c576020820181803683370190505b509050600360fc1b8160008151811061123757611237611a2e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061126657611266611a2e565b60200101906001600160f81b031916908160001a905350600061128a846002611d3f565b611295906001611c06565b90505b600181111561130d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106112c9576112c9611a2e565b1a60f81b8282815181106112df576112df611a2e565b60200101906001600160f81b031916908160001a90535060049490941c9361130681611d56565b9050611298565b50831561078a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610840565b80356001600160a01b038116811461137357600080fd5b919050565b60008083601f84011261138a57600080fd5b5081356001600160401b038111156113a157600080fd5b6020830191508360208285010111156113b957600080fd5b9250929050565b600080600080600080600060c0888a0312156113db57600080fd5b6113e48861135c565b96506020880135955060408801356001600160401b0381111561140657600080fd5b6114128a828b01611378565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561144657600080fd5b81356001600160e01b03198116811461078a57600080fd5b60008060008060008060a0878903121561147757600080fd5b6114808761135c565b95506020870135945060408701356001600160401b038111156114a257600080fd5b6114ae89828a01611378565b979a9699509760608101359660809091013595509350505050565b6000602082840312156114db57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611520576115206114e2565b604052919050565b600082601f83011261153957600080fd5b81356001600160401b03811115611552576115526114e2565b611565601f8201601f19166020016114f8565b81815284602083860101111561157a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156115ad57600080fd5b6115b68561135c565b93506115c46020860161135c565b92506040850135915060608501356001600160401b038111156115e657600080fd5b6115f287828801611528565b91505092959194509250565b6000806040838503121561161157600080fd5b823591506116216020840161135c565b90509250929050565b60008083601f84011261163c57600080fd5b5081356001600160401b0381111561165357600080fd5b6020830191508360208260051b85010111156113b957600080fd5b600080600080600080600080600060c08a8c03121561168c57600080fd5b89356001600160401b03808211156116a357600080fd5b6116af8d838e0161162a565b909b50995060208c01359150808211156116c857600080fd5b6116d48d838e0161162a565b909950975060408c01359150808211156116ed57600080fd5b506116fa8c828d0161162a565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561173b57600080fd5b88356001600160401b038082111561175257600080fd5b61175e8c838d0161162a565b909a50985060208b013591508082111561177757600080fd5b6117838c838d0161162a565b909850965060408b013591508082111561179c57600080fd5b506117a98b828c0161162a565b999c989b509699959896976060870135966080013595509350505050565b600082601f8301126117d857600080fd5b813560206001600160401b038211156117f3576117f36114e2565b8160051b6118028282016114f8565b928352848101820192828101908785111561181c57600080fd5b83870192505b8483101561183b57823582529183019190830190611822565b979650505050505050565b600080600080600060a0868803121561185e57600080fd5b6118678661135c565b94506118756020870161135c565b935060408601356001600160401b038082111561189157600080fd5b61189d89838a016117c7565b945060608801359150808211156118b357600080fd5b6118bf89838a016117c7565b935060808801359150808211156118d557600080fd5b506118e288828901611528565b9150509295509295909350565b600080600080600060a0868803121561190757600080fd5b6119108661135c565b945061191e6020870161135c565b9350604086013592506060860135915060808601356001600160401b0381111561194757600080fd5b6118e288828901611528565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006119a460a083018688611953565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006119e1606083018486611953565b9695505050505050565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a5657600080fd5b61078a8261135c565b6000808335601e19843603018112611a7657600080fd5b8301803591506001600160401b03821115611a9057600080fd5b6020019150368190038213156113b957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611acd57611acd611aa5565b5060010190565b81835260006020808501808196508560051b810191508460005b87811015611b585782840389528135601e19883603018112611b0f57600080fd5b870185810190356001600160401b03811115611b2a57600080fd5b803603821315611b3957600080fd5b611b44868284611953565b9a87019a9550505090840190600101611aee565b5091979650505050505050565b60a0808252810188905260008960c08301825b8b811015611ba6576001600160a01b03611b918461135c565b16825260209283019290910190600101611b78565b5083810360208501528881526001600160fb1b03891115611bc657600080fd5b8860051b9150818a60208301370182810360209081016040850152611bee9082018789611ad4565b60608401959095525050608001529695505050505050565b808201808211156106b0576106b0611aa5565b60005b83811015611c34578181015183820152602001611c1c565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611c75816017850160208801611c19565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ca6816028840160208801611c19565b01602801949350505050565b6020815260008251806020840152611cd1816040850160208701611c19565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b80820281158282048414176106b0576106b0611aa5565b600081611d6557611d65611aa5565b50600019019056fea2646970667358221220d456213c69ce38a096b380f0d51915a45c5ce80705bb7209a87f10f5764e710a64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1BB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8065657F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xBC197C81 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x582 JUMPI DUP1 PUSH4 0xE38335E5 EQ PUSH2 0x5A2 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0xF27A0C92 EQ PUSH2 0x5E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xC4D252F5 EQ PUSH2 0x535 JUMPI DUP1 PUSH4 0xD45C4435 EQ PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xB08E51C0 EQ PUSH2 0x4B5 JUMPI DUP1 PUSH4 0xB1C5F427 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8065657F EQ PUSH2 0x40C JUMPI DUP1 PUSH4 0x8F2A0BB0 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0x8F61F4F5 EQ PUSH2 0x44C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x31D50750 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x31D50750 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x584B153E EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0x64D62353 EQ PUSH2 0x3EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x30B JUMPI DUP1 PUSH4 0x2AB0F529 EQ PUSH2 0x33B JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD3CF6FC GT PUSH2 0x195 JUMPI DUP1 PUSH4 0xD3CF6FC EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x134008D3 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x13BC9F20 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D5062A EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x7BD0265 EQ PUSH2 0x21E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1C2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x1E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13C0 JUMP JUMPDEST PUSH2 0x5F6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x1434 JUMP JUMPDEST PUSH2 0x68B 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 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0x5F58E3A2316349923CE3780F8D587DB2D72378AED66A8261C916544FA6846CA5 DUP2 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x2C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x2E2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1597 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x215 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x317 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x326 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x347 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x378 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x387 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x791 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x398 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x3C7 CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0x7D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x3E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0x86D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0x145E JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x447 CALLDATASIZE PUSH1 0x4 PUSH2 0x166E JUMP JUMPDEST PUSH2 0x950 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x209 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xAA2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH1 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xACB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x515 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x524 CALLDATASIZE PUSH1 0x4 PUSH2 0x1846 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x541 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x550 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH2 0xB10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x252 PUSH2 0x570 CALLDATASIZE PUSH1 0x4 PUSH2 0x14C9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E7 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x15FE JUMP JUMPDEST PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x1E7 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x171F JUMP JUMPDEST PUSH2 0xC0A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F2 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x252 JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x620 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x630 DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x63C DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP12 DUP12 DUP12 DUP12 DUP12 DUP11 PUSH1 0x40 MLOAD PUSH2 0x678 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH2 0x6B0 DUP3 PUSH2 0xE90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0x6E2 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x6F0 JUMPI PUSH2 0x6F0 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x700 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x911 JUMP JUMPDEST SWAP1 POP PUSH2 0x70C DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH2 0x718 DUP9 DUP9 DUP9 DUP9 PUSH2 0xFBA JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH2 0x750 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x761 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 DUP2 GT DUP1 ISZERO PUSH2 0x78A JUMPI POP TIMESTAMP DUP2 GT ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x7AC DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x10C6 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x849 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x853 DUP3 DUP3 PUSH2 0x114A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SLOAD PUSH2 0x7CD JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x8D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A2063616C6C6572206D75737420 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x62652074696D656C6F636B PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x11C24F4EAD16507C69AC467FBD5E4EED5FB5C699626D2CC6D66421DF253886D5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x92E SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xB09AA5AEB3702CFD50B6B62BC4532604938F21248A27A1D5CA736082B6819CC1 PUSH2 0x97A DUP2 PUSH2 0xD94 JUMP JUMPDEST DUP9 DUP8 EQ PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP9 DUP6 EQ PUSH2 0x9B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CA DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 DUP12 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D6 DUP2 DUP5 PUSH2 0xDA1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 DUP2 LT ISZERO PUSH2 0xA94 JUMPI DUP1 DUP3 PUSH32 0x4CF4410CC57040E44862EF0F45F3DD5A5E02DB8EB8ADD648D4B0E236F1D07DCA DUP15 DUP15 DUP6 DUP2 DUP2 LT PUSH2 0xA16 JUMPI PUSH2 0xA16 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xA2B SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST DUP14 DUP14 DUP7 DUP2 DUP2 LT PUSH2 0xA3D JUMPI PUSH2 0xA3D PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP13 DUP13 DUP8 DUP2 DUP2 LT PUSH2 0xA56 JUMPI PUSH2 0xA56 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xA68 SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST DUP13 DUP12 PUSH1 0x40 MLOAD PUSH2 0xA7C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x197C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0xA8D DUP2 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0x9D9 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAEC SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xFD643C72710C63C0180259ABA6B2D05451E3591A24E58B62239378085726F783 PUSH2 0xB3A DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0xB43 DUP3 PUSH2 0x857 JUMP JUMPDEST PUSH2 0xBA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206361 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1B9B9BDD0818994818D85B98D95B1B1959 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP3 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0xBAA1EB22F2A492BA1A5FEA61B8DF4D27C6C8B5F3971E63BB58FA14FF72EEDB70 SWAP2 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xC00 DUP2 PUSH2 0xD94 JUMP JUMPDEST PUSH2 0x7B6 DUP4 DUP4 PUSH2 0x114A JUMP JUMPDEST PUSH32 0xD8AA0F3194971A2A116679F7C2090F6939C8D4E01A2A8D7E41D55E5351469E63 PUSH2 0xC36 DUP2 PUSH1 0x0 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0xC44 JUMPI PUSH2 0xC44 DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST DUP8 DUP7 EQ PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST DUP8 DUP5 EQ PUSH2 0xC82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x19EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC94 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH2 0xACB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA0 DUP2 DUP6 PUSH2 0xF1E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP10 DUP2 LT ISZERO PUSH2 0xD7E JUMPI PUSH1 0x0 DUP12 DUP12 DUP4 DUP2 DUP2 LT PUSH2 0xCBF JUMPI PUSH2 0xCBF PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0xCD4 SWAP2 SWAP1 PUSH2 0x1A44 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP11 DUP11 DUP5 DUP2 DUP2 LT PUSH2 0xCEA JUMPI PUSH2 0xCEA PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP CALLDATASIZE PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0xD08 JUMPI PUSH2 0xD08 PUSH2 0x1A2E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xD1A SWAP2 SWAP1 PUSH2 0x1A5F JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xD2A DUP5 DUP5 DUP5 DUP5 PUSH2 0xFBA JUMP JUMPDEST DUP5 DUP7 PUSH32 0xC2617EFA69BAB66782FA219543714338489C4E9E178271560A91B82C3F612B58 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0xD61 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP DUP1 PUSH2 0xD77 SWAP1 PUSH2 0x1ABB JUMP JUMPDEST SWAP1 POP PUSH2 0xCA3 JUMP JUMPDEST POP PUSH2 0xD88 DUP2 PUSH2 0x108D JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xD9E DUP2 CALLER PUSH2 0xEC5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xDAA DUP3 PUSH2 0x7BB JUMP JUMPDEST ISZERO PUSH2 0xE0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E20616C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x1C9958591E481CD8DA19591D5B1959 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 LT ISZERO PUSH2 0xE70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x2064656C6179 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH2 0xE7A DUP2 TIMESTAMP PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x6B0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0xECF DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 JUMPI PUSH2 0xEDC DUP2 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0xEE7 DUP4 PUSH1 0x20 PUSH2 0x11C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xEF8 SWAP3 SWAP2 SWAP1 PUSH2 0x1C3D 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 0x840 SWAP2 PUSH1 0x4 ADD PUSH2 0x1CB2 JUMP JUMPDEST PUSH2 0xF27 DUP3 PUSH2 0x76B JUMP JUMPDEST PUSH2 0xF43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST DUP1 ISZERO DUP1 PUSH2 0xF5F JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD EQ JUMPDEST PUSH2 0x853 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206D697373696E672064657065 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x6E64656E6379 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFD7 SWAP3 SWAP2 SWAP1 PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1014 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 0x1019 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1086 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A20756E6465726C79696E672074 PUSH1 0x44 DUP3 ADD MSTORE PUSH19 0x1C985B9CD858DD1A5BDB881C995D995C9D1959 PUSH1 0x6A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x840 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1096 DUP2 PUSH2 0x76B JUMP JUMPDEST PUSH2 0x10B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x840 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x10D0 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST PUSH2 0x853 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 0x1106 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x1154 DUP3 DUP3 PUSH2 0xAA2 JUMP JUMPDEST ISZERO PUSH2 0x853 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6B0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x11D0 DUP4 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x11DB SWAP1 PUSH1 0x2 PUSH2 0x1C06 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x11F2 JUMPI PUSH2 0x11F2 PUSH2 0x14E2 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 0x121C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1237 JUMPI PUSH2 0x1237 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1266 JUMPI PUSH2 0x1266 PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x128A DUP5 PUSH1 0x2 PUSH2 0x1D3F JUMP JUMPDEST PUSH2 0x1295 SWAP1 PUSH1 0x1 PUSH2 0x1C06 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x130D JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x12C9 JUMPI PUSH2 0x12C9 PUSH2 0x1A2E JUMP JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12DF JUMPI PUSH2 0x12DF PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x1306 DUP2 PUSH2 0x1D56 JUMP JUMPDEST SWAP1 POP PUSH2 0x1298 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x78A 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 0x840 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1373 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x138A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x13A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x13DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x13E4 DUP9 PUSH2 0x135C JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1412 DUP11 DUP3 DUP12 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP9 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP3 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1446 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP8 PUSH2 0x135C JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x14A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14AE DUP10 DUP3 DUP11 ADD PUSH2 0x1378 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP8 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD 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 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1520 JUMPI PUSH2 0x1520 PUSH2 0x14E2 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1552 JUMPI PUSH2 0x1552 PUSH2 0x14E2 JUMP JUMPDEST PUSH2 0x1565 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x14F8 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x157A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15B6 DUP6 PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH2 0x15C4 PUSH1 0x20 DUP7 ADD PUSH2 0x135C JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x15E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F2 DUP8 DUP3 DUP9 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1621 PUSH1 0x20 DUP5 ADD PUSH2 0x135C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x163C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1653 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 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP11 DUP13 SUB SLT ISZERO PUSH2 0x168C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x16A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16AF DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16D4 DUP14 DUP4 DUP15 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16FA DUP13 DUP3 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP11 SWAP14 SWAP10 SWAP13 POP SWAP8 SWAP11 SWAP7 SWAP10 SWAP8 SWAP9 PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP8 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP8 POP PUSH1 0xA0 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x173B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x175E DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP11 POP SWAP9 POP PUSH1 0x20 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1783 DUP13 DUP4 DUP14 ADD PUSH2 0x162A JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x179C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A9 DUP12 DUP3 DUP13 ADD PUSH2 0x162A JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP7 SWAP8 PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x80 ADD CALLDATALOAD SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x17F3 JUMPI PUSH2 0x17F3 PUSH2 0x14E2 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH2 0x1802 DUP3 DUP3 ADD PUSH2 0x14F8 JUMP JUMPDEST SWAP3 DUP4 MSTORE DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP3 DUP2 ADD SWAP1 DUP8 DUP6 GT ISZERO PUSH2 0x181C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP8 ADD SWAP3 POP JUMPDEST DUP5 DUP4 LT ISZERO PUSH2 0x183B JUMPI DUP3 CALLDATALOAD DUP3 MSTORE SWAP2 DUP4 ADD SWAP2 SWAP1 DUP4 ADD SWAP1 PUSH2 0x1822 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x185E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1867 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x1875 PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x1891 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x189D DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18BF DUP10 DUP4 DUP11 ADD PUSH2 0x17C7 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x18D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1910 DUP7 PUSH2 0x135C JUMP JUMPDEST SWAP5 POP PUSH2 0x191E PUSH1 0x20 DUP8 ADD PUSH2 0x135C JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1947 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18E2 DUP9 DUP3 DUP10 ADD PUSH2 0x1528 JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19A4 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0x80 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x19E1 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x1953 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206C656E677468206D69736D61 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0xE8C6D PUSH1 0xEB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x78A DUP3 PUSH2 0x135C JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x1A90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 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 PUSH2 0x1ACD JUMPI PUSH2 0x1ACD PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP6 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP5 PUSH1 0x0 JUMPDEST DUP8 DUP2 LT ISZERO PUSH2 0x1B58 JUMPI DUP3 DUP5 SUB DUP10 MSTORE DUP2 CALLDATALOAD PUSH1 0x1E NOT DUP9 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 ADD DUP6 DUP2 ADD SWAP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x1B2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1B39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1B44 DUP7 DUP3 DUP5 PUSH2 0x1953 JUMP JUMPDEST SWAP11 DUP8 ADD SWAP11 SWAP6 POP POP POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1AEE JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP1 DUP3 MSTORE DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 DUP10 PUSH1 0xC0 DUP4 ADD DUP3 JUMPDEST DUP12 DUP2 LT ISZERO PUSH2 0x1BA6 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0x1B91 DUP5 PUSH2 0x135C JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1B78 JUMP JUMPDEST POP DUP4 DUP2 SUB PUSH1 0x20 DUP6 ADD MSTORE DUP9 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP10 GT ISZERO PUSH2 0x1BC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x5 SHL SWAP2 POP DUP2 DUP11 PUSH1 0x20 DUP4 ADD CALLDATACOPY ADD DUP3 DUP2 SUB PUSH1 0x20 SWAP1 DUP2 ADD PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x1BEE SWAP1 DUP3 ADD DUP8 DUP10 PUSH2 0x1AD4 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1C34 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C1C JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C75 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1CA6 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x1C19 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 0x1CD1 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1C19 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2A SWAP1 DUP3 ADD MSTORE PUSH32 0x54696D656C6F636B436F6E74726F6C6C65723A206F7065726174696F6E206973 PUSH1 0x40 DUP3 ADD MSTORE PUSH10 0x206E6F74207265616479 PUSH1 0xB0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1AA5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x1D65 JUMPI PUSH2 0x1D65 PUSH2 0x1AA5 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD4 JUMP 0x21 EXTCODECOPY PUSH10 0xCE38A096B380F0D51915 LOG4 0x5C 0x5C 0xE8 SMOD SDIV 0xBB PUSH19 0x9A87F10F5764E710A64736F6C634300081100 CALLER ","sourceMap":"171:223:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7618:402:22;;;;;;;;;;-1:-1:-1;7618:402:22;;;;;:::i;:::-;;:::i;:::-;;4770:228;;;;;;;;;;-1:-1:-1;4770:228:22;;;;;:::i;:::-;;:::i;:::-;;;1763:14:89;;1756:22;1738:41;;1726:2;1711:18;4770:228:22;;;;;;;;1272:66;;;;;;;;;;;;1312:26;1272:66;;;;;1936:25:89;;;1924:2;1909:18;1272:66:22;1790:177:89;1116:78:22;;;;;;;;;;;;1162:32;1116:78;;10216:459;;;;;;:::i;:::-;;:::i;5580:208::-;;;;;;;;;;-1:-1:-1;5580:208:22;;;;;:::i;:::-;;:::i;13466:200::-;;;;;;;;;;-1:-1:-1;13466:200:22;;;;;:::i;:::-;-1:-1:-1;;;13466:200:22;;;;;;;;;;-1:-1:-1;;;;;;4502:33:89;;;4484:52;;4472:2;4457:18;13466:200:22;4340:202:89;4378:129:17;;;;;;;;;;-1:-1:-1;4378:129:17;;;;;:::i;:::-;4452:7;4478:12;;;;;;;;;;:22;;;;4378:129;5867:136:22;;;;;;;;;;-1:-1:-1;5867:136:22;;;;;:::i;:::-;5933:9;6249:15;;;1470:1;6249:15;;;;;;;;;5961:35;;5867:136;4803:145:17;;;;;;;;;;-1:-1:-1;4803:145:17;;;;;:::i;:::-;;:::i;5154:123:22:-;;;;;;;;;;-1:-1:-1;5154:123:22;;;;;:::i;:::-;;:::i;5912:214:17:-;;;;;;;;;;-1:-1:-1;5912:214:17;;;;;:::i;:::-;;:::i;5359:141:22:-;;;;;;;;;;-1:-1:-1;5359:141:22;;;;;:::i;:::-;;:::i;13156:236::-;;;;;;;;;;-1:-1:-1;13156:236:22;;;;;:::i;:::-;;:::i;6673:284::-;;;;;;;;;;-1:-1:-1;6673:284:22;;;;;:::i;:::-;;:::i;8274:713::-;;;;;;;;;;-1:-1:-1;8274:713:22;;;;;:::i;:::-;;:::i;1200:66::-;;;;;;;;;;;;1240:26;1200:66;;2895:145:17;;;;;;;;;;-1:-1:-1;2895:145:17;;;;;:::i;:::-;;:::i;2027:49::-;;;;;;;;;;-1:-1:-1;2027:49:17;2072:4;2027:49;;1344:68:22;;;;;;;;;;;;1385:27;1344:68;;7073:325;;;;;;;;;;-1:-1:-1;7073:325:22;;;;;:::i;:::-;;:::i;14042:247::-;;;;;;;;;;-1:-1:-1;14042:247:22;;;;;:::i;:::-;-1:-1:-1;;;14042:247:22;;;;;;;;9512:230;;;;;;;;;;-1:-1:-1;9512:230:22;;;;;:::i;:::-;;:::i;6150:121::-;;;;;;;;;;-1:-1:-1;6150:121:22;;;;;:::i;:::-;6213:17;6249:15;;;:11;:15;;;;;;;6150:121;5228:147:17;;;;;;;;;;-1:-1:-1;5228:147:17;;;;;:::i;:::-;;:::i;10935:883:22:-;;;;;;:::i;:::-;;:::i;13742:219::-;;;;;;;;;;-1:-1:-1;13742:219:22;;;;;:::i;:::-;-1:-1:-1;;;13742:219:22;;;;;;;;6457:103;;;;;;;;;;-1:-1:-1;6544:9:22;;6457:103;;7618:402;1240:26;2505:16:17;2516:4;2505:10;:16::i;:::-;7841:10:22::1;7854:53;7868:6;7876:5;7883:4;;7889:11;7902:4;7854:13;:53::i;:::-;7841:66;;7917:20;7927:2;7931:5;7917:9;:20::i;:::-;7970:1;7966:2;7952:61;7973:6;7981:5;7988:4;;7994:11;8007:5;7952:61;;;;;;;;;;;:::i;:::-;;;;;;;;7831:189;7618:402:::0;;;;;;;;:::o;4770:228::-;4879:4;-1:-1:-1;;;;;;4902:49:22;;-1:-1:-1;;;4902:49:22;;:89;;;4955:36;4979:11;4955:23;:36::i;:::-;4895:96;4770:228;-1:-1:-1;;4770:228:22:o;10216:459::-;1312:26;4473:25;4481:4;4495:1;4473:7;:25::i;:::-;4468:87;;4514:30;4525:4;719:10:47;4514::22;:30::i;:::-;10436:10:::1;10449:56;10463:6;10471:5;10478:7;;10487:11;10500:4;10449:13;:56::i;:::-;10436:69;;10516:28;10528:2;10532:11;10516;:28::i;:::-;10554:32;10563:6;10571:5;10578:7;;10554:8;:32::i;:::-;10618:1;10614:2;10601:43;10621:6;10629:5;10636:7;;10601:43;;;;;;;;;:::i;:::-;;;;;;;;10654:14;10665:2;10654:10;:14::i;:::-;10426:249;10216:459:::0;;;;;;;:::o;5580:208::-;5647:10;6249:15;;;:11;:15;;;;;;1470:1;5722:9;:27;:59;;;;;5766:15;5753:9;:28;;5722:59;5715:66;5580:208;-1:-1:-1;;;5580:208:22:o;4803:145:17:-;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;5154:123:22:-;5216:15;6249;;;:11;:15;;;;;;5216;;5250:16;:20;;5154:123;-1:-1:-1;;5154:123:22:o;5912:214:17:-;-1:-1:-1;;;;;6007:23:17;;719:10:47;6007:23:17;5999:83;;;;-1:-1:-1;;;5999:83:17;;11826:2:89;5999:83:17;;;11808:21:89;11865:2;11845:18;;;11838:30;11904:34;11884:18;;;11877:62;-1:-1:-1;;;11955:18:89;;;11948:45;12010:19;;5999:83:17;;;;;;;;;6093:26;6105:4;6111:7;6093:11;:26::i;:::-;5912:214;;:::o;5359:141:22:-;5428:12;6249:15;;;1470:1;6249:15;;;;;;;;5459:16;6150:121;13156:236;13230:10;13252:4;13230:27;13222:83;;;;-1:-1:-1;;;13222:83:22;;12242:2:89;13222:83:22;;;12224:21:89;12281:2;12261:18;;;12254:30;12320:34;12300:18;;;12293:62;-1:-1:-1;;;12371:18:89;;;12364:41;12422:19;;13222:83:22;12040:407:89;13222:83:22;13335:9;;13320:35;;;12626:25:89;;;12682:2;12667:18;;12660:34;;;13320:35:22;;12599:18:89;13320:35:22;;;;;;;13365:9;:20;13156:236::o;6673:284::-;6858:12;6910:6;6918:5;6925:4;;6931:11;6944:4;6899:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6889:61;;;;;;6882:68;;6673:284;;;;;;;;:::o;8274:713::-;1240:26;2505:16:17;2516:4;2505:10;:16::i;:::-;8540:31:22;;::::1;8532:79;;;;-1:-1:-1::0;;;8532:79:22::1;;;;;;;:::i;:::-;8629:33:::0;;::::1;8621:81;;;;-1:-1:-1::0;;;8621:81:22::1;;;;;;;:::i;:::-;8713:10;8726:64;8745:7;;8754:6;;8762:8;;8772:11;8785:4;8726:18;:64::i;:::-;8713:77;;8800:20;8810:2;8814:5;8800:9;:20::i;:::-;8835:9;8830:151;8850:18:::0;;::::1;8830:151;;;8912:1;8908:2;8894:76;8915:7;;8923:1;8915:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8927:6;;8934:1;8927:9;;;;;;;:::i;:::-;;;;;;;8938:8;;8947:1;8938:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8951;8964:5;8894:76;;;;;;;;;;;:::i;:::-;;;;;;;;8870:3;::::0;::::1;:::i;:::-;;;8830:151;;;;8522:465;8274:713:::0;;;;;;;;;;:::o;2895:145:17:-;2981:4;3004:12;;;;;;;;;;;-1:-1:-1;;;;;3004:29:17;;;;;;;;;;;;;;;2895:145::o;7073:325:22:-;7293:12;7345:7;;7354:6;;7362:8;;7372:11;7385:4;7334:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7324:67;;;;;;7317:74;;7073:325;;;;;;;;;;:::o;9512:230::-;1385:27;2505:16:17;2516:4;2505:10;:16::i;:::-;9598:22:22::1;9617:2;9598:18;:22::i;:::-;9590:84;;;::::0;-1:-1:-1;;;9590:84:22;;17464:2:89;9590:84:22::1;::::0;::::1;17446:21:89::0;17503:2;17483:18;;;17476:30;17542:34;17522:18;;;17515:62;-1:-1:-1;;;17593:18:89;;;17586:47;17650:19;;9590:84:22::1;17262:413:89::0;9590:84:22::1;9691:15;::::0;;;:11:::1;:15;::::0;;;;;9684:22;;;9722:13;9703:2;;9722:13:::1;::::0;::::1;9512:230:::0;;:::o;5228:147:17:-;4452:7;4478:12;;;;;;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5342:26:::1;5354:4;5360:7;5342:11;:26::i;10935:883:22:-:0;1312:26;4473:25;4481:4;4495:1;4473:7;:25::i;:::-;4468:87;;4514:30;4525:4;719:10:47;4514::22;:30::i;:::-;11195:31;;::::1;11187:79;;;;-1:-1:-1::0;;;11187:79:22::1;;;;;;;:::i;:::-;11284:33:::0;;::::1;11276:81;;;;-1:-1:-1::0;;;11276:81:22::1;;;;;;;:::i;:::-;11368:10;11381:64;11400:7;;11409:6;;11417:8;;11427:11;11440:4;11381:18;:64::i;:::-;11368:77;;11456:28;11468:2;11472:11;11456;:28::i;:::-;11499:9;11494:294;11514:18:::0;;::::1;11494:294;;;11553:14;11570:7;;11578:1;11570:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11553:27;;11594:13;11610:6;;11617:1;11610:9;;;;;;;:::i;:::-;;;;;;;11594:25;;11633:22;;11658:8;;11667:1;11658:11;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;11633:36;;;;11683:32;11692:6;11700:5;11707:7;;11683:8;:32::i;:::-;11751:1;11747:2;11734:43;11754:6;11762:5;11769:7;;11734:43;;;;;;;;;:::i;:::-;;;;;;;;11539:249;;;;11534:3;;;;:::i;:::-;;;11494:294;;;;11797:14;11808:2;11797:10;:14::i;:::-;11177:641;10935:883:::0;;;;;;;;;:::o;3334:103:17:-;3400:30;3411:4;719:10:47;4514::22;:30::i;3400::17:-;3334:103;:::o;9089:281:22:-;9162:15;9174:2;9162:11;:15::i;:::-;9161:16;9153:76;;;;-1:-1:-1;;;9153:76:22;;17882:2:89;9153:76:22;;;17864:21:89;17921:2;17901:18;;;17894:30;17960:34;17940:18;;;17933:62;-1:-1:-1;;;18011:18:89;;;18004:45;18066:19;;9153:76:22;17680:411:89;9153:76:22;6544:9;;9247:5;:22;;9239:73;;;;-1:-1:-1;;;9239:73:22;;18298:2:89;9239:73:22;;;18280:21:89;18337:2;18317:18;;;18310:30;18376:34;18356:18;;;18349:62;-1:-1:-1;;;18427:18:89;;;18420:36;18473:19;;9239:73:22;18096:402:89;9239:73:22;9340:23;9358:5;9340:15;:23;:::i;:::-;9322:15;;;;:11;:15;;;;;;:41;;;;-1:-1:-1;9089:281:22:o;2606:202:17:-;2691:4;-1:-1:-1;;;;;;2714:47:17;;-1:-1:-1;;;2714:47:17;;:87;;-1:-1:-1;;;;;;;;;;937:40:53;;;2765:36:17;829:155:53;3718:479:17;3806:22;3814:4;3820:7;3806;:22::i;:::-;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:17;;;;;;;;;;-1:-1:-1;;;3844:336:17;;;;;;;:::i;12229:277:22:-;12314:20;12331:2;12314:16;:20::i;:::-;12306:75;;;;-1:-1:-1;;;12306:75:22;;;;;;;:::i;:::-;12399:25;;;:57;;-1:-1:-1;5933:9:22;6249:15;;;1470:1;6249:15;;;;;;;;;5961:35;12428:28;12391:108;;;;-1:-1:-1;;;12391:108:22;;20719:2:89;12391:108:22;;;20701:21:89;20758:2;20738:18;;;20731:30;20797:34;20777:18;;;20770:62;-1:-1:-1;;;20848:18:89;;;20841:36;20894:19;;12391:108:22;20517:402:89;11881:265:22;12009:12;12027:6;-1:-1:-1;;;;;12027:11:22;12046:5;12053:4;;12027:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12008:50;;;12076:7;12068:71;;;;-1:-1:-1;;;12068:71:22;;21402:2:89;12068:71:22;;;21384:21:89;21441:2;21421:18;;;21414:30;21480:34;21460:18;;;21453:62;-1:-1:-1;;;21531:18:89;;;21524:49;21590:19;;12068:71:22;21200:415:89;12068:71:22;11998:148;11881:265;;;;:::o;12588:175::-;12646:20;12663:2;12646:16;:20::i;:::-;12638:75;;;;-1:-1:-1;;;12638:75:22;;;;;;;:::i;:::-;12723:15;;;;1470:1;12723:15;;;;;;;;:33;12588:175::o;7461:233:17:-;7544:22;7552:4;7558:7;7544;:22::i;:::-;7539:149;;7582:6;:12;;;;;;;;;;;-1:-1:-1;;;;;7582:29:17;;;;;;;;;:36;;-1:-1:-1;;7582:36:17;7614:4;7582:36;;;7664:12;719:10:47;;640:96;7664:12:17;-1:-1:-1;;;;;7637:40:17;7655:7;-1:-1:-1;;;;;7637:40:17;7649:4;7637:40;;;;;;;;;;7461:233;;:::o;7865:234::-;7948:22;7956:4;7962:7;7948;:22::i;:::-;7944:149;;;8018:5;7986:12;;;;;;;;;;;-1:-1:-1;;;;;7986:29:17;;;;;;;;;;:37;;-1:-1:-1;;7986:37:17;;;8042:40;719:10:47;;7986:12:17;;8042:40;;8018:5;8042:40;7865:234;;:::o;2102:149:49:-;2160:13;2192:52;-1:-1:-1;;;;;2204:22:49;;311:2;1513:437;1588:13;1613:19;1645:10;1649:6;1645:1;:10;:::i;:::-;:14;;1658:1;1645:14;:::i;:::-;-1:-1:-1;;;;;1635:25:49;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1635:25:49;;1613:47;;-1:-1:-1;;;1670:6:49;1677:1;1670:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1670:15:49;;;;;;;;;-1:-1:-1;;;1695:6:49;1702:1;1695:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1695:15:49;;;;;;;;-1:-1:-1;1725:9:49;1737:10;1741:6;1737:1;:10;:::i;:::-;:14;;1750:1;1737:14;:::i;:::-;1725:26;;1720:128;1757:1;1753;:5;1720:128;;;-1:-1:-1;;;1800:5:49;1808:3;1800:11;1791:21;;;;;;;:::i;:::-;;;;1779:6;1786:1;1779:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1779:33:49;;;;;;;;-1:-1:-1;1836:1:49;1826:11;;;;;1760:3;;;:::i;:::-;;;1720:128;;;-1:-1:-1;1865:10:49;;1857:55;;;;-1:-1:-1;;;1857:55:49;;22136:2:89;1857:55:49;;;22118:21:89;;;22155:18;;;22148:30;22214:34;22194:18;;;22187:62;22266:18;;1857:55:49;21934:356:89;14:173;82:20;;-1:-1:-1;;;;;131:31:89;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:347::-;243:8;253:6;307:3;300:4;292:6;288:17;284:27;274:55;;325:1;322;315:12;274:55;-1:-1:-1;348:20:89;;-1:-1:-1;;;;;380:30:89;;377:50;;;423:1;420;413:12;377:50;460:4;452:6;448:17;436:29;;512:3;505:4;496:6;488;484:19;480:30;477:39;474:59;;;529:1;526;519:12;474:59;192:347;;;;;:::o;544:758::-;659:6;667;675;683;691;699;707;760:3;748:9;739:7;735:23;731:33;728:53;;;777:1;774;767:12;728:53;800:29;819:9;800:29;:::i;:::-;790:39;;876:2;865:9;861:18;848:32;838:42;;931:2;920:9;916:18;903:32;-1:-1:-1;;;;;950:6:89;947:30;944:50;;;990:1;987;980:12;944:50;1029:58;1079:7;1070:6;1059:9;1055:22;1029:58;:::i;:::-;544:758;;;;-1:-1:-1;1106:8:89;1188:2;1173:18;;1160:32;;1239:3;1224:19;;1211:33;;-1:-1:-1;1291:3:89;1276:19;;;1263:33;;-1:-1:-1;544:758:89;-1:-1:-1;;;;544:758:89:o;1307:286::-;1365:6;1418:2;1406:9;1397:7;1393:23;1389:32;1386:52;;;1434:1;1431;1424:12;1386:52;1460:23;;-1:-1:-1;;;;;;1512:32:89;;1502:43;;1492:71;;1559:1;1556;1549:12;1972:689;2078:6;2086;2094;2102;2110;2118;2171:3;2159:9;2150:7;2146:23;2142:33;2139:53;;;2188:1;2185;2178:12;2139:53;2211:29;2230:9;2211:29;:::i;:::-;2201:39;;2287:2;2276:9;2272:18;2259:32;2249:42;;2342:2;2331:9;2327:18;2314:32;-1:-1:-1;;;;;2361:6:89;2358:30;2355:50;;;2401:1;2398;2391:12;2355:50;2440:58;2490:7;2481:6;2470:9;2466:22;2440:58;:::i;:::-;1972:689;;;;-1:-1:-1;2517:8:89;2599:2;2584:18;;2571:32;;2650:3;2635:19;;;2622:33;;-1:-1:-1;1972:689:89;-1:-1:-1;;;;1972:689:89:o;2666:180::-;2725:6;2778:2;2766:9;2757:7;2753:23;2749:32;2746:52;;;2794:1;2791;2784:12;2746:52;-1:-1:-1;2817:23:89;;2666:180;-1:-1:-1;2666:180:89:o;2851:127::-;2912:10;2907:3;2903:20;2900:1;2893:31;2943:4;2940:1;2933:15;2967:4;2964:1;2957:15;2983:275;3054:2;3048:9;3119:2;3100:13;;-1:-1:-1;;3096:27:89;3084:40;;-1:-1:-1;;;;;3139:34:89;;3175:22;;;3136:62;3133:88;;;3201:18;;:::i;:::-;3237:2;3230:22;2983:275;;-1:-1:-1;2983:275:89:o;3263:530::-;3305:5;3358:3;3351:4;3343:6;3339:17;3335:27;3325:55;;3376:1;3373;3366:12;3325:55;3412:6;3399:20;-1:-1:-1;;;;;3434:2:89;3431:26;3428:52;;;3460:18;;:::i;:::-;3504:55;3547:2;3528:13;;-1:-1:-1;;3524:27:89;3553:4;3520:38;3504:55;:::i;:::-;3584:2;3575:7;3568:19;3630:3;3623:4;3618:2;3610:6;3606:15;3602:26;3599:35;3596:55;;;3647:1;3644;3637:12;3596:55;3712:2;3705:4;3697:6;3693:17;3686:4;3677:7;3673:18;3660:55;3760:1;3735:16;;;3753:4;3731:27;3724:38;;;;3739:7;3263:530;-1:-1:-1;;;3263:530:89:o;3798:537::-;3893:6;3901;3909;3917;3970:3;3958:9;3949:7;3945:23;3941:33;3938:53;;;3987:1;3984;3977:12;3938:53;4010:29;4029:9;4010:29;:::i;:::-;4000:39;;4058:38;4092:2;4081:9;4077:18;4058:38;:::i;:::-;4048:48;;4143:2;4132:9;4128:18;4115:32;4105:42;;4198:2;4187:9;4183:18;4170:32;-1:-1:-1;;;;;4217:6:89;4214:30;4211:50;;;4257:1;4254;4247:12;4211:50;4280:49;4321:7;4312:6;4301:9;4297:22;4280:49;:::i;:::-;4270:59;;;3798:537;;;;;;;:::o;4547:254::-;4615:6;4623;4676:2;4664:9;4655:7;4651:23;4647:32;4644:52;;;4692:1;4689;4682:12;4644:52;4728:9;4715:23;4705:33;;4757:38;4791:2;4780:9;4776:18;4757:38;:::i;:::-;4747:48;;4547:254;;;;;:::o;4991:367::-;5054:8;5064:6;5118:3;5111:4;5103:6;5099:17;5095:27;5085:55;;5136:1;5133;5126:12;5085:55;-1:-1:-1;5159:20:89;;-1:-1:-1;;;;;5191:30:89;;5188:50;;;5234:1;5231;5224:12;5188:50;5271:4;5263:6;5259:17;5247:29;;5331:3;5324:4;5314:6;5311:1;5307:14;5299:6;5295:27;5291:38;5288:47;5285:67;;;5348:1;5345;5338:12;5363:1306;5559:6;5567;5575;5583;5591;5599;5607;5615;5623;5676:3;5664:9;5655:7;5651:23;5647:33;5644:53;;;5693:1;5690;5683:12;5644:53;5733:9;5720:23;-1:-1:-1;;;;;5803:2:89;5795:6;5792:14;5789:34;;;5819:1;5816;5809:12;5789:34;5858:70;5920:7;5911:6;5900:9;5896:22;5858:70;:::i;:::-;5947:8;;-1:-1:-1;5832:96:89;-1:-1:-1;6035:2:89;6020:18;;6007:32;;-1:-1:-1;6051:16:89;;;6048:36;;;6080:1;6077;6070:12;6048:36;6119:72;6183:7;6172:8;6161:9;6157:24;6119:72;:::i;:::-;6210:8;;-1:-1:-1;6093:98:89;-1:-1:-1;6298:2:89;6283:18;;6270:32;;-1:-1:-1;6314:16:89;;;6311:36;;;6343:1;6340;6333:12;6311:36;;6382:72;6446:7;6435:8;6424:9;6420:24;6382:72;:::i;:::-;5363:1306;;;;-1:-1:-1;5363:1306:89;;;;6473:8;;6555:2;6540:18;;6527:32;;6606:3;6591:19;;6578:33;;-1:-1:-1;6658:3:89;6643:19;6630:33;;-1:-1:-1;5363:1306:89;-1:-1:-1;;;;5363:1306:89:o;6674:1237::-;6861:6;6869;6877;6885;6893;6901;6909;6917;6970:3;6958:9;6949:7;6945:23;6941:33;6938:53;;;6987:1;6984;6977:12;6938:53;7027:9;7014:23;-1:-1:-1;;;;;7097:2:89;7089:6;7086:14;7083:34;;;7113:1;7110;7103:12;7083:34;7152:70;7214:7;7205:6;7194:9;7190:22;7152:70;:::i;:::-;7241:8;;-1:-1:-1;7126:96:89;-1:-1:-1;7329:2:89;7314:18;;7301:32;;-1:-1:-1;7345:16:89;;;7342:36;;;7374:1;7371;7364:12;7342:36;7413:72;7477:7;7466:8;7455:9;7451:24;7413:72;:::i;:::-;7504:8;;-1:-1:-1;7387:98:89;-1:-1:-1;7592:2:89;7577:18;;7564:32;;-1:-1:-1;7608:16:89;;;7605:36;;;7637:1;7634;7627:12;7605:36;;7676:72;7740:7;7729:8;7718:9;7714:24;7676:72;:::i;:::-;6674:1237;;;;-1:-1:-1;6674:1237:89;;;;7767:8;;7849:2;7834:18;;7821:32;;7900:3;7885:19;7872:33;;-1:-1:-1;6674:1237:89;-1:-1:-1;;;;6674:1237:89:o;7916:712::-;7970:5;8023:3;8016:4;8008:6;8004:17;8000:27;7990:55;;8041:1;8038;8031:12;7990:55;8077:6;8064:20;8103:4;-1:-1:-1;;;;;8122:2:89;8119:26;8116:52;;;8148:18;;:::i;:::-;8194:2;8191:1;8187:10;8217:28;8241:2;8237;8233:11;8217:28;:::i;:::-;8279:15;;;8349;;;8345:24;;;8310:12;;;;8381:15;;;8378:35;;;8409:1;8406;8399:12;8378:35;8445:2;8437:6;8433:15;8422:26;;8457:142;8473:6;8468:3;8465:15;8457:142;;;8539:17;;8527:30;;8490:12;;;;8577;;;;8457:142;;;8617:5;7916:712;-1:-1:-1;;;;;;;7916:712:89:o;8633:943::-;8787:6;8795;8803;8811;8819;8872:3;8860:9;8851:7;8847:23;8843:33;8840:53;;;8889:1;8886;8879:12;8840:53;8912:29;8931:9;8912:29;:::i;:::-;8902:39;;8960:38;8994:2;8983:9;8979:18;8960:38;:::i;:::-;8950:48;;9049:2;9038:9;9034:18;9021:32;-1:-1:-1;;;;;9113:2:89;9105:6;9102:14;9099:34;;;9129:1;9126;9119:12;9099:34;9152:61;9205:7;9196:6;9185:9;9181:22;9152:61;:::i;:::-;9142:71;;9266:2;9255:9;9251:18;9238:32;9222:48;;9295:2;9285:8;9282:16;9279:36;;;9311:1;9308;9301:12;9279:36;9334:63;9389:7;9378:8;9367:9;9363:24;9334:63;:::i;:::-;9324:73;;9450:3;9439:9;9435:19;9422:33;9406:49;;9480:2;9470:8;9467:16;9464:36;;;9496:1;9493;9486:12;9464:36;;9519:51;9562:7;9551:8;9540:9;9536:24;9519:51;:::i;:::-;9509:61;;;8633:943;;;;;;;;:::o;9763:606::-;9867:6;9875;9883;9891;9899;9952:3;9940:9;9931:7;9927:23;9923:33;9920:53;;;9969:1;9966;9959:12;9920:53;9992:29;10011:9;9992:29;:::i;:::-;9982:39;;10040:38;10074:2;10063:9;10059:18;10040:38;:::i;:::-;10030:48;;10125:2;10114:9;10110:18;10097:32;10087:42;;10176:2;10165:9;10161:18;10148:32;10138:42;;10231:3;10220:9;10216:19;10203:33;-1:-1:-1;;;;;10251:6:89;10248:30;10245:50;;;10291:1;10288;10281:12;10245:50;10314:49;10355:7;10346:6;10335:9;10331:22;10314:49;:::i;10374:266::-;10462:6;10457:3;10450:19;10514:6;10507:5;10500:4;10495:3;10491:14;10478:43;-1:-1:-1;10566:1:89;10541:16;;;10559:4;10537:27;;;10530:38;;;;10622:2;10601:15;;;-1:-1:-1;;10597:29:89;10588:39;;;10584:50;;10374:266::o;10645:557::-;10943:1;10939;10934:3;10930:11;10926:19;10918:6;10914:32;10903:9;10896:51;10983:6;10978:2;10967:9;10963:18;10956:34;11026:3;11021:2;11010:9;11006:18;10999:31;10877:4;11047:62;11104:3;11093:9;11089:19;11081:6;11073;11047:62;:::i;:::-;11140:2;11125:18;;11118:34;;;;-1:-1:-1;11183:3:89;11168:19;11161:35;11039:70;10645:557;-1:-1:-1;;;;10645:557:89:o;11207:412::-;11449:1;11445;11440:3;11436:11;11432:19;11424:6;11420:32;11409:9;11402:51;11489:6;11484:2;11473:9;11469:18;11462:34;11532:2;11527;11516:9;11512:18;11505:30;11383:4;11552:61;11609:2;11598:9;11594:18;11586:6;11578;11552:61;:::i;:::-;11544:69;11207:412;-1:-1:-1;;;;;;11207:412:89:o;13267:399::-;13469:2;13451:21;;;13508:2;13488:18;;;13481:30;13547:34;13542:2;13527:18;;13520:62;-1:-1:-1;;;13613:2:89;13598:18;;13591:33;13656:3;13641:19;;13267:399::o;13671:127::-;13732:10;13727:3;13723:20;13720:1;13713:31;13763:4;13760:1;13753:15;13787:4;13784:1;13777:15;13803:186;13862:6;13915:2;13903:9;13894:7;13890:23;13886:32;13883:52;;;13931:1;13928;13921:12;13883:52;13954:29;13973:9;13954:29;:::i;13994:521::-;14071:4;14077:6;14137:11;14124:25;14231:2;14227:7;14216:8;14200:14;14196:29;14192:43;14172:18;14168:68;14158:96;;14250:1;14247;14240:12;14158:96;14277:33;;14329:20;;;-1:-1:-1;;;;;;14361:30:89;;14358:50;;;14404:1;14401;14394:12;14358:50;14437:4;14425:17;;-1:-1:-1;14468:14:89;14464:27;;;14454:38;;14451:58;;;14505:1;14502;14495:12;14520:127;14581:10;14576:3;14572:20;14569:1;14562:31;14612:4;14609:1;14602:15;14636:4;14633:1;14626:15;14652:135;14691:3;14712:17;;;14709:43;;14732:18;;:::i;:::-;-1:-1:-1;14779:1:89;14768:13;;14652:135::o;14792:1067::-;14899:6;14894:3;14887:19;14869:3;14925:4;14966:2;14961:3;14957:12;14991:11;15018;15011:18;;15068:6;15065:1;15061:14;15054:5;15050:26;15038:38;;15099:5;15122:1;15132:701;15146:6;15143:1;15140:13;15132:701;;;15217:5;15211:4;15207:16;15202:3;15195:29;15276:6;15263:20;15366:2;15362:7;15354:5;15338:14;15334:26;15330:40;15310:18;15306:65;15296:93;;15385:1;15382;15375:12;15296:93;15417:30;;15525:16;;;;15476:21;-1:-1:-1;;;;;15557:32:89;;15554:52;;;15602:1;15599;15592:12;15554:52;15655:8;15639:14;15635:29;15626:7;15622:43;15619:63;;;15678:1;15675;15668:12;15619:63;15703:50;15748:4;15738:8;15729:7;15703:50;:::i;:::-;15811:12;;;;15695:58;-1:-1:-1;;;15776:15:89;;;;15168:1;15161:9;15132:701;;;-1:-1:-1;15849:4:89;;14792:1067;-1:-1:-1;;;;;;;14792:1067:89:o;15864:1393::-;16316:3;16329:22;;;16301:19;;16386:22;;;16268:4;16466:6;16439:3;16424:19;;16268:4;16500:235;16514:6;16511:1;16508:13;16500:235;;;-1:-1:-1;;;;;16579:26:89;16598:6;16579:26;:::i;:::-;16575:52;16563:65;;16651:4;16710:15;;;;16675:12;;;;16536:1;16529:9;16500:235;;;-1:-1:-1;16773:19:89;;;16766:4;16751:20;;16744:49;16802:19;;;-1:-1:-1;;;;;16833:31:89;;16830:51;;;16877:1;16874;16867:12;16830:51;16911:6;16908:1;16904:14;16890:28;;16964:6;16956;16949:4;16944:3;16940:14;16927:44;16990:16;17046:18;;;17066:4;17042:29;;;17037:2;17022:18;;17015:57;17089:75;;17150:13;;17142:6;17134;17089:75;:::i;:::-;17195:2;17180:18;;17173:34;;;;-1:-1:-1;;17238:3:89;17223:19;17216:35;17081:83;15864:1393;-1:-1:-1;;;;;;15864:1393:89:o;18503:125::-;18568:9;;;18589:10;;;18586:36;;;18602:18;;:::i;18633:250::-;18718:1;18728:113;18742:6;18739:1;18736:13;18728:113;;;18818:11;;;18812:18;18799:11;;;18792:39;18764:2;18757:10;18728:113;;;-1:-1:-1;;18875:1:89;18857:16;;18850:27;18633:250::o;18888:812::-;19299:25;19294:3;19287:38;19269:3;19354:6;19348:13;19370:75;19438:6;19433:2;19428:3;19424:12;19417:4;19409:6;19405:17;19370:75;:::i;:::-;-1:-1:-1;;;19504:2:89;19464:16;;;19496:11;;;19489:40;19554:13;;19576:76;19554:13;19638:2;19630:11;;19623:4;19611:17;;19576:76;:::i;:::-;19672:17;19691:2;19668:26;;18888:812;-1:-1:-1;;;;18888:812:89:o;19705:396::-;19854:2;19843:9;19836:21;19817:4;19886:6;19880:13;19929:6;19924:2;19913:9;19909:18;19902:34;19945:79;20017:6;20012:2;20001:9;19997:18;19992:2;19984:6;19980:15;19945:79;:::i;:::-;20085:2;20064:15;-1:-1:-1;;20060:29:89;20045:45;;;;20092:2;20041:54;;19705:396;-1:-1:-1;;19705:396:89:o;20106:406::-;20308:2;20290:21;;;20347:2;20327:18;;;20320:30;20386:34;20381:2;20366:18;;20359:62;-1:-1:-1;;;20452:2:89;20437:18;;20430:40;20502:3;20487:19;;20106:406::o;20924:271::-;21107:6;21099;21094:3;21081:33;21063:3;21133:16;;21158:13;;;21133:16;20924:271;-1:-1:-1;20924:271:89:o;21620:168::-;21693:9;;;21724;;21741:15;;;21735:22;;21721:37;21711:71;;21762:18;;:::i;21793:136::-;21832:3;21860:5;21850:39;;21869:18;;:::i;:::-;-1:-1:-1;;;21905:18:89;;21793:136::o"},"methodIdentifiers":{"CANCELLER_ROLE()":"b08e51c0","DEFAULT_ADMIN_ROLE()":"a217fddf","EXECUTOR_ROLE()":"07bd0265","PROPOSER_ROLE()":"8f61f4f5","TIMELOCK_ADMIN_ROLE()":"0d3cf6fc","cancel(bytes32)":"c4d252f5","execute(address,uint256,bytes,bytes32,bytes32)":"134008d3","executeBatch(address[],uint256[],bytes[],bytes32,bytes32)":"e38335e5","getMinDelay()":"f27a0c92","getRoleAdmin(bytes32)":"248a9ca3","getTimestamp(bytes32)":"d45c4435","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","hashOperation(address,uint256,bytes,bytes32,bytes32)":"8065657f","hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)":"b1c5f427","isOperation(bytes32)":"31d50750","isOperationDone(bytes32)":"2ab0f529","isOperationPending(bytes32)":"584b153e","isOperationReady(bytes32)":"13bc9f20","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","onERC721Received(address,address,uint256,bytes)":"150b7a02","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","schedule(address,uint256,bytes,bytes32,bytes32,uint256)":"01d5062a","scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)":"8f2a0bb0","supportsInterface(bytes4)":"01ffc9a7","updateDelay(uint256)":"64d62353"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"proposers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"executors\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"CallExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"CallScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"Cancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDuration\",\"type\":\"uint256\"}],\"name\":\"MinDelayChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CANCELLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXECUTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TIMELOCK_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"executeBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMinDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"hashOperationBatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"registered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationDone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"done\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationPending\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"isOperationReady\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"ready\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"schedule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"payloads\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"predecessor\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delay\",\"type\":\"uint256\"}],\"name\":\"scheduleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newDelay\",\"type\":\"uint256\"}],\"name\":\"updateDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"cancel(bytes32)\":{\"details\":\"Cancel an operation. Requirements: - the caller must have the 'canceller' role.\"},\"execute(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a single transaction. Emits a {CallExecuted} event. Requirements: - the caller must have the 'executor' role.\"},\"executeBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Execute an (ready) operation containing a batch of transactions. Emits one {CallExecuted} event per transaction in the batch. Requirements: - the caller must have the 'executor' role.\"},\"getMinDelay()\":{\"details\":\"Returns the minimum delay for an operation to become valid. This value can be changed by executing an operation that calls `updateDelay`.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getTimestamp(bytes32)\":{\"details\":\"Returns the timestamp at with an operation becomes ready (0 for unset operations, 1 for done operations).\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"hashOperation(address,uint256,bytes,bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a single transaction.\"},\"hashOperationBatch(address[],uint256[],bytes[],bytes32,bytes32)\":{\"details\":\"Returns the identifier of an operation containing a batch of transactions.\"},\"isOperation(bytes32)\":{\"details\":\"Returns whether an id correspond to a registered operation. This includes both Pending, Ready and Done operations.\"},\"isOperationDone(bytes32)\":{\"details\":\"Returns whether an operation is done or not.\"},\"isOperationPending(bytes32)\":{\"details\":\"Returns whether an operation is pending or not.\"},\"isOperationReady(bytes32)\":{\"details\":\"Returns whether an operation is ready or not.\"},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155BatchReceived}.\"},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155Receiver-onERC1155Received}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"schedule(address,uint256,bytes,bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a single transaction. Emits a {CallScheduled} event. Requirements: - the caller must have the 'proposer' role.\"},\"scheduleBatch(address[],uint256[],bytes[],bytes32,bytes32,uint256)\":{\"details\":\"Schedule an operation containing a batch of transactions. Emits one {CallScheduled} event per transaction in the batch. Requirements: - the caller must have the 'proposer' role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateDelay(uint256)\":{\"details\":\"Changes the minimum timelock duration for future operations. Emits a {MinDelayChange} event. Requirements: - the caller must be the timelock itself. This can only be achieved by scheduling and later executing an operation where the timelock is the target and the data is the ABI-encoded call to this function.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/governance/Timelock.sol\":\"Timelock\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"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/governance/TimelockController.sol\":{\"keccak256\":\"0xf3ffa69c5f7c9ebb35775be2f3b27389550a102f0e1cdfff99a54663c7b162ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f4294b5223d7823b86c0bd92516cca895f800b8db605df60d088ed89a05fede\",\"dweb:/ipfs/QmRfMZ9JYTuKYFrmkn4C3CQLnd7GxLKswBxJwpYB6HDEvD\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"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\"]},\"contracts/common/libraries/Constants.sol\":{\"keccak256\":\"0x1c22a5150d72c2ef9baef07a7b1e74c3e30ba8ebb2cbfa339b3392c662ac6239\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3303822a495220b88d79244edcfdbf851c3fc26cdc056bf4e8e4f04f5331807\",\"dweb:/ipfs/QmXpkrctAvQ3dXerWEFu79Qy8jcGFaUZK3QLW1XK2hFCsG\"]},\"contracts/governance/Timelock.sol\":{\"keccak256\":\"0x48d59e4516ec0236d7d0d4e83e7cb47f0a0cc7e869666e804e9e9115a8381083\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64bbb249ab22814b502f46189b297ea2dd5d0b32657047ac37e704f7f25a4272\",\"dweb:/ipfs/QmSKRf7jXUsz2p5fJ7pdiKkuN7UkGBGTLDcJoZevNoDqJc\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5163,"contract":"contracts/governance/Timelock.sol:Timelock","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)"},{"astId":7288,"contract":"contracts/governance/Timelock.sol:Timelock","label":"_timestamps","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"},{"astId":7290,"contract":"contracts/governance/Timelock.sol:Timelock","label":"_minDelay","offset":0,"slot":"2","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)5158_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)5158_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(RoleData)5158_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":5155,"contract":"contracts/governance/Timelock.sol:Timelock","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":5157,"contract":"contracts/governance/Timelock.sol:Timelock","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/organizations/CertificateNFT.sol":{"CertificateNFT":{"abi":[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"safeMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11048":{"entryPoint":null,"id":11048,"parameterSlots":2,"returnSlots":0},"@_22924":{"entryPoint":null,"id":22924,"parameterSlots":0,"returnSlots":0},"@_5551":{"entryPoint":null,"id":5551,"parameterSlots":0,"returnSlots":0},"@_msgSender_14314":{"entryPoint":168,"id":14314,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5639":{"entryPoint":172,"id":5639,"parameterSlots":1,"returnSlots":0},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":336,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":419,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":276,"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":254,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2732:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"201:325:89","statements":[{"nodeType":"YulAssignment","src":"211:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"225:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"228:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"221:3:89"},"nodeType":"YulFunctionCall","src":"221:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"211:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"242:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"272:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"278:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"268:3:89"},"nodeType":"YulFunctionCall","src":"268:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"246:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"319:31:89","statements":[{"nodeType":"YulAssignment","src":"321:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"335:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"343:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"331:3:89"},"nodeType":"YulFunctionCall","src":"331:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"321:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"299:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"292:6:89"},"nodeType":"YulFunctionCall","src":"292:26:89"},"nodeType":"YulIf","src":"289:61:89"},{"body":{"nodeType":"YulBlock","src":"409:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"430:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"437:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"442:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"433:3:89"},"nodeType":"YulFunctionCall","src":"433:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:89"},"nodeType":"YulFunctionCall","src":"423:31:89"},"nodeType":"YulExpressionStatement","src":"423:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"477:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"467:6:89"},"nodeType":"YulFunctionCall","src":"467:15:89"},"nodeType":"YulExpressionStatement","src":"467:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"502:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"505:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"495:6:89"},"nodeType":"YulFunctionCall","src":"495:15:89"},"nodeType":"YulExpressionStatement","src":"495:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"365:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"396:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"385:2:89"},"nodeType":"YulFunctionCall","src":"385:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"362:2:89"},"nodeType":"YulFunctionCall","src":"362:38:89"},"nodeType":"YulIf","src":"359:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"181:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"190:6:89","type":""}],"src":"146:380:89"},{"body":{"nodeType":"YulBlock","src":"587:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"604:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"607:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"597:6:89"},"nodeType":"YulFunctionCall","src":"597:14:89"},"nodeType":"YulExpressionStatement","src":"597:14:89"},{"nodeType":"YulAssignment","src":"620:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"638:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"641:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"628:9:89"},"nodeType":"YulFunctionCall","src":"628:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"570:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"578:4:89","type":""}],"src":"531:121:89"},{"body":{"nodeType":"YulBlock","src":"738:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"771:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"785:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"795:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"789:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"816:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"820:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:89"},"nodeType":"YulFunctionCall","src":"809:17:89"},"nodeType":"YulExpressionStatement","src":"809:17:89"},{"nodeType":"YulVariableDeclaration","src":"839:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"861:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"851:9:89"},"nodeType":"YulFunctionCall","src":"851:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"843:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"883:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"906:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"923:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"935:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"919:3:89"},"nodeType":"YulFunctionCall","src":"919:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"912:3:89"},"nodeType":"YulFunctionCall","src":"912:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:89"},"nodeType":"YulFunctionCall","src":"902:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"887:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"977:23:89","statements":[{"nodeType":"YulAssignment","src":"979:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"994:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"979:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"959:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"971:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"956:2:89"},"nodeType":"YulFunctionCall","src":"956:20:89"},"nodeType":"YulIf","src":"953:47:89"},{"nodeType":"YulVariableDeclaration","src":"1013:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1027:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1044:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1049:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1040:3:89"},"nodeType":"YulFunctionCall","src":"1040:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1033:3:89"},"nodeType":"YulFunctionCall","src":"1033:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:89"},"nodeType":"YulFunctionCall","src":"1023:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1017:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1067:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1080:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1071:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1165:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1174:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1181:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1167:6:89"},"nodeType":"YulFunctionCall","src":"1167:17:89"},"nodeType":"YulExpressionStatement","src":"1167:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1115:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"1122:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1112:2:89"},"nodeType":"YulFunctionCall","src":"1112:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1126:26:89","statements":[{"nodeType":"YulAssignment","src":"1128:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1141:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1148:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1137:3:89"},"nodeType":"YulFunctionCall","src":"1137:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1128:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1108:3:89","statements":[]},"src":"1104:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"754:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"759:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:89"},"nodeType":"YulFunctionCall","src":"751:11:89"},"nodeType":"YulIf","src":"748:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"710:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"717:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"722:10:89","type":""}],"src":"657:545:89"},{"body":{"nodeType":"YulBlock","src":"1292:81:89","statements":[{"nodeType":"YulAssignment","src":"1302:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1317:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1335:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1338:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1331:3:89"},"nodeType":"YulFunctionCall","src":"1331:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1348:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1344:3:89"},"nodeType":"YulFunctionCall","src":"1344:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1327:3:89"},"nodeType":"YulFunctionCall","src":"1327:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1323:3:89"},"nodeType":"YulFunctionCall","src":"1323:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1313:3:89"},"nodeType":"YulFunctionCall","src":"1313:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1362:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1355:3:89"},"nodeType":"YulFunctionCall","src":"1355:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1310:2:89"},"nodeType":"YulFunctionCall","src":"1310:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1302:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1269:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1275:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1283:4:89","type":""}],"src":"1207:166:89"},{"body":{"nodeType":"YulBlock","src":"1474:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1484:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1504:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1498:5:89"},"nodeType":"YulFunctionCall","src":"1498:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1488:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1551:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1553:16:89"},"nodeType":"YulFunctionCall","src":"1553:18:89"},"nodeType":"YulExpressionStatement","src":"1553:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1523:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1539:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1543:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1535:3:89"},"nodeType":"YulFunctionCall","src":"1535:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"1547:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:89"},"nodeType":"YulFunctionCall","src":"1531:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1520:2:89"},"nodeType":"YulFunctionCall","src":"1520:30:89"},"nodeType":"YulIf","src":"1517:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1626:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1664:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1658:5:89"},"nodeType":"YulFunctionCall","src":"1658:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1632:25:89"},"nodeType":"YulFunctionCall","src":"1632:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"1672:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1582:43:89"},"nodeType":"YulFunctionCall","src":"1582:97:89"},"nodeType":"YulExpressionStatement","src":"1582:97:89"},{"nodeType":"YulVariableDeclaration","src":"1688:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1705:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1692:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1715:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1734:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"1719:11:89","type":""}]},{"nodeType":"YulAssignment","src":"1747:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"1760:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"1747:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"1817:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1831:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1850:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1858:3:89"},"nodeType":"YulFunctionCall","src":"1858:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1846:3:89"},"nodeType":"YulFunctionCall","src":"1846:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"1835:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1879:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1923:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"1893:29:89"},"nodeType":"YulFunctionCall","src":"1893:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"1883:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1941:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1950:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1945:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2028:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2053:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2071:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2076:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2067:3:89"},"nodeType":"YulFunctionCall","src":"2067:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2061:5:89"},"nodeType":"YulFunctionCall","src":"2061:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2046:6:89"},"nodeType":"YulFunctionCall","src":"2046:42:89"},"nodeType":"YulExpressionStatement","src":"2046:42:89"},{"nodeType":"YulAssignment","src":"2105:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2119:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2127:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:89"},"nodeType":"YulFunctionCall","src":"2115:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2105:6:89"}]},{"nodeType":"YulAssignment","src":"2146:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2163:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2174:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2159:3:89"},"nodeType":"YulFunctionCall","src":"2159:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2146:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1975:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"1978:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1972:2:89"},"nodeType":"YulFunctionCall","src":"1972:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1987:28:89","statements":[{"nodeType":"YulAssignment","src":"1989:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1998:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2001:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:89"},"nodeType":"YulFunctionCall","src":"1994:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1989:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1968:3:89","statements":[]},"src":"1964:236:89"},{"body":{"nodeType":"YulBlock","src":"2248:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2293:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2298:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:89"},"nodeType":"YulFunctionCall","src":"2289:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2283:5:89"},"nodeType":"YulFunctionCall","src":"2283:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2270:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2333:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2345:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2375:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2368:3:89"},"nodeType":"YulFunctionCall","src":"2368:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"2384:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2364:3:89"},"nodeType":"YulFunctionCall","src":"2364:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2394:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2390:3:89"},"nodeType":"YulFunctionCall","src":"2390:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2360:3:89"},"nodeType":"YulFunctionCall","src":"2360:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2356:3:89"},"nodeType":"YulFunctionCall","src":"2356:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2341:3:89"},"nodeType":"YulFunctionCall","src":"2341:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2326:6:89"},"nodeType":"YulFunctionCall","src":"2326:74:89"},"nodeType":"YulExpressionStatement","src":"2326:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2219:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2228:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2216:2:89"},"nodeType":"YulFunctionCall","src":"2216:19:89"},"nodeType":"YulIf","src":"2213:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2434:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2448:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2451:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2444:3:89"},"nodeType":"YulFunctionCall","src":"2444:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"2460:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2440:3:89"},"nodeType":"YulFunctionCall","src":"2440:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2427:6:89"},"nodeType":"YulFunctionCall","src":"2427:36:89"},"nodeType":"YulExpressionStatement","src":"2427:36:89"}]},"nodeType":"YulCase","src":"1810:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1815:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2490:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2504:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2517:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2508:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2553:67:89","statements":[{"nodeType":"YulAssignment","src":"2571:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2590:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2595:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2586:3:89"},"nodeType":"YulFunctionCall","src":"2586:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2580:5:89"},"nodeType":"YulFunctionCall","src":"2580:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2571:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2534:6:89"},"nodeType":"YulIf","src":"2531:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2640:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2699:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2706:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2646:52:89"},"nodeType":"YulFunctionCall","src":"2646:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2633:6:89"},"nodeType":"YulFunctionCall","src":"2633:81:89"},"nodeType":"YulExpressionStatement","src":"2633:81:89"}]},"nodeType":"YulCase","src":"2482:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1790:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1798:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1787:2:89"},"nodeType":"YulFunctionCall","src":"1787:14:89"},"nodeType":"YulSwitch","src":"1780:944:89"}]},"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:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"1465:3:89","type":""}],"src":"1378:1352:89"}]},"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}","id":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280601381526020017f4d79335365632043657274696669636174657300000000000000000000000000815250604051806040016040528060048152602001634d33534360e01b8152508160009081620000769190620001a3565b506001620000858282620001a3565b505050620000a26200009c620000a860201b60201c565b620000ac565b6200026f565b3390565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012957607f821691505b6020821081036200014a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019e57600081815260208120601f850160051c81016020861015620001795750805b601f850160051c820191505b818110156200019a5782815560010162000185565b5050505b505050565b81516001600160401b03811115620001bf57620001bf620000fe565b620001d781620001d0845462000114565b8462000150565b602080601f8311600181146200020f5760008415620001f65750858301515b600019600386901b1c1916600185901b1785556200019a565b600085815260208120601f198616915b8281101562000240578886015182559484019460019091019084016200021f565b50858210156200025f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611e08806200027f6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063b88d4fde11610071578063b88d4fde14610266578063c87b56dd14610279578063d204c45e1461028c578063e985e9c51461029f578063f2fde38b146102db57600080fd5b806370a082311461021f578063715018a6146102325780638da5cb5b1461023a57806395d89b411461024b578063a22cb4651461025357600080fd5b806323b872dd116100f457806323b872dd146101c05780632f745c59146101d357806342842e0e146101e65780634f6ccce7146101f95780636352211e1461020c57600080fd5b806301ffc9a71461013157806306fdde0314610159578063081812fc1461016e578063095ea7b31461019957806318160ddd146101ae575b600080fd5b61014461013f36600461178d565b6102ee565b60405190151581526020015b60405180910390f35b6101616102ff565b60405161015091906117fa565b61018161017c36600461180d565b610391565b6040516001600160a01b039091168152602001610150565b6101ac6101a7366004611842565b6103b8565b005b6008545b604051908152602001610150565b6101ac6101ce36600461186c565b6104d2565b6101b26101e1366004611842565b610503565b6101ac6101f436600461186c565b610599565b6101b261020736600461180d565b6105b4565b61018161021a36600461180d565b610647565b6101b261022d3660046118a8565b6106a7565b6101ac61072d565b600b546001600160a01b0316610181565b610161610741565b6101ac6102613660046118c3565b610750565b6101ac61027436600461198b565b61075f565b61016161028736600461180d565b610797565b6101b261029a366004611a07565b6107a2565b6101446102ad366004611a69565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6101ac6102e93660046118a8565b6107de565b60006102f982610857565b92915050565b60606000805461030e90611a9c565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90611a9c565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b5050505050905090565b600061039c8261087c565b506000908152600460205260409020546001600160a01b031690565b60006103c382610647565b9050806001600160a01b0316836001600160a01b0316036104355760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610451575061045181336102ad565b6104c35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161042c565b6104cd83836108db565b505050565b6104dc3382610949565b6104f85760405162461bcd60e51b815260040161042c90611ad6565b6104cd8383836109c8565b600061050e836106a7565b82106105705760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161042c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6104cd8383836040518060200160405280600081525061075f565b60006105bf60085490565b82106106225760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161042c565b6008828154811061063557610635611b23565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806102f95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161042c565b60006001600160a01b0382166107115760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161042c565b506001600160a01b031660009081526003602052604090205490565b610735610b39565b61073f6000610b93565b565b60606001805461030e90611a9c565b61075b338383610be5565b5050565b6107693383610949565b6107855760405162461bcd60e51b815260040161042c90611ad6565b61079184848484610cb3565b50505050565b60606102f982610ce6565b60006107ac610b39565b600c805490819060006107be83611b4f565b91905055506107cd8482610dee565b6107d78184610e08565b9392505050565b6107e6610b39565b6001600160a01b03811661084b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042c565b61085481610b93565b50565b60006001600160e01b0319821663780e9d6360e01b14806102f957506102f982610e9b565b6000818152600260205260409020546001600160a01b03166108545760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161042c565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061091082610647565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061095583610647565b9050806001600160a01b0316846001600160a01b0316148061099c57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806109c05750836001600160a01b03166109b584610391565b6001600160a01b0316145b949350505050565b826001600160a01b03166109db82610647565b6001600160a01b031614610a015760405162461bcd60e51b815260040161042c90611b68565b6001600160a01b038216610a635760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161042c565b610a708383836001610eeb565b826001600160a01b0316610a8382610647565b6001600160a01b031614610aa95760405162461bcd60e51b815260040161042c90611b68565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600b546001600160a01b0316331461073f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042c565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603610c465760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161042c565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610cbe8484846109c8565b610cca84848484610f74565b6107915760405162461bcd60e51b815260040161042c90611bad565b6060610cf18261087c565b6000828152600a602052604081208054610d0a90611a9c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3690611a9c565b8015610d835780601f10610d5857610100808354040283529160200191610d83565b820191906000526020600020905b815481529060010190602001808311610d6657829003601f168201915b505050505090506000610da160408051602081019091526000815290565b90508051600003610db3575092915050565b815115610de5578082604051602001610dcd929190611bff565b60405160208183030381529060405292505050919050565b6109c084611075565b61075b8282604051806020016040528060008152506110e8565b6000828152600260205260409020546001600160a01b0316610e835760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161042c565b6000828152600a602052604090206104cd8282611c7c565b60006001600160e01b031982166380ac58cd60e01b1480610ecc57506001600160e01b03198216635b5e139f60e01b145b806102f957506301ffc9a760e01b6001600160e01b03198316146102f9565b610ef78484848461111b565b6001600160a01b038416156107915760405162461bcd60e51b815260206004820152603c60248201527f43657274696669636174654e46543a205468697320746f6b656e2063616e6e6f60448201527f74206265207472616e73666572726564206f6e6365206d696e74656400000000606482015260840161042c565b60006001600160a01b0384163b1561106a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610fb8903390899088908890600401611d3c565b6020604051808303816000875af1925050508015610ff3575060408051601f3d908101601f19168201909252610ff091810190611d79565b60015b611050573d808015611021576040519150601f19603f3d011682016040523d82523d6000602084013e611026565b606091505b5080516000036110485760405162461bcd60e51b815260040161042c90611bad565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506109c0565b506001949350505050565b60606110808261087c565b600061109760408051602081019091526000815290565b905060008151116110b757604051806020016040528060008152506107d7565b806110c18461125b565b6040516020016110d2929190611bff565b6040516020818303038152906040529392505050565b6110f283836112ee565b6110ff6000848484610f74565b6104cd5760405162461bcd60e51b815260040161042c90611bad565b61112784848484611487565b60018111156111965760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161042c565b816001600160a01b0385166111f2576111ed81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611215565b836001600160a01b0316856001600160a01b03161461121557611215858261150f565b6001600160a01b0384166112315761122c816115ac565b611254565b846001600160a01b0316846001600160a01b03161461125457611254848261165b565b5050505050565b606060006112688361169f565b600101905060008167ffffffffffffffff811115611288576112886118ff565b6040519080825280601f01601f1916602001820160405280156112b2576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846112bc57509392505050565b6001600160a01b0382166113445760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161042c565b6000818152600260205260409020546001600160a01b0316156113a95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161042c565b6113b7600083836001610eeb565b6000818152600260205260409020546001600160a01b03161561141c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161042c565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610791576001600160a01b038416156114cd576001600160a01b038416600090815260036020526040812080548392906114c7908490611d96565b90915550505b6001600160a01b03831615610791576001600160a01b03831660009081526003602052604081208054839290611504908490611da9565b909155505050505050565b6000600161151c846106a7565b6115269190611d96565b600083815260076020526040902054909150808214611579576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906115be90600190611d96565b600083815260096020526040812054600880549394509092849081106115e6576115e6611b23565b90600052602060002001549050806008838154811061160757611607611b23565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061163f5761163f611dbc565b6001900381819060005260206000200160009055905550505050565b6000611666836106a7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106116de5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061170a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061172857662386f26fc10000830492506010015b6305f5e1008310611740576305f5e100830492506008015b612710831061175457612710830492506004015b60648310611766576064830492506002015b600a83106102f95760010192915050565b6001600160e01b03198116811461085457600080fd5b60006020828403121561179f57600080fd5b81356107d781611777565b60005b838110156117c55781810151838201526020016117ad565b50506000910152565b600081518084526117e68160208601602086016117aa565b601f01601f19169290920160200192915050565b6020815260006107d760208301846117ce565b60006020828403121561181f57600080fd5b5035919050565b80356001600160a01b038116811461183d57600080fd5b919050565b6000806040838503121561185557600080fd5b61185e83611826565b946020939093013593505050565b60008060006060848603121561188157600080fd5b61188a84611826565b925061189860208501611826565b9150604084013590509250925092565b6000602082840312156118ba57600080fd5b6107d782611826565b600080604083850312156118d657600080fd5b6118df83611826565b9150602083013580151581146118f457600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611930576119306118ff565b604051601f8501601f19908116603f01168101908282118183101715611958576119586118ff565b8160405280935085815286868601111561197157600080fd5b858560208301376000602087830101525050509392505050565b600080600080608085870312156119a157600080fd5b6119aa85611826565b93506119b860208601611826565b925060408501359150606085013567ffffffffffffffff8111156119db57600080fd5b8501601f810187136119ec57600080fd5b6119fb87823560208401611915565b91505092959194509250565b60008060408385031215611a1a57600080fd5b611a2383611826565b9150602083013567ffffffffffffffff811115611a3f57600080fd5b8301601f81018513611a5057600080fd5b611a5f85823560208401611915565b9150509250929050565b60008060408385031215611a7c57600080fd5b611a8583611826565b9150611a9360208401611826565b90509250929050565b600181811c90821680611ab057607f821691505b602082108103611ad057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b6157611b61611b39565b5060010190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611c118184602088016117aa565b835190830190611c258183602088016117aa565b01949350505050565b601f8211156104cd57600081815260208120601f850160051c81016020861015611c555750805b601f850160051c820191505b81811015611c7457828155600101611c61565b505050505050565b815167ffffffffffffffff811115611c9657611c966118ff565b611caa81611ca48454611a9c565b84611c2e565b602080601f831160018114611cdf5760008415611cc75750858301515b600019600386901b1c1916600185901b178555611c74565b600085815260208120601f198616915b82811015611d0e57888601518255948401946001909101908401611cef565b5085821015611d2c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d6f908301846117ce565b9695505050505050565b600060208284031215611d8b57600080fd5b81516107d781611777565b818103818111156102f9576102f9611b39565b808201808211156102f9576102f9611b39565b634e487b7160e01b600052603160045260246000fdfea26469706673582212203260e3e9b18c4c7e78a5da49e34a6e08ed87fdac12087df0967098d070af8a4c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D79335365632043657274696669636174657300000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x4D335343 PUSH1 0xE0 SHL DUP2 MSTORE POP DUP2 PUSH1 0x0 SWAP1 DUP2 PUSH3 0x76 SWAP2 SWAP1 PUSH3 0x1A3 JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x85 DUP3 DUP3 PUSH3 0x1A3 JUMP JUMPDEST POP POP POP PUSH3 0xA2 PUSH3 0x9C PUSH3 0xA8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xAC JUMP JUMPDEST PUSH3 0x26F JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST 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 0x129 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x14A 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 0x19E 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 0x179 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x19A JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x185 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 0x1BF JUMPI PUSH3 0x1BF PUSH3 0xFE JUMP JUMPDEST PUSH3 0x1D7 DUP2 PUSH3 0x1D0 DUP5 SLOAD PUSH3 0x114 JUMP JUMPDEST DUP5 PUSH3 0x150 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x20F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x1F6 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 0x19A JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x240 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x21F JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x25F 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 0x1E08 DUP1 PUSH3 0x27F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xD204C45E EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x178D JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x161 PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x17FA JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x150 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1842 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x150 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1842 JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x599 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x647 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x18A8 JUMP JUMPDEST PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x72D JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x181 JUMP JUMPDEST PUSH2 0x161 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x261 CALLDATASIZE PUSH1 0x4 PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x750 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST PUSH2 0x161 PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x797 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A07 JUMP JUMPDEST PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A69 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 PUSH2 0x1AC PUSH2 0x2E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A8 JUMP JUMPDEST PUSH2 0x7DE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9 DUP3 PUSH2 0x857 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x30E SWAP1 PUSH2 0x1A9C 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 0x33A SWAP1 PUSH2 0x1A9C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x387 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x35C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x387 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 0x36A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39C DUP3 PUSH2 0x87C 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 0x3C3 DUP3 PUSH2 0x647 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 0x435 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x451 JUMPI POP PUSH2 0x451 DUP2 CALLER PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x4C3 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 0x42C JUMP JUMPDEST PUSH2 0x4CD DUP4 DUP4 PUSH2 0x8DB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4DC CALLER DUP3 PUSH2 0x949 JUMP JUMPDEST PUSH2 0x4F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1AD6 JUMP JUMPDEST PUSH2 0x4CD DUP4 DUP4 DUP4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50E DUP4 PUSH2 0x6A7 JUMP JUMPDEST DUP3 LT PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C 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 PUSH2 0x4CD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BF PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x622 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x635 JUMPI PUSH2 0x635 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 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 0x2F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x711 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C 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 PUSH2 0x735 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x73F PUSH1 0x0 PUSH2 0xB93 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x30E SWAP1 PUSH2 0x1A9C JUMP JUMPDEST PUSH2 0x75B CALLER DUP4 DUP4 PUSH2 0xBE5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x769 CALLER DUP4 PUSH2 0x949 JUMP JUMPDEST PUSH2 0x785 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1AD6 JUMP JUMPDEST PUSH2 0x791 DUP5 DUP5 DUP5 DUP5 PUSH2 0xCB3 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F9 DUP3 PUSH2 0xCE6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7AC PUSH2 0xB39 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP2 SWAP1 PUSH1 0x0 PUSH2 0x7BE DUP4 PUSH2 0x1B4F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x7CD DUP5 DUP3 PUSH2 0xDEE JUMP JUMPDEST PUSH2 0x7D7 DUP2 DUP5 PUSH2 0xE08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x7E6 PUSH2 0xB39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH2 0x854 DUP2 PUSH2 0xB93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x780E9D63 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2F9 JUMPI POP PUSH2 0x2F9 DUP3 PUSH2 0xE9B 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 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x910 DUP3 PUSH2 0x647 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 0x955 DUP4 PUSH2 0x647 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 0x99C 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 0x9C0 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9B5 DUP5 PUSH2 0x391 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 0x9DB DUP3 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH2 0xA70 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xEEB JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA83 DUP3 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1B68 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB 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 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x73F 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 0x42C JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xC46 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 0x42C 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 0xCBE DUP5 DUP5 DUP5 PUSH2 0x9C8 JUMP JUMPDEST PUSH2 0xCCA DUP5 DUP5 DUP5 DUP5 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF1 DUP3 PUSH2 0x87C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xD0A SWAP1 PUSH2 0x1A9C 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 0xD36 SWAP1 PUSH2 0x1A9C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD83 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD58 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD83 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 0xD66 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xDA1 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xDB3 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0xDE5 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDCD SWAP3 SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C0 DUP5 PUSH2 0x1075 JUMP JUMPDEST PUSH2 0x75B DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4CD DUP3 DUP3 PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xECC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2F9 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2F9 JUMP JUMPDEST PUSH2 0xEF7 DUP5 DUP5 DUP5 DUP5 PUSH2 0x111B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43657274696669636174654E46543A205468697320746F6B656E2063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206265207472616E73666572726564206F6E6365206D696E74656400000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x106A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xFB8 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D3C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xFF3 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xFF0 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1D79 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1050 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1021 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 0x1026 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1048 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x9C0 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1080 DUP3 PUSH2 0x87C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1097 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 0x10B7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D7 JUMP JUMPDEST DUP1 PUSH2 0x10C1 DUP5 PUSH2 0x125B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D2 SWAP3 SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x10F2 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST PUSH2 0x10FF PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST PUSH2 0x1127 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1487 JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1196 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 PUSH21 0x185B9CD9995C9CC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x5A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x11F2 JUMPI PUSH2 0x11ED 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 0x1215 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1215 JUMPI PUSH2 0x1215 DUP6 DUP3 PUSH2 0x150F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1231 JUMPI PUSH2 0x122C DUP2 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x1254 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1254 JUMPI PUSH2 0x1254 DUP5 DUP3 PUSH2 0x165B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1268 DUP4 PUSH2 0x169F JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x18FF 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 0x12B2 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 PUSH2 0x12BC JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1344 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 0x42C 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 0x13A9 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 0x42C JUMP JUMPDEST PUSH2 0x13B7 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0xEEB 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 0x141C 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 0x42C 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x14CD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x14C7 SWAP1 DUP5 SWAP1 PUSH2 0x1D96 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x791 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1504 SWAP1 DUP5 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x151C DUP5 PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1526 SWAP2 SWAP1 PUSH2 0x1D96 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x1579 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 0x15BE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1D96 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 0x15E6 JUMPI PUSH2 0x15E6 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1607 JUMPI PUSH2 0x1607 PUSH2 0x1B23 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 0x163F JUMPI PUSH2 0x163F PUSH2 0x1DBC 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 0x1666 DUP4 PUSH2 0x6A7 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 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x16DE JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x170A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1728 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1740 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1754 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1766 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2F9 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D7 DUP2 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17C5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x17AD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x17E6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x17AA 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 0x7D7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17CE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x181F 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 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP4 PUSH2 0x1826 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 0x1881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188A DUP5 PUSH2 0x1826 JUMP JUMPDEST SWAP3 POP PUSH2 0x1898 PUSH1 0x20 DUP6 ADD PUSH2 0x1826 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 0x18BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D7 DUP3 PUSH2 0x1826 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18DF DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x18F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP5 GT ISZERO PUSH2 0x1930 JUMPI PUSH2 0x1930 PUSH2 0x18FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1958 PUSH2 0x18FF JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x1971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x19A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19AA DUP6 PUSH2 0x1826 JUMP JUMPDEST SWAP4 POP PUSH2 0x19B8 PUSH1 0x20 DUP7 ADD PUSH2 0x1826 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19FB DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A23 DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1A50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A5F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A85 DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A93 PUSH1 0x20 DUP5 ADD PUSH2 0x1826 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1AB0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1AD0 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 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 PUSH2 0x1B61 JUMPI PUSH2 0x1B61 PUSH2 0x1B39 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C11 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x17AA JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1C25 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x17AA JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4CD 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 0x1C55 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C74 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1C61 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C96 JUMPI PUSH2 0x1C96 PUSH2 0x18FF JUMP JUMPDEST PUSH2 0x1CAA DUP2 PUSH2 0x1CA4 DUP5 SLOAD PUSH2 0x1A9C JUMP JUMPDEST DUP5 PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1CDF JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1CC7 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 0x1C74 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1D0E JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1CEF JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1D2C 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1D6F SWAP1 DUP4 ADD DUP5 PUSH2 0x17CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D7 DUP2 PUSH2 0x1777 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F9 PUSH2 0x1B39 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F9 PUSH2 0x1B39 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 ORIGIN PUSH1 0xE3 0xE9 0xB1 DUP13 0x4C PUSH31 0x78A5DA49E34A6E08ED87FDAC12087DF0967098D070AF8A4C64736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"327:1388:82:-:0;;;450:54;;;;;;;;;;1390:113:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:38;;;1464:5;1456;:13;;;;;;:::i;:::-;-1:-1:-1;1479:7:38;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;936:32:19;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;327:1388:82;;640:96:47;719:10;;640:96::o;2433:187:19:-;2525:6;;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;14:127:89:-;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:89;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:89;;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:89;;;2580:26;2531:89;-1:-1:-1;;1335:1:89;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:89;;;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:89;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:89;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:89:o;:::-;327:1388:82;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_addTokenToAllTokensEnumeration_12306":{"entryPoint":null,"id":12306,"parameterSlots":1,"returnSlots":0},"@_addTokenToOwnerEnumeration_12286":{"entryPoint":5723,"id":12286,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_11929":{"entryPoint":null,"id":11929,"parameterSlots":4,"returnSlots":0},"@_approve_11762":{"entryPoint":2267,"id":11762,"parameterSlots":2,"returnSlots":0},"@_baseURI_11199":{"entryPoint":null,"id":11199,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_11916":{"entryPoint":5255,"id":11916,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_12256":{"entryPoint":4379,"id":12256,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_22989":{"entryPoint":3819,"id":22989,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_11870":{"entryPoint":3956,"id":11870,"parameterSlots":4,"returnSlots":1},"@_checkOwner_5582":{"entryPoint":2873,"id":5582,"parameterSlots":0,"returnSlots":0},"@_exists_11431":{"entryPoint":null,"id":11431,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_11465":{"entryPoint":2377,"id":11465,"parameterSlots":2,"returnSlots":1},"@_mint_11586":{"entryPoint":4846,"id":11586,"parameterSlots":2,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_ownerOf_11413":{"entryPoint":null,"id":11413,"parameterSlots":1,"returnSlots":1},"@_removeTokenFromAllTokensEnumeration_12417":{"entryPoint":5548,"id":12417,"parameterSlots":1,"returnSlots":0},"@_removeTokenFromOwnerEnumeration_12369":{"entryPoint":5391,"id":12369,"parameterSlots":2,"returnSlots":0},"@_requireMinted_11808":{"entryPoint":2172,"id":11808,"parameterSlots":1,"returnSlots":0},"@_safeMint_11480":{"entryPoint":3566,"id":11480,"parameterSlots":2,"returnSlots":0},"@_safeMint_11509":{"entryPoint":4328,"id":11509,"parameterSlots":3,"returnSlots":0},"@_safeTransfer_11400":{"entryPoint":3251,"id":11400,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_11794":{"entryPoint":3045,"id":11794,"parameterSlots":3,"returnSlots":0},"@_setTokenURI_12512":{"entryPoint":3592,"id":12512,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_5639":{"entryPoint":2963,"id":5639,"parameterSlots":1,"returnSlots":0},"@_transfer_11738":{"entryPoint":2504,"id":11738,"parameterSlots":3,"returnSlots":0},"@approve_11242":{"entryPoint":952,"id":11242,"parameterSlots":2,"returnSlots":0},"@balanceOf_11103":{"entryPoint":1703,"id":11103,"parameterSlots":1,"returnSlots":1},"@getApproved_11260":{"entryPoint":913,"id":11260,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_11295":{"entryPoint":null,"id":11295,"parameterSlots":2,"returnSlots":1},"@isContract_12619":{"entryPoint":null,"id":12619,"parameterSlots":1,"returnSlots":1},"@log10_16040":{"entryPoint":5791,"id":16040,"parameterSlots":1,"returnSlots":1},"@name_11141":{"entryPoint":767,"id":11141,"parameterSlots":0,"returnSlots":1},"@ownerOf_11131":{"entryPoint":1607,"id":11131,"parameterSlots":1,"returnSlots":1},"@owner_5568":{"entryPoint":null,"id":5568,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_5596":{"entryPoint":1837,"id":5596,"parameterSlots":0,"returnSlots":0},"@safeMint_22955":{"entryPoint":1954,"id":22955,"parameterSlots":2,"returnSlots":1},"@safeTransferFrom_11341":{"entryPoint":1433,"id":11341,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_11371":{"entryPoint":1887,"id":11371,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_11277":{"entryPoint":1872,"id":11277,"parameterSlots":2,"returnSlots":0},"@supportsInterface_11079":{"entryPoint":3739,"id":11079,"parameterSlots":1,"returnSlots":1},"@supportsInterface_12114":{"entryPoint":2135,"id":12114,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15325":{"entryPoint":null,"id":15325,"parameterSlots":1,"returnSlots":1},"@supportsInterface_23036":{"entryPoint":750,"id":23036,"parameterSlots":1,"returnSlots":1},"@symbol_11151":{"entryPoint":1857,"id":11151,"parameterSlots":0,"returnSlots":1},"@toString_14456":{"entryPoint":4699,"id":14456,"parameterSlots":1,"returnSlots":1},"@tokenByIndex_12176":{"entryPoint":1460,"id":12176,"parameterSlots":1,"returnSlots":1},"@tokenOfOwnerByIndex_12142":{"entryPoint":1283,"id":12142,"parameterSlots":2,"returnSlots":1},"@tokenURI_11190":{"entryPoint":4213,"id":11190,"parameterSlots":1,"returnSlots":1},"@tokenURI_12490":{"entryPoint":3302,"id":12490,"parameterSlots":1,"returnSlots":1},"@tokenURI_23020":{"entryPoint":1943,"id":23020,"parameterSlots":1,"returnSlots":1},"@totalSupply_12153":{"entryPoint":null,"id":12153,"parameterSlots":0,"returnSlots":1},"@transferFrom_11322":{"entryPoint":1234,"id":11322,"parameterSlots":3,"returnSlots":0},"@transferOwnership_5619":{"entryPoint":2014,"id":5619,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":6182,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_bytes":{"entryPoint":6421,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6312,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":6761,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":6252,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":6539,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":6339,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_string_memory_ptr":{"entryPoint":6663,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":6210,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":6029,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":7545,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6157,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":6094,"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":7167,"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":7484,"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":6138,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":6870,"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":7085,"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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7016,"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_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__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_9415f806032e8ce62953c2a5077ab63b71a12b2d4f8611a557c2c72502d2e834__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_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_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7593,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7574,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":7214,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":7292,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6058,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":6812,"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":6991,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6969,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":7612,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6947,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6399,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":6007,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:17405:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:89"},"nodeType":"YulFunctionCall","src":"125:12:89"},"nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:89"},"nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:89"},"nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:89"},"nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:89"},"nodeType":"YulFunctionCall","src":"71:51:89"},"nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:89"},"nodeType":"YulFunctionCall","src":"267:12:89"},"nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:89"},"nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:89"},"nodeType":"YulFunctionCall","src":"232:32:89"},"nodeType":"YulIf","src":"229:52:89"},{"nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:89"},"nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:89"},"nodeType":"YulFunctionCall","src":"335:30:89"},"nodeType":"YulExpressionStatement","src":"335:30:89"},{"nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nodeType":"YulBlock","src":"495:92:89","statements":[{"nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:89"},"nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:89"},"nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:89"},"nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:89"},"nodeType":"YulFunctionCall","src":"540:41:89"},"nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nodeType":"YulBlock","src":"658:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"668:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"677:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"672:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"737:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"762:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"767:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"758:3:89"},"nodeType":"YulFunctionCall","src":"758:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"781:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"786:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:89"},"nodeType":"YulFunctionCall","src":"777:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"771:5:89"},"nodeType":"YulFunctionCall","src":"771:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"751:6:89"},"nodeType":"YulFunctionCall","src":"751:39:89"},"nodeType":"YulExpressionStatement","src":"751:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"698:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"701:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"695:2:89"},"nodeType":"YulFunctionCall","src":"695:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"709:19:89","statements":[{"nodeType":"YulAssignment","src":"711:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"720:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"723:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"716:3:89"},"nodeType":"YulFunctionCall","src":"716:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"711:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"691:3:89","statements":[]},"src":"687:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"820:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"825:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:89"},"nodeType":"YulFunctionCall","src":"816:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"809:6:89"},"nodeType":"YulFunctionCall","src":"809:27:89"},"nodeType":"YulExpressionStatement","src":"809:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"636:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"641:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"646:6:89","type":""}],"src":"592:250:89"},{"body":{"nodeType":"YulBlock","src":"897:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"907:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"927:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"921:5:89"},"nodeType":"YulFunctionCall","src":"921:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"911:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"949:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"954:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"942:6:89"},"nodeType":"YulFunctionCall","src":"942:19:89"},"nodeType":"YulExpressionStatement","src":"942:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1009:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1005:3:89"},"nodeType":"YulFunctionCall","src":"1005:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1027:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1032:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1023:3:89"},"nodeType":"YulFunctionCall","src":"1023:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"1039:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"970:34:89"},"nodeType":"YulFunctionCall","src":"970:76:89"},"nodeType":"YulExpressionStatement","src":"970:76:89"},{"nodeType":"YulAssignment","src":"1055:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1070:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1083:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1091:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1079:3:89"},"nodeType":"YulFunctionCall","src":"1079:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1100:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1096:3:89"},"nodeType":"YulFunctionCall","src":"1096:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1075:3:89"},"nodeType":"YulFunctionCall","src":"1075:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1066:3:89"},"nodeType":"YulFunctionCall","src":"1066:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"1107:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1062:3:89"},"nodeType":"YulFunctionCall","src":"1062:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1055:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"874:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"881:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"889:3:89","type":""}],"src":"847:271:89"},{"body":{"nodeType":"YulBlock","src":"1244:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1261:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1272:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1254:6:89"},"nodeType":"YulFunctionCall","src":"1254:21:89"},"nodeType":"YulExpressionStatement","src":"1254:21:89"},{"nodeType":"YulAssignment","src":"1284:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1322:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1333:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:89"},"nodeType":"YulFunctionCall","src":"1318:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1292:17:89"},"nodeType":"YulFunctionCall","src":"1292:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1284:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1213:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1224:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1235:4:89","type":""}],"src":"1123:220:89"},{"body":{"nodeType":"YulBlock","src":"1418:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"1464:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1473:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1476:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1466:6:89"},"nodeType":"YulFunctionCall","src":"1466:12:89"},"nodeType":"YulExpressionStatement","src":"1466:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1439:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1448:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1435:3:89"},"nodeType":"YulFunctionCall","src":"1435:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1460:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1431:3:89"},"nodeType":"YulFunctionCall","src":"1431:32:89"},"nodeType":"YulIf","src":"1428:52:89"},{"nodeType":"YulAssignment","src":"1489:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1499:12:89"},"nodeType":"YulFunctionCall","src":"1499:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1489:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1384:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1395:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1407:6:89","type":""}],"src":"1348:180:89"},{"body":{"nodeType":"YulBlock","src":"1634:102:89","statements":[{"nodeType":"YulAssignment","src":"1644:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1656:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1667:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1652:3:89"},"nodeType":"YulFunctionCall","src":"1652:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1644:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1686:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1701:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1717:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1713:3:89"},"nodeType":"YulFunctionCall","src":"1713:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1726:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1709:3:89"},"nodeType":"YulFunctionCall","src":"1709:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1697:3:89"},"nodeType":"YulFunctionCall","src":"1697:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1679:6:89"},"nodeType":"YulFunctionCall","src":"1679:51:89"},"nodeType":"YulExpressionStatement","src":"1679:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1614:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1625:4:89","type":""}],"src":"1533:203:89"},{"body":{"nodeType":"YulBlock","src":"1790:124:89","statements":[{"nodeType":"YulAssignment","src":"1800:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1822:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1809:12:89"},"nodeType":"YulFunctionCall","src":"1809:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1800:5:89"}]},{"body":{"nodeType":"YulBlock","src":"1892:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1901:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1904:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1894:6:89"},"nodeType":"YulFunctionCall","src":"1894:12:89"},"nodeType":"YulExpressionStatement","src":"1894:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1862:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1882:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1873:3:89"},"nodeType":"YulFunctionCall","src":"1873:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1886:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1869:3:89"},"nodeType":"YulFunctionCall","src":"1869:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1858:3:89"},"nodeType":"YulFunctionCall","src":"1858:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1848:2:89"},"nodeType":"YulFunctionCall","src":"1848:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1841:6:89"},"nodeType":"YulFunctionCall","src":"1841:50:89"},"nodeType":"YulIf","src":"1838:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1769:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1780:5:89","type":""}],"src":"1741:173:89"},{"body":{"nodeType":"YulBlock","src":"2006:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"2052:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2061:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2064:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2054:6:89"},"nodeType":"YulFunctionCall","src":"2054:12:89"},"nodeType":"YulExpressionStatement","src":"2054:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2027:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2023:3:89"},"nodeType":"YulFunctionCall","src":"2023:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2048:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2019:3:89"},"nodeType":"YulFunctionCall","src":"2019:32:89"},"nodeType":"YulIf","src":"2016:52:89"},{"nodeType":"YulAssignment","src":"2077:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2106:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2087:18:89"},"nodeType":"YulFunctionCall","src":"2087:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2077:6:89"}]},{"nodeType":"YulAssignment","src":"2125:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2152:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2163:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2148:3:89"},"nodeType":"YulFunctionCall","src":"2148:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2135:12:89"},"nodeType":"YulFunctionCall","src":"2135:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2125:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1964:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1975:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1987:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1995:6:89","type":""}],"src":"1919:254:89"},{"body":{"nodeType":"YulBlock","src":"2279:76:89","statements":[{"nodeType":"YulAssignment","src":"2289:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2301:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2312:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2297:3:89"},"nodeType":"YulFunctionCall","src":"2297:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2289:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2331:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"2342:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2324:6:89"},"nodeType":"YulFunctionCall","src":"2324:25:89"},"nodeType":"YulExpressionStatement","src":"2324:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2248:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2259:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2270:4:89","type":""}],"src":"2178:177:89"},{"body":{"nodeType":"YulBlock","src":"2464:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"2510:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2519:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2522:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:89"},"nodeType":"YulFunctionCall","src":"2512:12:89"},"nodeType":"YulExpressionStatement","src":"2512:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2485:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2494:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2481:3:89"},"nodeType":"YulFunctionCall","src":"2481:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2506:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2477:3:89"},"nodeType":"YulFunctionCall","src":"2477:32:89"},"nodeType":"YulIf","src":"2474:52:89"},{"nodeType":"YulAssignment","src":"2535:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2564:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2545:18:89"},"nodeType":"YulFunctionCall","src":"2545:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2535:6:89"}]},{"nodeType":"YulAssignment","src":"2583:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2616:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2627:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2612:3:89"},"nodeType":"YulFunctionCall","src":"2612:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2593:18:89"},"nodeType":"YulFunctionCall","src":"2593:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2583:6:89"}]},{"nodeType":"YulAssignment","src":"2640:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2667:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2678:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2663:3:89"},"nodeType":"YulFunctionCall","src":"2663:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2650:12:89"},"nodeType":"YulFunctionCall","src":"2650:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2640:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2414:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2425:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2437:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2445:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2453:6:89","type":""}],"src":"2360:328:89"},{"body":{"nodeType":"YulBlock","src":"2763:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"2809:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2818:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2821:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2811:6:89"},"nodeType":"YulFunctionCall","src":"2811:12:89"},"nodeType":"YulExpressionStatement","src":"2811:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2784:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2793:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2780:3:89"},"nodeType":"YulFunctionCall","src":"2780:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2805:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2776:3:89"},"nodeType":"YulFunctionCall","src":"2776:32:89"},"nodeType":"YulIf","src":"2773:52:89"},{"nodeType":"YulAssignment","src":"2834:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2863:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2844:18:89"},"nodeType":"YulFunctionCall","src":"2844:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2834:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2729:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2740:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2752:6:89","type":""}],"src":"2693:186:89"},{"body":{"nodeType":"YulBlock","src":"2968:263:89","statements":[{"body":{"nodeType":"YulBlock","src":"3014:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3023:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3026:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3016:6:89"},"nodeType":"YulFunctionCall","src":"3016:12:89"},"nodeType":"YulExpressionStatement","src":"3016:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2989:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2998:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2985:3:89"},"nodeType":"YulFunctionCall","src":"2985:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3010:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2981:3:89"},"nodeType":"YulFunctionCall","src":"2981:32:89"},"nodeType":"YulIf","src":"2978:52:89"},{"nodeType":"YulAssignment","src":"3039:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3068:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3049:18:89"},"nodeType":"YulFunctionCall","src":"3049:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3087:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:89"},"nodeType":"YulFunctionCall","src":"3113:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3100:12:89"},"nodeType":"YulFunctionCall","src":"3100:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3091:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3194:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3187:6:89"},"nodeType":"YulFunctionCall","src":"3187:12:89"},"nodeType":"YulExpressionStatement","src":"3187:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3154:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3168:6:89"},"nodeType":"YulFunctionCall","src":"3168:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3161:6:89"},"nodeType":"YulFunctionCall","src":"3161:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3151:2:89"},"nodeType":"YulFunctionCall","src":"3151:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3144:6:89"},"nodeType":"YulFunctionCall","src":"3144:40:89"},"nodeType":"YulIf","src":"3141:60:89"},{"nodeType":"YulAssignment","src":"3210:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"3220:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3210:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2926:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2937:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2949:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2957:6:89","type":""}],"src":"2884:347:89"},{"body":{"nodeType":"YulBlock","src":"3268:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3285:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3292:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3297:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3288:3:89"},"nodeType":"YulFunctionCall","src":"3288:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3278:6:89"},"nodeType":"YulFunctionCall","src":"3278:31:89"},"nodeType":"YulExpressionStatement","src":"3278:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3325:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3318:6:89"},"nodeType":"YulFunctionCall","src":"3318:15:89"},"nodeType":"YulExpressionStatement","src":"3318:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3349:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3352:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3342:6:89"},"nodeType":"YulFunctionCall","src":"3342:15:89"},"nodeType":"YulExpressionStatement","src":"3342:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3236:127:89"},{"body":{"nodeType":"YulBlock","src":"3442:557:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3452:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3462:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3456:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3507:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3509:16:89"},"nodeType":"YulFunctionCall","src":"3509:18:89"},"nodeType":"YulExpressionStatement","src":"3509:18:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3495:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3503:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3492:2:89"},"nodeType":"YulFunctionCall","src":"3492:14:89"},"nodeType":"YulIf","src":"3489:40:89"},{"nodeType":"YulVariableDeclaration","src":"3538:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3552:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3548:3:89"},"nodeType":"YulFunctionCall","src":"3548:7:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3542:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3564:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3584:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3578:5:89"},"nodeType":"YulFunctionCall","src":"3578:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3568:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3596:73:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3618:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3642:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3650:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3638:3:89"},"nodeType":"YulFunctionCall","src":"3638:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"3655:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3634:3:89"},"nodeType":"YulFunctionCall","src":"3634:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"3660:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3630:3:89"},"nodeType":"YulFunctionCall","src":"3630:33:89"},{"name":"_2","nodeType":"YulIdentifier","src":"3665:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3626:3:89"},"nodeType":"YulFunctionCall","src":"3626:42:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3614:3:89"},"nodeType":"YulFunctionCall","src":"3614:55:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3600:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3728:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3730:16:89"},"nodeType":"YulFunctionCall","src":"3730:18:89"},"nodeType":"YulExpressionStatement","src":"3730:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3687:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3699:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3684:2:89"},"nodeType":"YulFunctionCall","src":"3684:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3707:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3719:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3704:2:89"},"nodeType":"YulFunctionCall","src":"3704:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3681:2:89"},"nodeType":"YulFunctionCall","src":"3681:46:89"},"nodeType":"YulIf","src":"3678:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3766:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3770:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3759:6:89"},"nodeType":"YulFunctionCall","src":"3759:22:89"},"nodeType":"YulExpressionStatement","src":"3759:22:89"},{"nodeType":"YulAssignment","src":"3790:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3799:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3790:5:89"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3821:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"3829:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3814:6:89"},"nodeType":"YulFunctionCall","src":"3814:22:89"},"nodeType":"YulExpressionStatement","src":"3814:22:89"},{"body":{"nodeType":"YulBlock","src":"3874:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3883:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3886:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3876:6:89"},"nodeType":"YulFunctionCall","src":"3876:12:89"},"nodeType":"YulExpressionStatement","src":"3876:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3855:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3860:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3851:3:89"},"nodeType":"YulFunctionCall","src":"3851:16:89"},{"name":"end","nodeType":"YulIdentifier","src":"3869:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3848:2:89"},"nodeType":"YulFunctionCall","src":"3848:25:89"},"nodeType":"YulIf","src":"3845:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3916:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3924:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:89"},"nodeType":"YulFunctionCall","src":"3912:17:89"},{"name":"src","nodeType":"YulIdentifier","src":"3931:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3936:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3899:12:89"},"nodeType":"YulFunctionCall","src":"3899:44:89"},"nodeType":"YulExpressionStatement","src":"3899:44:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3967:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"3975:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3963:3:89"},"nodeType":"YulFunctionCall","src":"3963:19:89"},{"kind":"number","nodeType":"YulLiteral","src":"3984:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3959:3:89"},"nodeType":"YulFunctionCall","src":"3959:30:89"},{"kind":"number","nodeType":"YulLiteral","src":"3991:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3952:6:89"},"nodeType":"YulFunctionCall","src":"3952:41:89"},"nodeType":"YulExpressionStatement","src":"3952:41:89"}]},"name":"abi_decode_available_length_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3411:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"3416:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"3424:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3432:5:89","type":""}],"src":"3368:631:89"},{"body":{"nodeType":"YulBlock","src":"4134:536:89","statements":[{"body":{"nodeType":"YulBlock","src":"4181:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4190:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4193:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4183:6:89"},"nodeType":"YulFunctionCall","src":"4183:12:89"},"nodeType":"YulExpressionStatement","src":"4183:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4155:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4164:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4151:3:89"},"nodeType":"YulFunctionCall","src":"4151:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4176:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4147:3:89"},"nodeType":"YulFunctionCall","src":"4147:33:89"},"nodeType":"YulIf","src":"4144:53:89"},{"nodeType":"YulAssignment","src":"4206:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4235:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4216:18:89"},"nodeType":"YulFunctionCall","src":"4216:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4206:6:89"}]},{"nodeType":"YulAssignment","src":"4254:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4287:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4298:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4283:3:89"},"nodeType":"YulFunctionCall","src":"4283:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4264:18:89"},"nodeType":"YulFunctionCall","src":"4264:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4254:6:89"}]},{"nodeType":"YulAssignment","src":"4311:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4338:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4349:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4334:3:89"},"nodeType":"YulFunctionCall","src":"4334:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4321:12:89"},"nodeType":"YulFunctionCall","src":"4321:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4311:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4362:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:89"},"nodeType":"YulFunctionCall","src":"4389:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4376:12:89"},"nodeType":"YulFunctionCall","src":"4376:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4366:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4451:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4460:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4463:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4453:6:89"},"nodeType":"YulFunctionCall","src":"4453:12:89"},"nodeType":"YulExpressionStatement","src":"4453:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4423:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4431:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4420:2:89"},"nodeType":"YulFunctionCall","src":"4420:30:89"},"nodeType":"YulIf","src":"4417:50:89"},{"nodeType":"YulVariableDeclaration","src":"4476:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4490:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4501:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4486:3:89"},"nodeType":"YulFunctionCall","src":"4486:22:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4480:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4556:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4565:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4568:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4558:6:89"},"nodeType":"YulFunctionCall","src":"4558:12:89"},"nodeType":"YulExpressionStatement","src":"4558:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4535:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4539:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4531:3:89"},"nodeType":"YulFunctionCall","src":"4531:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4546:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4527:3:89"},"nodeType":"YulFunctionCall","src":"4527:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4520:6:89"},"nodeType":"YulFunctionCall","src":"4520:35:89"},"nodeType":"YulIf","src":"4517:55:89"},{"nodeType":"YulAssignment","src":"4581:83:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4629:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"4633:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4625:3:89"},"nodeType":"YulFunctionCall","src":"4625:11:89"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4651:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4638:12:89"},"nodeType":"YulFunctionCall","src":"4638:16:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4656:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"4591:33:89"},"nodeType":"YulFunctionCall","src":"4591:73:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4581:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4076:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4087:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4099:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4107:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4115:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4123:6:89","type":""}],"src":"4004:666:89"},{"body":{"nodeType":"YulBlock","src":"4772:427:89","statements":[{"body":{"nodeType":"YulBlock","src":"4818:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4827:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4830:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4820:6:89"},"nodeType":"YulFunctionCall","src":"4820:12:89"},"nodeType":"YulExpressionStatement","src":"4820:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4793:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4802:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4789:3:89"},"nodeType":"YulFunctionCall","src":"4789:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4814:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4785:3:89"},"nodeType":"YulFunctionCall","src":"4785:32:89"},"nodeType":"YulIf","src":"4782:52:89"},{"nodeType":"YulAssignment","src":"4843:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4872:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4853:18:89"},"nodeType":"YulFunctionCall","src":"4853:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4843:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4891:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4922:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4933:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4918:3:89"},"nodeType":"YulFunctionCall","src":"4918:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4905:12:89"},"nodeType":"YulFunctionCall","src":"4905:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4895:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4980:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4989:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4992:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4982:6:89"},"nodeType":"YulFunctionCall","src":"4982:12:89"},"nodeType":"YulExpressionStatement","src":"4982:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4952:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4960:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4949:2:89"},"nodeType":"YulFunctionCall","src":"4949:30:89"},"nodeType":"YulIf","src":"4946:50:89"},{"nodeType":"YulVariableDeclaration","src":"5005:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5019:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5030:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5015:3:89"},"nodeType":"YulFunctionCall","src":"5015:22:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5009:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5085:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5094:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5097:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5087:6:89"},"nodeType":"YulFunctionCall","src":"5087:12:89"},"nodeType":"YulExpressionStatement","src":"5087:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5064:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5068:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5060:3:89"},"nodeType":"YulFunctionCall","src":"5060:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5075:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5056:3:89"},"nodeType":"YulFunctionCall","src":"5056:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5049:6:89"},"nodeType":"YulFunctionCall","src":"5049:35:89"},"nodeType":"YulIf","src":"5046:55:89"},{"nodeType":"YulAssignment","src":"5110:83:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5158:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5162:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5154:3:89"},"nodeType":"YulFunctionCall","src":"5154:11:89"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5180:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5167:12:89"},"nodeType":"YulFunctionCall","src":"5167:16:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5185:7:89"}],"functionName":{"name":"abi_decode_available_length_bytes","nodeType":"YulIdentifier","src":"5120:33:89"},"nodeType":"YulFunctionCall","src":"5120:73:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5110:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4730:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4741:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4753:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4761:6:89","type":""}],"src":"4675:524:89"},{"body":{"nodeType":"YulBlock","src":"5291:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"5337:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5346:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5349:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5339:6:89"},"nodeType":"YulFunctionCall","src":"5339:12:89"},"nodeType":"YulExpressionStatement","src":"5339:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5312:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5321:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5308:3:89"},"nodeType":"YulFunctionCall","src":"5308:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5333:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5304:3:89"},"nodeType":"YulFunctionCall","src":"5304:32:89"},"nodeType":"YulIf","src":"5301:52:89"},{"nodeType":"YulAssignment","src":"5362:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5391:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5372:18:89"},"nodeType":"YulFunctionCall","src":"5372:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5362:6:89"}]},{"nodeType":"YulAssignment","src":"5410:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5443:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5454:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5439:3:89"},"nodeType":"YulFunctionCall","src":"5439:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5420:18:89"},"nodeType":"YulFunctionCall","src":"5420:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5410:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5249:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5260:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5272:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5280:6:89","type":""}],"src":"5204:260:89"},{"body":{"nodeType":"YulBlock","src":"5524:325:89","statements":[{"nodeType":"YulAssignment","src":"5534:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5548:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"5551:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5544:3:89"},"nodeType":"YulFunctionCall","src":"5544:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5534:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5565:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5595:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"5601:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5591:3:89"},"nodeType":"YulFunctionCall","src":"5591:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5569:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5642:31:89","statements":[{"nodeType":"YulAssignment","src":"5644:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5658:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5666:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5654:3:89"},"nodeType":"YulFunctionCall","src":"5654:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5644:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5622:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5615:6:89"},"nodeType":"YulFunctionCall","src":"5615:26:89"},"nodeType":"YulIf","src":"5612:61:89"},{"body":{"nodeType":"YulBlock","src":"5732:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5753:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5760:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5765:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5756:3:89"},"nodeType":"YulFunctionCall","src":"5756:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5746:6:89"},"nodeType":"YulFunctionCall","src":"5746:31:89"},"nodeType":"YulExpressionStatement","src":"5746:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5797:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5800:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5790:6:89"},"nodeType":"YulFunctionCall","src":"5790:15:89"},"nodeType":"YulExpressionStatement","src":"5790:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5825:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5828:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5818:6:89"},"nodeType":"YulFunctionCall","src":"5818:15:89"},"nodeType":"YulExpressionStatement","src":"5818:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5688:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5711:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5719:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5708:2:89"},"nodeType":"YulFunctionCall","src":"5708:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5685:2:89"},"nodeType":"YulFunctionCall","src":"5685:38:89"},"nodeType":"YulIf","src":"5682:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5504:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5513:6:89","type":""}],"src":"5469:380:89"},{"body":{"nodeType":"YulBlock","src":"6028:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6045:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6056:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6038:6:89"},"nodeType":"YulFunctionCall","src":"6038:21:89"},"nodeType":"YulExpressionStatement","src":"6038:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6079:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6090:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6075:3:89"},"nodeType":"YulFunctionCall","src":"6075:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6095:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6068:6:89"},"nodeType":"YulFunctionCall","src":"6068:30:89"},"nodeType":"YulExpressionStatement","src":"6068:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6118:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6129:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6114:3:89"},"nodeType":"YulFunctionCall","src":"6114:18:89"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"6134:34:89","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6107:6:89"},"nodeType":"YulFunctionCall","src":"6107:62:89"},"nodeType":"YulExpressionStatement","src":"6107:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6189:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6200:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6185:3:89"},"nodeType":"YulFunctionCall","src":"6185:18:89"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"6205:3:89","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6178:6:89"},"nodeType":"YulFunctionCall","src":"6178:31:89"},"nodeType":"YulExpressionStatement","src":"6178:31:89"},{"nodeType":"YulAssignment","src":"6218:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6230:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6241:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6226:3:89"},"nodeType":"YulFunctionCall","src":"6226:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6218:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6005:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6019:4:89","type":""}],"src":"5854:397:89"},{"body":{"nodeType":"YulBlock","src":"6430:251:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6447:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6458:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6440:6:89"},"nodeType":"YulFunctionCall","src":"6440:21:89"},"nodeType":"YulExpressionStatement","src":"6440:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6481:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6492:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6477:3:89"},"nodeType":"YulFunctionCall","src":"6477:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6497:2:89","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6470:6:89"},"nodeType":"YulFunctionCall","src":"6470:30:89"},"nodeType":"YulExpressionStatement","src":"6470:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6520:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6531:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6516:3:89"},"nodeType":"YulFunctionCall","src":"6516:18:89"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"6536:34:89","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6509:6:89"},"nodeType":"YulFunctionCall","src":"6509:62:89"},"nodeType":"YulExpressionStatement","src":"6509:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6591:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6602:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6587:3:89"},"nodeType":"YulFunctionCall","src":"6587:18:89"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"6607:31:89","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6580:6:89"},"nodeType":"YulFunctionCall","src":"6580:59:89"},"nodeType":"YulExpressionStatement","src":"6580:59:89"},{"nodeType":"YulAssignment","src":"6648:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6660:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6671:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6656:3:89"},"nodeType":"YulFunctionCall","src":"6656:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6648:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6407:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6421:4:89","type":""}],"src":"6256:425:89"},{"body":{"nodeType":"YulBlock","src":"6860:235:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6877:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6888:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6870:6:89"},"nodeType":"YulFunctionCall","src":"6870:21:89"},"nodeType":"YulExpressionStatement","src":"6870:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6911:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6922:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6907:3:89"},"nodeType":"YulFunctionCall","src":"6907:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6927:2:89","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6900:6:89"},"nodeType":"YulFunctionCall","src":"6900:30:89"},"nodeType":"YulExpressionStatement","src":"6900:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6950:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6961:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6946:3:89"},"nodeType":"YulFunctionCall","src":"6946:18:89"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"6966:34:89","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6939:6:89"},"nodeType":"YulFunctionCall","src":"6939:62:89"},"nodeType":"YulExpressionStatement","src":"6939:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7021:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7032:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7017:3:89"},"nodeType":"YulFunctionCall","src":"7017:18:89"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"7037:15:89","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7010:6:89"},"nodeType":"YulFunctionCall","src":"7010:43:89"},"nodeType":"YulExpressionStatement","src":"7010:43:89"},{"nodeType":"YulAssignment","src":"7062:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7074:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7085:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7070:3:89"},"nodeType":"YulFunctionCall","src":"7070:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7062:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6837:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6851:4:89","type":""}],"src":"6686:409:89"},{"body":{"nodeType":"YulBlock","src":"7274:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7291:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7302:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7284:6:89"},"nodeType":"YulFunctionCall","src":"7284:21:89"},"nodeType":"YulExpressionStatement","src":"7284:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7325:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7336:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7321:3:89"},"nodeType":"YulFunctionCall","src":"7321:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7341:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7314:6:89"},"nodeType":"YulFunctionCall","src":"7314:30:89"},"nodeType":"YulExpressionStatement","src":"7314:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7364:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7375:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7360:3:89"},"nodeType":"YulFunctionCall","src":"7360:18:89"},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f75","kind":"string","nodeType":"YulLiteral","src":"7380:34:89","type":"","value":"ERC721Enumerable: owner index ou"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7353:6:89"},"nodeType":"YulFunctionCall","src":"7353:62:89"},"nodeType":"YulExpressionStatement","src":"7353:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7435:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7446:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7431:3:89"},"nodeType":"YulFunctionCall","src":"7431:18:89"},{"hexValue":"74206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"7451:13:89","type":"","value":"t of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7424:6:89"},"nodeType":"YulFunctionCall","src":"7424:41:89"},"nodeType":"YulExpressionStatement","src":"7424:41:89"},{"nodeType":"YulAssignment","src":"7474:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7486:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7497:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7482:3:89"},"nodeType":"YulFunctionCall","src":"7482:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7474:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7251:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7265:4:89","type":""}],"src":"7100:407:89"},{"body":{"nodeType":"YulBlock","src":"7686:234:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7703:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7714:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7696:6:89"},"nodeType":"YulFunctionCall","src":"7696:21:89"},"nodeType":"YulExpressionStatement","src":"7696:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7737:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7748:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7733:3:89"},"nodeType":"YulFunctionCall","src":"7733:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7753:2:89","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7726:6:89"},"nodeType":"YulFunctionCall","src":"7726:30:89"},"nodeType":"YulExpressionStatement","src":"7726:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7776:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7787:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7772:3:89"},"nodeType":"YulFunctionCall","src":"7772:18:89"},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f","kind":"string","nodeType":"YulLiteral","src":"7792:34:89","type":"","value":"ERC721Enumerable: global index o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7765:6:89"},"nodeType":"YulFunctionCall","src":"7765:62:89"},"nodeType":"YulExpressionStatement","src":"7765:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7847:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7858:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7843:3:89"},"nodeType":"YulFunctionCall","src":"7843:18:89"},{"hexValue":"7574206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"7863:14:89","type":"","value":"ut of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7836:6:89"},"nodeType":"YulFunctionCall","src":"7836:42:89"},"nodeType":"YulExpressionStatement","src":"7836:42:89"},{"nodeType":"YulAssignment","src":"7887:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7899:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7910:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7895:3:89"},"nodeType":"YulFunctionCall","src":"7895:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7887:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7663:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7677:4:89","type":""}],"src":"7512:408:89"},{"body":{"nodeType":"YulBlock","src":"7957:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7974:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7981:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7986:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7977:3:89"},"nodeType":"YulFunctionCall","src":"7977:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7967:6:89"},"nodeType":"YulFunctionCall","src":"7967:31:89"},"nodeType":"YulExpressionStatement","src":"7967:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8014:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8017:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8007:6:89"},"nodeType":"YulFunctionCall","src":"8007:15:89"},"nodeType":"YulExpressionStatement","src":"8007:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8038:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8041:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8031:6:89"},"nodeType":"YulFunctionCall","src":"8031:15:89"},"nodeType":"YulExpressionStatement","src":"8031:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7925:127:89"},{"body":{"nodeType":"YulBlock","src":"8231:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8248:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8259:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8241:6:89"},"nodeType":"YulFunctionCall","src":"8241:21:89"},"nodeType":"YulExpressionStatement","src":"8241:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8282:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8293:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8278:3:89"},"nodeType":"YulFunctionCall","src":"8278:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8298:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8271:6:89"},"nodeType":"YulFunctionCall","src":"8271:30:89"},"nodeType":"YulExpressionStatement","src":"8271:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8321:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8332:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8317:3:89"},"nodeType":"YulFunctionCall","src":"8317:18:89"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"8337:26:89","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8310:6:89"},"nodeType":"YulFunctionCall","src":"8310:54:89"},"nodeType":"YulExpressionStatement","src":"8310:54:89"},{"nodeType":"YulAssignment","src":"8373:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8385:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8396:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8381:3:89"},"nodeType":"YulFunctionCall","src":"8381:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8373:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8208:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8222:4:89","type":""}],"src":"8057:348:89"},{"body":{"nodeType":"YulBlock","src":"8584:231:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8601:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8612:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8594:6:89"},"nodeType":"YulFunctionCall","src":"8594:21:89"},"nodeType":"YulExpressionStatement","src":"8594:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8635:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8646:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8631:3:89"},"nodeType":"YulFunctionCall","src":"8631:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8651:2:89","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8624:6:89"},"nodeType":"YulFunctionCall","src":"8624:30:89"},"nodeType":"YulExpressionStatement","src":"8624:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8674:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8685:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8670:3:89"},"nodeType":"YulFunctionCall","src":"8670:18:89"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"8690:34:89","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8663:6:89"},"nodeType":"YulFunctionCall","src":"8663:62:89"},"nodeType":"YulExpressionStatement","src":"8663:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8745:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8756:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8741:3:89"},"nodeType":"YulFunctionCall","src":"8741:18:89"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"8761:11:89","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8734:6:89"},"nodeType":"YulFunctionCall","src":"8734:39:89"},"nodeType":"YulExpressionStatement","src":"8734:39:89"},{"nodeType":"YulAssignment","src":"8782:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8794:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8805:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8790:3:89"},"nodeType":"YulFunctionCall","src":"8790:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8782:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8561:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8575:4:89","type":""}],"src":"8410:405:89"},{"body":{"nodeType":"YulBlock","src":"8852:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8869:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8876:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8881:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8872:3:89"},"nodeType":"YulFunctionCall","src":"8872:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8862:6:89"},"nodeType":"YulFunctionCall","src":"8862:31:89"},"nodeType":"YulExpressionStatement","src":"8862:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8909:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8912:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8902:6:89"},"nodeType":"YulFunctionCall","src":"8902:15:89"},"nodeType":"YulExpressionStatement","src":"8902:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8933:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8936:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8926:6:89"},"nodeType":"YulFunctionCall","src":"8926:15:89"},"nodeType":"YulExpressionStatement","src":"8926:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"8820:127:89"},{"body":{"nodeType":"YulBlock","src":"8999:88:89","statements":[{"body":{"nodeType":"YulBlock","src":"9030:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9032:16:89"},"nodeType":"YulFunctionCall","src":"9032:18:89"},"nodeType":"YulExpressionStatement","src":"9032:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9015:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9026:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9022:3:89"},"nodeType":"YulFunctionCall","src":"9022:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9012:2:89"},"nodeType":"YulFunctionCall","src":"9012:17:89"},"nodeType":"YulIf","src":"9009:43:89"},{"nodeType":"YulAssignment","src":"9061:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9072:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"9079:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9068:3:89"},"nodeType":"YulFunctionCall","src":"9068:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9061:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8981:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"8991:3:89","type":""}],"src":"8952:135:89"},{"body":{"nodeType":"YulBlock","src":"9266:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9283:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9294:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9276:6:89"},"nodeType":"YulFunctionCall","src":"9276:21:89"},"nodeType":"YulExpressionStatement","src":"9276:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9317:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9328:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9313:3:89"},"nodeType":"YulFunctionCall","src":"9313:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9333:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9306:6:89"},"nodeType":"YulFunctionCall","src":"9306:30:89"},"nodeType":"YulExpressionStatement","src":"9306:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9356:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9367:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9352:3:89"},"nodeType":"YulFunctionCall","src":"9352:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"9372:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9345:6:89"},"nodeType":"YulFunctionCall","src":"9345:62:89"},"nodeType":"YulExpressionStatement","src":"9345:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9427:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9438:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9423:3:89"},"nodeType":"YulFunctionCall","src":"9423:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"9443:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9416:6:89"},"nodeType":"YulFunctionCall","src":"9416:36:89"},"nodeType":"YulExpressionStatement","src":"9416:36:89"},{"nodeType":"YulAssignment","src":"9461:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9473:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9484:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9469:3:89"},"nodeType":"YulFunctionCall","src":"9469:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9461:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9243:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9257:4:89","type":""}],"src":"9092:402:89"},{"body":{"nodeType":"YulBlock","src":"9673:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9690:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9701:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9683:6:89"},"nodeType":"YulFunctionCall","src":"9683:21:89"},"nodeType":"YulExpressionStatement","src":"9683:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9724:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9735:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9720:3:89"},"nodeType":"YulFunctionCall","src":"9720:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9740:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9713:6:89"},"nodeType":"YulFunctionCall","src":"9713:30:89"},"nodeType":"YulExpressionStatement","src":"9713:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9763:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9774:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9759:3:89"},"nodeType":"YulFunctionCall","src":"9759:18:89"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"9779:34:89","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9752:6:89"},"nodeType":"YulFunctionCall","src":"9752:62:89"},"nodeType":"YulExpressionStatement","src":"9752:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9834:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9845:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9830:3:89"},"nodeType":"YulFunctionCall","src":"9830:18:89"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"9850:7:89","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9823:6:89"},"nodeType":"YulFunctionCall","src":"9823:35:89"},"nodeType":"YulExpressionStatement","src":"9823:35:89"},{"nodeType":"YulAssignment","src":"9867:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9879:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9890:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9875:3:89"},"nodeType":"YulFunctionCall","src":"9875:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9867:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9650:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9664:4:89","type":""}],"src":"9499:401:89"},{"body":{"nodeType":"YulBlock","src":"10079:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10096:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10107:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10089:6:89"},"nodeType":"YulFunctionCall","src":"10089:21:89"},"nodeType":"YulExpressionStatement","src":"10089:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10130:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10141:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10126:3:89"},"nodeType":"YulFunctionCall","src":"10126:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10146:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10119:6:89"},"nodeType":"YulFunctionCall","src":"10119:30:89"},"nodeType":"YulExpressionStatement","src":"10119:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10169:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10180:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10165:3:89"},"nodeType":"YulFunctionCall","src":"10165:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"10185:34:89","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10158:6:89"},"nodeType":"YulFunctionCall","src":"10158:62:89"},"nodeType":"YulExpressionStatement","src":"10158:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10240:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10251:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10236:3:89"},"nodeType":"YulFunctionCall","src":"10236:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"10256:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10229:6:89"},"nodeType":"YulFunctionCall","src":"10229:34:89"},"nodeType":"YulExpressionStatement","src":"10229:34:89"},{"nodeType":"YulAssignment","src":"10272:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10284:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10295:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10280:3:89"},"nodeType":"YulFunctionCall","src":"10280:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10272:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10056:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10070:4:89","type":""}],"src":"9905:400:89"},{"body":{"nodeType":"YulBlock","src":"10484:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10501:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10512:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10494:6:89"},"nodeType":"YulFunctionCall","src":"10494:21:89"},"nodeType":"YulExpressionStatement","src":"10494:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10535:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10546:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10531:3:89"},"nodeType":"YulFunctionCall","src":"10531:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10551:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10524:6:89"},"nodeType":"YulFunctionCall","src":"10524:30:89"},"nodeType":"YulExpressionStatement","src":"10524:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10574:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10585:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10570:3:89"},"nodeType":"YulFunctionCall","src":"10570:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"10590:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10563:6:89"},"nodeType":"YulFunctionCall","src":"10563:62:89"},"nodeType":"YulExpressionStatement","src":"10563:62:89"},{"nodeType":"YulAssignment","src":"10634:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10646:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10657:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10642:3:89"},"nodeType":"YulFunctionCall","src":"10642:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10634:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10461:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10475:4:89","type":""}],"src":"10310:356:89"},{"body":{"nodeType":"YulBlock","src":"10845:175:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10862:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10873:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10855:6:89"},"nodeType":"YulFunctionCall","src":"10855:21:89"},"nodeType":"YulExpressionStatement","src":"10855:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10896:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10907:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10892:3:89"},"nodeType":"YulFunctionCall","src":"10892:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10912:2:89","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10885:6:89"},"nodeType":"YulFunctionCall","src":"10885:30:89"},"nodeType":"YulExpressionStatement","src":"10885:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10935:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10946:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10931:3:89"},"nodeType":"YulFunctionCall","src":"10931:18:89"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"10951:27:89","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10924:6:89"},"nodeType":"YulFunctionCall","src":"10924:55:89"},"nodeType":"YulExpressionStatement","src":"10924:55:89"},{"nodeType":"YulAssignment","src":"10988:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11000:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11011:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10996:3:89"},"nodeType":"YulFunctionCall","src":"10996:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10988:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10822:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10836:4:89","type":""}],"src":"10671:349:89"},{"body":{"nodeType":"YulBlock","src":"11199:240:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11216:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11227:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11209:6:89"},"nodeType":"YulFunctionCall","src":"11209:21:89"},"nodeType":"YulExpressionStatement","src":"11209:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11250:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11261:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11246:3:89"},"nodeType":"YulFunctionCall","src":"11246:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11266:2:89","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11239:6:89"},"nodeType":"YulFunctionCall","src":"11239:30:89"},"nodeType":"YulExpressionStatement","src":"11239:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11289:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11300:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11285:3:89"},"nodeType":"YulFunctionCall","src":"11285:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"11305:34:89","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11278:6:89"},"nodeType":"YulFunctionCall","src":"11278:62:89"},"nodeType":"YulExpressionStatement","src":"11278:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11360:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11371:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11356:3:89"},"nodeType":"YulFunctionCall","src":"11356:18:89"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"11376:20:89","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11349:6:89"},"nodeType":"YulFunctionCall","src":"11349:48:89"},"nodeType":"YulExpressionStatement","src":"11349:48:89"},{"nodeType":"YulAssignment","src":"11406:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11418:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11429:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11414:3:89"},"nodeType":"YulFunctionCall","src":"11414:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11406:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11176:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11190:4:89","type":""}],"src":"11025:414:89"},{"body":{"nodeType":"YulBlock","src":"11631:309:89","statements":[{"nodeType":"YulVariableDeclaration","src":"11641:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11661:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11655:5:89"},"nodeType":"YulFunctionCall","src":"11655:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11645:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11716:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"11724:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11712:3:89"},"nodeType":"YulFunctionCall","src":"11712:17:89"},{"name":"pos","nodeType":"YulIdentifier","src":"11731:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"11736:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11677:34:89"},"nodeType":"YulFunctionCall","src":"11677:66:89"},"nodeType":"YulExpressionStatement","src":"11677:66:89"},{"nodeType":"YulVariableDeclaration","src":"11752:29:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11769:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"11774:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11765:3:89"},"nodeType":"YulFunctionCall","src":"11765:16:89"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"11756:5:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11790:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11812:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11806:5:89"},"nodeType":"YulFunctionCall","src":"11806:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"11794:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11867:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"11875:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11863:3:89"},"nodeType":"YulFunctionCall","src":"11863:17:89"},{"name":"end_1","nodeType":"YulIdentifier","src":"11882:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"11889:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11828:34:89"},"nodeType":"YulFunctionCall","src":"11828:70:89"},"nodeType":"YulExpressionStatement","src":"11828:70:89"},{"nodeType":"YulAssignment","src":"11907:27:89","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"11918:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"11925:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11914:3:89"},"nodeType":"YulFunctionCall","src":"11914:20:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11907:3:89"}]}]},"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":"11599:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11604:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11612:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11623:3:89","type":""}],"src":"11444:496:89"},{"body":{"nodeType":"YulBlock","src":"12119:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12136:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12147:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12129:6:89"},"nodeType":"YulFunctionCall","src":"12129:21:89"},"nodeType":"YulExpressionStatement","src":"12129:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12170:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12181:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12166:3:89"},"nodeType":"YulFunctionCall","src":"12166:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12186:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12159:6:89"},"nodeType":"YulFunctionCall","src":"12159:30:89"},"nodeType":"YulExpressionStatement","src":"12159:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12209:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12220:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12205:3:89"},"nodeType":"YulFunctionCall","src":"12205:18:89"},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e","kind":"string","nodeType":"YulLiteral","src":"12225:34:89","type":"","value":"ERC721URIStorage: URI set of non"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12198:6:89"},"nodeType":"YulFunctionCall","src":"12198:62:89"},"nodeType":"YulExpressionStatement","src":"12198:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12280:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12291:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12276:3:89"},"nodeType":"YulFunctionCall","src":"12276:18:89"},{"hexValue":"6578697374656e7420746f6b656e","kind":"string","nodeType":"YulLiteral","src":"12296:16:89","type":"","value":"existent token"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12269:6:89"},"nodeType":"YulFunctionCall","src":"12269:44:89"},"nodeType":"YulExpressionStatement","src":"12269:44:89"},{"nodeType":"YulAssignment","src":"12322:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12334:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12345:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12330:3:89"},"nodeType":"YulFunctionCall","src":"12330:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12322:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12096:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12110:4:89","type":""}],"src":"11945:410:89"},{"body":{"nodeType":"YulBlock","src":"12416:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12433:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"12436:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12426:6:89"},"nodeType":"YulFunctionCall","src":"12426:14:89"},"nodeType":"YulExpressionStatement","src":"12426:14:89"},{"nodeType":"YulAssignment","src":"12449:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12467:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12470:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12457:9:89"},"nodeType":"YulFunctionCall","src":"12457:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"12449:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"12399:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"12407:4:89","type":""}],"src":"12360:121:89"},{"body":{"nodeType":"YulBlock","src":"12567:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"12600:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"12614:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"12624:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12618:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12645:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"12649:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12638:6:89"},"nodeType":"YulFunctionCall","src":"12638:17:89"},"nodeType":"YulExpressionStatement","src":"12638:17:89"},{"nodeType":"YulVariableDeclaration","src":"12668:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12690:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"12694:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12680:9:89"},"nodeType":"YulFunctionCall","src":"12680:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"12672:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12712:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12735:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12745:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"12752:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"12764:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12748:3:89"},"nodeType":"YulFunctionCall","src":"12748:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12741:3:89"},"nodeType":"YulFunctionCall","src":"12741:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12731:3:89"},"nodeType":"YulFunctionCall","src":"12731:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"12716:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12806:23:89","statements":[{"nodeType":"YulAssignment","src":"12808:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"12823:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"12808:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"12788:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"12800:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12785:2:89"},"nodeType":"YulFunctionCall","src":"12785:20:89"},"nodeType":"YulIf","src":"12782:47:89"},{"nodeType":"YulVariableDeclaration","src":"12842:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12856:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12866:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"12873:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"12878:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12869:3:89"},"nodeType":"YulFunctionCall","src":"12869:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12862:3:89"},"nodeType":"YulFunctionCall","src":"12862:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12852:3:89"},"nodeType":"YulFunctionCall","src":"12852:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"12846:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12896:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"12909:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"12900:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12994:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13003:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13010:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"12996:6:89"},"nodeType":"YulFunctionCall","src":"12996:17:89"},"nodeType":"YulExpressionStatement","src":"12996:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"12944:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"12951:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12941:2:89"},"nodeType":"YulFunctionCall","src":"12941:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12955:26:89","statements":[{"nodeType":"YulAssignment","src":"12957:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"12970:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"12977:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12966:3:89"},"nodeType":"YulFunctionCall","src":"12966:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"12957:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"12937:3:89","statements":[]},"src":"12933:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"12583:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"12588:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12580:2:89"},"nodeType":"YulFunctionCall","src":"12580:11:89"},"nodeType":"YulIf","src":"12577:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"12539:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"12546:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"12551:10:89","type":""}],"src":"12486:545:89"},{"body":{"nodeType":"YulBlock","src":"13121:81:89","statements":[{"nodeType":"YulAssignment","src":"13131:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13146:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13164:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"13167:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13160:3:89"},"nodeType":"YulFunctionCall","src":"13160:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13177:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13173:3:89"},"nodeType":"YulFunctionCall","src":"13173:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13156:3:89"},"nodeType":"YulFunctionCall","src":"13156:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13152:3:89"},"nodeType":"YulFunctionCall","src":"13152:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13142:3:89"},"nodeType":"YulFunctionCall","src":"13142:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13188:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"13191:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13184:3:89"},"nodeType":"YulFunctionCall","src":"13184:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"13139:2:89"},"nodeType":"YulFunctionCall","src":"13139:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"13131:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"13098:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"13104:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"13112:4:89","type":""}],"src":"13036:166:89"},{"body":{"nodeType":"YulBlock","src":"13303:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13313:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13333:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13327:5:89"},"nodeType":"YulFunctionCall","src":"13327:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"13317:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13380:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13382:16:89"},"nodeType":"YulFunctionCall","src":"13382:18:89"},"nodeType":"YulExpressionStatement","src":"13382:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13352:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13360:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13349:2:89"},"nodeType":"YulFunctionCall","src":"13349:30:89"},"nodeType":"YulIf","src":"13346:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13455:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13493:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"13487:5:89"},"nodeType":"YulFunctionCall","src":"13487:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"13461:25:89"},"nodeType":"YulFunctionCall","src":"13461:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"13501:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"13411:43:89"},"nodeType":"YulFunctionCall","src":"13411:97:89"},"nodeType":"YulExpressionStatement","src":"13411:97:89"},{"nodeType":"YulVariableDeclaration","src":"13517:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13534:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"13521:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13544:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13563:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"13548:11:89","type":""}]},{"nodeType":"YulAssignment","src":"13576:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13589:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13576:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"13646:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13660:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13679:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13691:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13687:3:89"},"nodeType":"YulFunctionCall","src":"13687:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13675:3:89"},"nodeType":"YulFunctionCall","src":"13675:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"13664:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13708:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13752:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"13722:29:89"},"nodeType":"YulFunctionCall","src":"13722:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"13712:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13770:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13779:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13774:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13857:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13882:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13900:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"13905:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13896:3:89"},"nodeType":"YulFunctionCall","src":"13896:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13890:5:89"},"nodeType":"YulFunctionCall","src":"13890:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13875:6:89"},"nodeType":"YulFunctionCall","src":"13875:42:89"},"nodeType":"YulExpressionStatement","src":"13875:42:89"},{"nodeType":"YulAssignment","src":"13934:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13948:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13956:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13944:3:89"},"nodeType":"YulFunctionCall","src":"13944:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13934:6:89"}]},{"nodeType":"YulAssignment","src":"13975:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13992:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14003:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13988:3:89"},"nodeType":"YulFunctionCall","src":"13988:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13975:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13804:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"13807:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13801:2:89"},"nodeType":"YulFunctionCall","src":"13801:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13816:28:89","statements":[{"nodeType":"YulAssignment","src":"13818:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13827:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13830:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13823:3:89"},"nodeType":"YulFunctionCall","src":"13823:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13818:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"13797:3:89","statements":[]},"src":"13793:236:89"},{"body":{"nodeType":"YulBlock","src":"14077:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14095:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14122:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14127:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:89"},"nodeType":"YulFunctionCall","src":"14118:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14112:5:89"},"nodeType":"YulFunctionCall","src":"14112:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"14099:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14162:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"14174:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14201:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"14204:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14197:3:89"},"nodeType":"YulFunctionCall","src":"14197:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"14213:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14193:3:89"},"nodeType":"YulFunctionCall","src":"14193:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14223:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14219:3:89"},"nodeType":"YulFunctionCall","src":"14219:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14189:3:89"},"nodeType":"YulFunctionCall","src":"14189:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14185:3:89"},"nodeType":"YulFunctionCall","src":"14185:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14170:3:89"},"nodeType":"YulFunctionCall","src":"14170:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14155:6:89"},"nodeType":"YulFunctionCall","src":"14155:74:89"},"nodeType":"YulExpressionStatement","src":"14155:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"14048:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"14057:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14045:2:89"},"nodeType":"YulFunctionCall","src":"14045:19:89"},"nodeType":"YulIf","src":"14042:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14263:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14277:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"14280:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14273:3:89"},"nodeType":"YulFunctionCall","src":"14273:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"14289:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14269:3:89"},"nodeType":"YulFunctionCall","src":"14269:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14256:6:89"},"nodeType":"YulFunctionCall","src":"14256:36:89"},"nodeType":"YulExpressionStatement","src":"14256:36:89"}]},"nodeType":"YulCase","src":"13639:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13644:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"14319:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14333:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14346:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14337:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14382:67:89","statements":[{"nodeType":"YulAssignment","src":"14400:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14419:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14424:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14415:3:89"},"nodeType":"YulFunctionCall","src":"14415:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14409:5:89"},"nodeType":"YulFunctionCall","src":"14409:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14400:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"14363:6:89"},"nodeType":"YulIf","src":"14360:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14469:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14528:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"14535:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"14475:52:89"},"nodeType":"YulFunctionCall","src":"14475:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14462:6:89"},"nodeType":"YulFunctionCall","src":"14462:81:89"},"nodeType":"YulExpressionStatement","src":"14462:81:89"}]},"nodeType":"YulCase","src":"14311:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13619:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13627:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13616:2:89"},"nodeType":"YulFunctionCall","src":"13616:14:89"},"nodeType":"YulSwitch","src":"13609:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"13288:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"13294:3:89","type":""}],"src":"13207:1352:89"},{"body":{"nodeType":"YulBlock","src":"14738:250:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14755:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14766:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14748:6:89"},"nodeType":"YulFunctionCall","src":"14748:21:89"},"nodeType":"YulExpressionStatement","src":"14748:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14789:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14800:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14785:3:89"},"nodeType":"YulFunctionCall","src":"14785:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"14805:2:89","type":"","value":"60"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14778:6:89"},"nodeType":"YulFunctionCall","src":"14778:30:89"},"nodeType":"YulExpressionStatement","src":"14778:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14828:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14839:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14824:3:89"},"nodeType":"YulFunctionCall","src":"14824:18:89"},{"hexValue":"43657274696669636174654e46543a205468697320746f6b656e2063616e6e6f","kind":"string","nodeType":"YulLiteral","src":"14844:34:89","type":"","value":"CertificateNFT: This token canno"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14817:6:89"},"nodeType":"YulFunctionCall","src":"14817:62:89"},"nodeType":"YulExpressionStatement","src":"14817:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14899:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14910:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14895:3:89"},"nodeType":"YulFunctionCall","src":"14895:18:89"},{"hexValue":"74206265207472616e73666572726564206f6e6365206d696e746564","kind":"string","nodeType":"YulLiteral","src":"14915:30:89","type":"","value":"t be transferred once minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14888:6:89"},"nodeType":"YulFunctionCall","src":"14888:58:89"},"nodeType":"YulExpressionStatement","src":"14888:58:89"},{"nodeType":"YulAssignment","src":"14955:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14967:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14978:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14963:3:89"},"nodeType":"YulFunctionCall","src":"14963:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14955:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9415f806032e8ce62953c2a5077ab63b71a12b2d4f8611a557c2c72502d2e834__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14715:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14729:4:89","type":""}],"src":"14564:424:89"},{"body":{"nodeType":"YulBlock","src":"15196:286:89","statements":[{"nodeType":"YulVariableDeclaration","src":"15206:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15224:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15229:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15220:3:89"},"nodeType":"YulFunctionCall","src":"15220:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"15233:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15216:3:89"},"nodeType":"YulFunctionCall","src":"15216:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15210:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15251:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15266:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15274:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15262:3:89"},"nodeType":"YulFunctionCall","src":"15262:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15244:6:89"},"nodeType":"YulFunctionCall","src":"15244:34:89"},"nodeType":"YulExpressionStatement","src":"15244:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15298:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15309:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15294:3:89"},"nodeType":"YulFunctionCall","src":"15294:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15318:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"15326:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15314:3:89"},"nodeType":"YulFunctionCall","src":"15314:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15287:6:89"},"nodeType":"YulFunctionCall","src":"15287:43:89"},"nodeType":"YulExpressionStatement","src":"15287:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15350:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15361:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15346:3:89"},"nodeType":"YulFunctionCall","src":"15346:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"15366:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15339:6:89"},"nodeType":"YulFunctionCall","src":"15339:34:89"},"nodeType":"YulExpressionStatement","src":"15339:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15393:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15404:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15389:3:89"},"nodeType":"YulFunctionCall","src":"15389:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15409:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15382:6:89"},"nodeType":"YulFunctionCall","src":"15382:31:89"},"nodeType":"YulExpressionStatement","src":"15382:31:89"},{"nodeType":"YulAssignment","src":"15422:54:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15448:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15460:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15471:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15456:3:89"},"nodeType":"YulFunctionCall","src":"15456:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"15430:17:89"},"nodeType":"YulFunctionCall","src":"15430:46:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15422:4:89"}]}]},"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":"15141:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15152:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15160:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15168:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15176:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15187:4:89","type":""}],"src":"14993:489:89"},{"body":{"nodeType":"YulBlock","src":"15567:169:89","statements":[{"body":{"nodeType":"YulBlock","src":"15613:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15622:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15625:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15615:6:89"},"nodeType":"YulFunctionCall","src":"15615:12:89"},"nodeType":"YulExpressionStatement","src":"15615:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"15588:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"15597:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15584:3:89"},"nodeType":"YulFunctionCall","src":"15584:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"15609:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"15580:3:89"},"nodeType":"YulFunctionCall","src":"15580:32:89"},"nodeType":"YulIf","src":"15577:52:89"},{"nodeType":"YulVariableDeclaration","src":"15638:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15657:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15651:5:89"},"nodeType":"YulFunctionCall","src":"15651:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"15642:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15700:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"15676:23:89"},"nodeType":"YulFunctionCall","src":"15676:30:89"},"nodeType":"YulExpressionStatement","src":"15676:30:89"},{"nodeType":"YulAssignment","src":"15715:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"15725:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"15715:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15533:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"15544:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"15556:6:89","type":""}],"src":"15487:249:89"},{"body":{"nodeType":"YulBlock","src":"15915:243:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15932:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15943:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15925:6:89"},"nodeType":"YulFunctionCall","src":"15925:21:89"},"nodeType":"YulExpressionStatement","src":"15925:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15966:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15977:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15962:3:89"},"nodeType":"YulFunctionCall","src":"15962:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15982:2:89","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15955:6:89"},"nodeType":"YulFunctionCall","src":"15955:30:89"},"nodeType":"YulExpressionStatement","src":"15955:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16005:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16016:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16001:3:89"},"nodeType":"YulFunctionCall","src":"16001:18:89"},{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472","kind":"string","nodeType":"YulLiteral","src":"16021:34:89","type":"","value":"ERC721Enumerable: consecutive tr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15994:6:89"},"nodeType":"YulFunctionCall","src":"15994:62:89"},"nodeType":"YulExpressionStatement","src":"15994:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16076:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16087:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16072:3:89"},"nodeType":"YulFunctionCall","src":"16072:18:89"},{"hexValue":"616e7366657273206e6f7420737570706f72746564","kind":"string","nodeType":"YulLiteral","src":"16092:23:89","type":"","value":"ansfers not supported"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16065:6:89"},"nodeType":"YulFunctionCall","src":"16065:51:89"},"nodeType":"YulExpressionStatement","src":"16065:51:89"},{"nodeType":"YulAssignment","src":"16125:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16137:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16148:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16133:3:89"},"nodeType":"YulFunctionCall","src":"16133:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16125:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15892:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15906:4:89","type":""}],"src":"15741:417:89"},{"body":{"nodeType":"YulBlock","src":"16195:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16212:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16219:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"16224:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16215:3:89"},"nodeType":"YulFunctionCall","src":"16215:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16205:6:89"},"nodeType":"YulFunctionCall","src":"16205:31:89"},"nodeType":"YulExpressionStatement","src":"16205:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16252:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"16255:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16245:6:89"},"nodeType":"YulFunctionCall","src":"16245:15:89"},"nodeType":"YulExpressionStatement","src":"16245:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16276:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16279:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16269:6:89"},"nodeType":"YulFunctionCall","src":"16269:15:89"},"nodeType":"YulExpressionStatement","src":"16269:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"16163:127:89"},{"body":{"nodeType":"YulBlock","src":"16469:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16486:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16497:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16479:6:89"},"nodeType":"YulFunctionCall","src":"16479:21:89"},"nodeType":"YulExpressionStatement","src":"16479:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16520:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16531:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16516:3:89"},"nodeType":"YulFunctionCall","src":"16516:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"16536:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16509:6:89"},"nodeType":"YulFunctionCall","src":"16509:30:89"},"nodeType":"YulExpressionStatement","src":"16509:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16559:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16570:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16555:3:89"},"nodeType":"YulFunctionCall","src":"16555:18:89"},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"16575:34:89","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16548:6:89"},"nodeType":"YulFunctionCall","src":"16548:62:89"},"nodeType":"YulExpressionStatement","src":"16548:62:89"},{"nodeType":"YulAssignment","src":"16619:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16631:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16642:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16627:3:89"},"nodeType":"YulFunctionCall","src":"16627:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16619:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16446:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16460:4:89","type":""}],"src":"16295:356:89"},{"body":{"nodeType":"YulBlock","src":"16830:178:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16847:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16858:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16840:6:89"},"nodeType":"YulFunctionCall","src":"16840:21:89"},"nodeType":"YulExpressionStatement","src":"16840:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16881:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16892:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16877:3:89"},"nodeType":"YulFunctionCall","src":"16877:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"16897:2:89","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16870:6:89"},"nodeType":"YulFunctionCall","src":"16870:30:89"},"nodeType":"YulExpressionStatement","src":"16870:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16920:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16931:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16916:3:89"},"nodeType":"YulFunctionCall","src":"16916:18:89"},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","kind":"string","nodeType":"YulLiteral","src":"16936:30:89","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16909:6:89"},"nodeType":"YulFunctionCall","src":"16909:58:89"},"nodeType":"YulExpressionStatement","src":"16909:58:89"},{"nodeType":"YulAssignment","src":"16976:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16988:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16999:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16984:3:89"},"nodeType":"YulFunctionCall","src":"16984:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16976:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16807:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16821:4:89","type":""}],"src":"16656:352:89"},{"body":{"nodeType":"YulBlock","src":"17062:79:89","statements":[{"nodeType":"YulAssignment","src":"17072:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17084:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"17087:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"17080:3:89"},"nodeType":"YulFunctionCall","src":"17080:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"17072:4:89"}]},{"body":{"nodeType":"YulBlock","src":"17113:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17115:16:89"},"nodeType":"YulFunctionCall","src":"17115:18:89"},"nodeType":"YulExpressionStatement","src":"17115:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"17104:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"17110:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17101:2:89"},"nodeType":"YulFunctionCall","src":"17101:11:89"},"nodeType":"YulIf","src":"17098:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17044:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"17047:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"17053:4:89","type":""}],"src":"17013:128:89"},{"body":{"nodeType":"YulBlock","src":"17194:77:89","statements":[{"nodeType":"YulAssignment","src":"17204:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17215:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"17218:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17211:3:89"},"nodeType":"YulFunctionCall","src":"17211:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"17204:3:89"}]},{"body":{"nodeType":"YulBlock","src":"17243:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"17245:16:89"},"nodeType":"YulFunctionCall","src":"17245:18:89"},"nodeType":"YulExpressionStatement","src":"17245:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"17235:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"17238:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17232:2:89"},"nodeType":"YulFunctionCall","src":"17232:10:89"},"nodeType":"YulIf","src":"17229:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"17177:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"17180:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"17186:3:89","type":""}],"src":"17146:125:89"},{"body":{"nodeType":"YulBlock","src":"17308:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17325:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17332:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"17337:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"17328:3:89"},"nodeType":"YulFunctionCall","src":"17328:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17318:6:89"},"nodeType":"YulFunctionCall","src":"17318:31:89"},"nodeType":"YulExpressionStatement","src":"17318:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17365:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"17368:4:89","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17358:6:89"},"nodeType":"YulFunctionCall","src":"17358:15:89"},"nodeType":"YulExpressionStatement","src":"17358:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"17389:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"17392:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"17382:6:89"},"nodeType":"YulFunctionCall","src":"17382:15:89"},"nodeType":"YulExpressionStatement","src":"17382:15:89"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"17276:127:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { 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_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_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, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_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_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_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, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_bytes(src, length, end) -> array\n    {\n        let _1 := 0xffffffffffffffff\n        if gt(length, _1) { panic_error_0x41() }\n        let _2 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 31), _2), 63), _2))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, length), 0x20), 0)\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        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        value3 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1\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        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        value1 := abi_decode_available_length_bytes(add(_1, 32), calldataload(_1), dataEnd)\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, shl(224, 0x4e487b71))\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_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, shl(224, 0x4e487b71))\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 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 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_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_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_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_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_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC721URIStorage: URI set of non\")\n        mstore(add(headStart, 96), \"existent token\")\n        tail := add(headStart, 128)\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, 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, 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_stringliteral_9415f806032e8ce62953c2a5077ab63b71a12b2d4f8611a557c2c72502d2e834__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 60)\n        mstore(add(headStart, 64), \"CertificateNFT: This token canno\")\n        mstore(add(headStart, 96), \"t be transferred once minted\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_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 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_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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063b88d4fde11610071578063b88d4fde14610266578063c87b56dd14610279578063d204c45e1461028c578063e985e9c51461029f578063f2fde38b146102db57600080fd5b806370a082311461021f578063715018a6146102325780638da5cb5b1461023a57806395d89b411461024b578063a22cb4651461025357600080fd5b806323b872dd116100f457806323b872dd146101c05780632f745c59146101d357806342842e0e146101e65780634f6ccce7146101f95780636352211e1461020c57600080fd5b806301ffc9a71461013157806306fdde0314610159578063081812fc1461016e578063095ea7b31461019957806318160ddd146101ae575b600080fd5b61014461013f36600461178d565b6102ee565b60405190151581526020015b60405180910390f35b6101616102ff565b60405161015091906117fa565b61018161017c36600461180d565b610391565b6040516001600160a01b039091168152602001610150565b6101ac6101a7366004611842565b6103b8565b005b6008545b604051908152602001610150565b6101ac6101ce36600461186c565b6104d2565b6101b26101e1366004611842565b610503565b6101ac6101f436600461186c565b610599565b6101b261020736600461180d565b6105b4565b61018161021a36600461180d565b610647565b6101b261022d3660046118a8565b6106a7565b6101ac61072d565b600b546001600160a01b0316610181565b610161610741565b6101ac6102613660046118c3565b610750565b6101ac61027436600461198b565b61075f565b61016161028736600461180d565b610797565b6101b261029a366004611a07565b6107a2565b6101446102ad366004611a69565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6101ac6102e93660046118a8565b6107de565b60006102f982610857565b92915050565b60606000805461030e90611a9c565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90611a9c565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b5050505050905090565b600061039c8261087c565b506000908152600460205260409020546001600160a01b031690565b60006103c382610647565b9050806001600160a01b0316836001600160a01b0316036104355760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610451575061045181336102ad565b6104c35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161042c565b6104cd83836108db565b505050565b6104dc3382610949565b6104f85760405162461bcd60e51b815260040161042c90611ad6565b6104cd8383836109c8565b600061050e836106a7565b82106105705760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161042c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6104cd8383836040518060200160405280600081525061075f565b60006105bf60085490565b82106106225760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161042c565b6008828154811061063557610635611b23565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806102f95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161042c565b60006001600160a01b0382166107115760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161042c565b506001600160a01b031660009081526003602052604090205490565b610735610b39565b61073f6000610b93565b565b60606001805461030e90611a9c565b61075b338383610be5565b5050565b6107693383610949565b6107855760405162461bcd60e51b815260040161042c90611ad6565b61079184848484610cb3565b50505050565b60606102f982610ce6565b60006107ac610b39565b600c805490819060006107be83611b4f565b91905055506107cd8482610dee565b6107d78184610e08565b9392505050565b6107e6610b39565b6001600160a01b03811661084b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042c565b61085481610b93565b50565b60006001600160e01b0319821663780e9d6360e01b14806102f957506102f982610e9b565b6000818152600260205260409020546001600160a01b03166108545760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161042c565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061091082610647565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061095583610647565b9050806001600160a01b0316846001600160a01b0316148061099c57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806109c05750836001600160a01b03166109b584610391565b6001600160a01b0316145b949350505050565b826001600160a01b03166109db82610647565b6001600160a01b031614610a015760405162461bcd60e51b815260040161042c90611b68565b6001600160a01b038216610a635760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161042c565b610a708383836001610eeb565b826001600160a01b0316610a8382610647565b6001600160a01b031614610aa95760405162461bcd60e51b815260040161042c90611b68565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600b546001600160a01b0316331461073f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042c565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603610c465760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161042c565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610cbe8484846109c8565b610cca84848484610f74565b6107915760405162461bcd60e51b815260040161042c90611bad565b6060610cf18261087c565b6000828152600a602052604081208054610d0a90611a9c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3690611a9c565b8015610d835780601f10610d5857610100808354040283529160200191610d83565b820191906000526020600020905b815481529060010190602001808311610d6657829003601f168201915b505050505090506000610da160408051602081019091526000815290565b90508051600003610db3575092915050565b815115610de5578082604051602001610dcd929190611bff565b60405160208183030381529060405292505050919050565b6109c084611075565b61075b8282604051806020016040528060008152506110e8565b6000828152600260205260409020546001600160a01b0316610e835760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161042c565b6000828152600a602052604090206104cd8282611c7c565b60006001600160e01b031982166380ac58cd60e01b1480610ecc57506001600160e01b03198216635b5e139f60e01b145b806102f957506301ffc9a760e01b6001600160e01b03198316146102f9565b610ef78484848461111b565b6001600160a01b038416156107915760405162461bcd60e51b815260206004820152603c60248201527f43657274696669636174654e46543a205468697320746f6b656e2063616e6e6f60448201527f74206265207472616e73666572726564206f6e6365206d696e74656400000000606482015260840161042c565b60006001600160a01b0384163b1561106a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610fb8903390899088908890600401611d3c565b6020604051808303816000875af1925050508015610ff3575060408051601f3d908101601f19168201909252610ff091810190611d79565b60015b611050573d808015611021576040519150601f19603f3d011682016040523d82523d6000602084013e611026565b606091505b5080516000036110485760405162461bcd60e51b815260040161042c90611bad565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506109c0565b506001949350505050565b60606110808261087c565b600061109760408051602081019091526000815290565b905060008151116110b757604051806020016040528060008152506107d7565b806110c18461125b565b6040516020016110d2929190611bff565b6040516020818303038152906040529392505050565b6110f283836112ee565b6110ff6000848484610f74565b6104cd5760405162461bcd60e51b815260040161042c90611bad565b61112784848484611487565b60018111156111965760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161042c565b816001600160a01b0385166111f2576111ed81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611215565b836001600160a01b0316856001600160a01b03161461121557611215858261150f565b6001600160a01b0384166112315761122c816115ac565b611254565b846001600160a01b0316846001600160a01b03161461125457611254848261165b565b5050505050565b606060006112688361169f565b600101905060008167ffffffffffffffff811115611288576112886118ff565b6040519080825280601f01601f1916602001820160405280156112b2576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846112bc57509392505050565b6001600160a01b0382166113445760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161042c565b6000818152600260205260409020546001600160a01b0316156113a95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161042c565b6113b7600083836001610eeb565b6000818152600260205260409020546001600160a01b03161561141c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161042c565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610791576001600160a01b038416156114cd576001600160a01b038416600090815260036020526040812080548392906114c7908490611d96565b90915550505b6001600160a01b03831615610791576001600160a01b03831660009081526003602052604081208054839290611504908490611da9565b909155505050505050565b6000600161151c846106a7565b6115269190611d96565b600083815260076020526040902054909150808214611579576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906115be90600190611d96565b600083815260096020526040812054600880549394509092849081106115e6576115e6611b23565b90600052602060002001549050806008838154811061160757611607611b23565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061163f5761163f611dbc565b6001900381819060005260206000200160009055905550505050565b6000611666836106a7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106116de5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061170a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061172857662386f26fc10000830492506010015b6305f5e1008310611740576305f5e100830492506008015b612710831061175457612710830492506004015b60648310611766576064830492506002015b600a83106102f95760010192915050565b6001600160e01b03198116811461085457600080fd5b60006020828403121561179f57600080fd5b81356107d781611777565b60005b838110156117c55781810151838201526020016117ad565b50506000910152565b600081518084526117e68160208601602086016117aa565b601f01601f19169290920160200192915050565b6020815260006107d760208301846117ce565b60006020828403121561181f57600080fd5b5035919050565b80356001600160a01b038116811461183d57600080fd5b919050565b6000806040838503121561185557600080fd5b61185e83611826565b946020939093013593505050565b60008060006060848603121561188157600080fd5b61188a84611826565b925061189860208501611826565b9150604084013590509250925092565b6000602082840312156118ba57600080fd5b6107d782611826565b600080604083850312156118d657600080fd5b6118df83611826565b9150602083013580151581146118f457600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611930576119306118ff565b604051601f8501601f19908116603f01168101908282118183101715611958576119586118ff565b8160405280935085815286868601111561197157600080fd5b858560208301376000602087830101525050509392505050565b600080600080608085870312156119a157600080fd5b6119aa85611826565b93506119b860208601611826565b925060408501359150606085013567ffffffffffffffff8111156119db57600080fd5b8501601f810187136119ec57600080fd5b6119fb87823560208401611915565b91505092959194509250565b60008060408385031215611a1a57600080fd5b611a2383611826565b9150602083013567ffffffffffffffff811115611a3f57600080fd5b8301601f81018513611a5057600080fd5b611a5f85823560208401611915565b9150509250929050565b60008060408385031215611a7c57600080fd5b611a8583611826565b9150611a9360208401611826565b90509250929050565b600181811c90821680611ab057607f821691505b602082108103611ad057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b6157611b61611b39565b5060010190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351611c118184602088016117aa565b835190830190611c258183602088016117aa565b01949350505050565b601f8211156104cd57600081815260208120601f850160051c81016020861015611c555750805b601f850160051c820191505b81811015611c7457828155600101611c61565b505050505050565b815167ffffffffffffffff811115611c9657611c966118ff565b611caa81611ca48454611a9c565b84611c2e565b602080601f831160018114611cdf5760008415611cc75750858301515b600019600386901b1c1916600185901b178555611c74565b600085815260208120601f198616915b82811015611d0e57888601518255948401946001909101908401611cef565b5085821015611d2c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d6f908301846117ce565b9695505050505050565b600060208284031215611d8b57600080fd5b81516107d781611777565b818103818111156102f9576102f9611b39565b808201808211156102f9576102f9611b39565b634e487b7160e01b600052603160045260246000fdfea26469706673582212203260e3e9b18c4c7e78a5da49e34a6e08ed87fdac12087df0967098d070af8a4c64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0xD204C45E EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x2DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x24B JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x20C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x178D JUMP JUMPDEST PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x161 PUSH2 0x2FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x17FA JUMP JUMPDEST PUSH2 0x181 PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x150 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1842 JUMP JUMPDEST PUSH2 0x3B8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x150 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1CE CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x1E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1842 JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x599 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x5B4 JUMP JUMPDEST PUSH2 0x181 PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x647 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x18A8 JUMP JUMPDEST PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x72D JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x181 JUMP JUMPDEST PUSH2 0x161 PUSH2 0x741 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x261 CALLDATASIZE PUSH1 0x4 PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x750 JUMP JUMPDEST PUSH2 0x1AC PUSH2 0x274 CALLDATASIZE PUSH1 0x4 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST PUSH2 0x161 PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x180D JUMP JUMPDEST PUSH2 0x797 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x29A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A07 JUMP JUMPDEST PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x2AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1A69 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 PUSH2 0x1AC PUSH2 0x2E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A8 JUMP JUMPDEST PUSH2 0x7DE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9 DUP3 PUSH2 0x857 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x30E SWAP1 PUSH2 0x1A9C 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 0x33A SWAP1 PUSH2 0x1A9C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x387 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x35C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x387 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 0x36A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39C DUP3 PUSH2 0x87C 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 0x3C3 DUP3 PUSH2 0x647 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 0x435 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x451 JUMPI POP PUSH2 0x451 DUP2 CALLER PUSH2 0x2AD JUMP JUMPDEST PUSH2 0x4C3 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 0x42C JUMP JUMPDEST PUSH2 0x4CD DUP4 DUP4 PUSH2 0x8DB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4DC CALLER DUP3 PUSH2 0x949 JUMP JUMPDEST PUSH2 0x4F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1AD6 JUMP JUMPDEST PUSH2 0x4CD DUP4 DUP4 DUP4 PUSH2 0x9C8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50E DUP4 PUSH2 0x6A7 JUMP JUMPDEST DUP3 LT PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C 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 PUSH2 0x4CD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x75F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BF PUSH1 0x8 SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x622 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x8 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x635 JUMPI PUSH2 0x635 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 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 0x2F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x711 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C 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 PUSH2 0x735 PUSH2 0xB39 JUMP JUMPDEST PUSH2 0x73F PUSH1 0x0 PUSH2 0xB93 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x30E SWAP1 PUSH2 0x1A9C JUMP JUMPDEST PUSH2 0x75B CALLER DUP4 DUP4 PUSH2 0xBE5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x769 CALLER DUP4 PUSH2 0x949 JUMP JUMPDEST PUSH2 0x785 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1AD6 JUMP JUMPDEST PUSH2 0x791 DUP5 DUP5 DUP5 DUP5 PUSH2 0xCB3 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2F9 DUP3 PUSH2 0xCE6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7AC PUSH2 0xB39 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP2 SWAP1 PUSH1 0x0 PUSH2 0x7BE DUP4 PUSH2 0x1B4F JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x7CD DUP5 DUP3 PUSH2 0xDEE JUMP JUMPDEST PUSH2 0x7D7 DUP2 DUP5 PUSH2 0xE08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x7E6 PUSH2 0xB39 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x84B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH2 0x854 DUP2 PUSH2 0xB93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x780E9D63 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2F9 JUMPI POP PUSH2 0x2F9 DUP3 PUSH2 0xE9B 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 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x910 DUP3 PUSH2 0x647 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 0x955 DUP4 PUSH2 0x647 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 0x99C 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 0x9C0 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9B5 DUP5 PUSH2 0x391 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 0x9DB DUP3 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA01 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1B68 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH2 0xA70 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xEEB JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA83 DUP3 PUSH2 0x647 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xAA9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1B68 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB 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 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x73F 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 0x42C JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xC46 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 0x42C 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 0xCBE DUP5 DUP5 DUP5 PUSH2 0x9C8 JUMP JUMPDEST PUSH2 0xCCA DUP5 DUP5 DUP5 DUP5 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF1 DUP3 PUSH2 0x87C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0xD0A SWAP1 PUSH2 0x1A9C 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 0xD36 SWAP1 PUSH2 0x1A9C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD83 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD58 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD83 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 0xD66 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0xDA1 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xDB3 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0xDE5 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDCD SWAP3 SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C0 DUP5 PUSH2 0x1075 JUMP JUMPDEST PUSH2 0x75B DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10E8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x4CD DUP3 DUP3 PUSH2 0x1C7C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xECC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2F9 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x2F9 JUMP JUMPDEST PUSH2 0xEF7 DUP5 DUP5 DUP5 DUP5 PUSH2 0x111B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43657274696669636174654E46543A205468697320746F6B656E2063616E6E6F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x74206265207472616E73666572726564206F6E6365206D696E74656400000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x106A JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xFB8 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D3C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xFF3 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xFF0 SWAP2 DUP2 ADD SWAP1 PUSH2 0x1D79 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1050 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1021 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 0x1026 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1048 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x9C0 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1080 DUP3 PUSH2 0x87C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1097 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 0x10B7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7D7 JUMP JUMPDEST DUP1 PUSH2 0x10C1 DUP5 PUSH2 0x125B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10D2 SWAP3 SWAP2 SWAP1 PUSH2 0x1BFF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x10F2 DUP4 DUP4 PUSH2 0x12EE JUMP JUMPDEST PUSH2 0x10FF PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0xF74 JUMP JUMPDEST PUSH2 0x4CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x42C SWAP1 PUSH2 0x1BAD JUMP JUMPDEST PUSH2 0x1127 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1487 JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1196 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 PUSH21 0x185B9CD9995C9CC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x5A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42C JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x11F2 JUMPI PUSH2 0x11ED 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 0x1215 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1215 JUMPI PUSH2 0x1215 DUP6 DUP3 PUSH2 0x150F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1231 JUMPI PUSH2 0x122C DUP2 PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x1254 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1254 JUMPI PUSH2 0x1254 DUP5 DUP3 PUSH2 0x165B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1268 DUP4 PUSH2 0x169F JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x18FF 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 0x12B2 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 PUSH2 0x12BC JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1344 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 0x42C 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 0x13A9 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 0x42C JUMP JUMPDEST PUSH2 0x13B7 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0xEEB 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 0x141C 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 0x42C 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x791 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x14CD JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x14C7 SWAP1 DUP5 SWAP1 PUSH2 0x1D96 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x791 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1504 SWAP1 DUP5 SWAP1 PUSH2 0x1DA9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x151C DUP5 PUSH2 0x6A7 JUMP JUMPDEST PUSH2 0x1526 SWAP2 SWAP1 PUSH2 0x1D96 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x1579 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 0x15BE SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1D96 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 0x15E6 JUMPI PUSH2 0x15E6 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1607 JUMPI PUSH2 0x1607 PUSH2 0x1B23 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 0x163F JUMPI PUSH2 0x163F PUSH2 0x1DBC 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 0x1666 DUP4 PUSH2 0x6A7 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 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x16DE JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x170A JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1728 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1740 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1754 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1766 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2F9 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x854 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7D7 DUP2 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17C5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x17AD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x17E6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x17AA 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 0x7D7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17CE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x181F 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 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x185E DUP4 PUSH2 0x1826 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 0x1881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x188A DUP5 PUSH2 0x1826 JUMP JUMPDEST SWAP3 POP PUSH2 0x1898 PUSH1 0x20 DUP6 ADD PUSH2 0x1826 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 0x18BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7D7 DUP3 PUSH2 0x1826 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x18D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18DF DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x18F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 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 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP5 GT ISZERO PUSH2 0x1930 JUMPI PUSH2 0x1930 PUSH2 0x18FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1958 JUMPI PUSH2 0x1958 PUSH2 0x18FF JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x1971 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x19A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19AA DUP6 PUSH2 0x1826 JUMP JUMPDEST SWAP4 POP PUSH2 0x19B8 PUSH1 0x20 DUP7 ADD PUSH2 0x1826 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x19EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19FB DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A23 DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x1A50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A5F DUP6 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A85 DUP4 PUSH2 0x1826 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A93 PUSH1 0x20 DUP5 ADD PUSH2 0x1826 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1AB0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1AD0 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 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 PUSH2 0x1B61 JUMPI PUSH2 0x1B61 PUSH2 0x1B39 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1C11 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x17AA JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1C25 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x17AA JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x4CD 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 0x1C55 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1C74 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1C61 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C96 JUMPI PUSH2 0x1C96 PUSH2 0x18FF JUMP JUMPDEST PUSH2 0x1CAA DUP2 PUSH2 0x1CA4 DUP5 SLOAD PUSH2 0x1A9C JUMP JUMPDEST DUP5 PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1CDF JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1CC7 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 0x1C74 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1D0E JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x1CEF JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x1D2C 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1D6F SWAP1 DUP4 ADD DUP5 PUSH2 0x17CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7D7 DUP2 PUSH2 0x1777 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F9 PUSH2 0x1B39 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2F9 JUMPI PUSH2 0x2F9 PUSH2 0x1B39 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 ORIGIN PUSH1 0xE3 0xE9 0xB1 DUP13 0x4C PUSH31 0x78A5DA49E34A6E08ED87FDAC12087DF0967098D070AF8A4C64736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"327:1388:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1544:169;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;1544:169:82;;;;;;;;2471:98:38;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:89;;;1679:51;;1667:2;1652:18;3935:167:38;1533:203:89;3468:406:38;;;;;;:::i;:::-;;:::i;:::-;;1630:111:41;1717:10;:17;1630:111;;;2324:25:89;;;2312:2;2297:18;1630:111:41;2178:177:89;4612:326:38;;;;;;:::i;:::-;;:::i;1306:253:41:-;;;;;;:::i;:::-;;:::i;5004:179:38:-;;;;;;:::i;:::-;;:::i;1813:230:41:-;;;;;;:::i;:::-;;:::i;2190:219:38:-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;1831:101:19:-;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:19;1201:85;;2633:102:38;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5249:314::-;;;;;;:::i;:::-;;:::i;1385:153:82:-;;;;;;:::i;:::-;;:::i;510:255::-;;;;;;:::i;:::-;;:::i;4388:162:38:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;2081:198:19;;;;;;:::i;:::-;;:::i;1544:169:82:-;1647:4;1670:36;1694:11;1670:23;:36::i;:::-;1663:43;1544:169;-1:-1:-1;;1544:169:82:o;2471:98:38:-;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:38;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:38;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:38;:2;-1:-1:-1;;;;;3605:11:38;;3597:57;;;;-1:-1:-1;;;3597:57:38;;6056:2:89;3597:57:38;;;6038:21:89;6095:2;6075:18;;;6068:30;6134:34;6114:18;;;6107:62;-1:-1:-1;;;6185:18:89;;;6178:31;6226:19;;3597:57:38;;;;;;;;;719:10:47;-1:-1:-1;;;;;3686:21:38;;;;:62;;-1:-1:-1;3711:37:38;3728:5;719:10:47;4388:162:38;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:38;;6458:2:89;3665:170:38;;;6440:21:89;6497:2;6477:18;;;6470:30;6536:34;6516:18;;;6509:62;6607:31;6587:18;;;6580:59;6656:19;;3665:170:38;6256:425:89;3665:170:38;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:326::-;4801:41;719:10:47;4834:7:38;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:38;;;;;;;:::i;:::-;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;1306:253:41:-;1403:7;1438:23;1455:5;1438:16;:23::i;:::-;1430:5;:31;1422:87;;;;-1:-1:-1;;;1422:87:41;;7302:2:89;1422:87:41;;;7284:21:89;7341:2;7321:18;;;7314:30;7380:34;7360:18;;;7353:62;-1:-1:-1;;;7431:18:89;;;7424:41;7482:19;;1422:87:41;7100:407:89;1422:87:41;-1:-1:-1;;;;;;1526:19:41;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1306:253::o;5004:179:38:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;1813:230:41:-;1888:7;1923:30;1717:10;:17;;1630:111;1923:30;1915:5;:38;1907:95;;;;-1:-1:-1;;;1907:95:41;;7714:2:89;1907:95:41;;;7696:21:89;7753:2;7733:18;;;7726:30;7792:34;7772:18;;;7765:62;-1:-1:-1;;;7843:18:89;;;7836:42;7895:19;;1907:95:41;7512:408:89;1907:95:41;2019:10;2030:5;2019:17;;;;;;;;:::i;:::-;;;;;;;;;2012:24;;1813:230;;;:::o;2190:219:38:-;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;;2324:56;;;;-1:-1:-1;;;2324:56:38;;8259:2:89;2324:56:38;;;8241:21:89;8298:2;8278:18;;;8271:30;-1:-1:-1;;;8317:18:89;;;8310:54;8381:18;;2324:56:38;8057:348:89;1929:204:38;2001:7;-1:-1:-1;;;;;2028:19:38;;2020:73;;;;-1:-1:-1;;;2020:73:38;;8612:2:89;2020:73:38;;;8594:21:89;8651:2;8631:18;;;8624:30;8690:34;8670:18;;;8663:62;-1:-1:-1;;;8741:18:89;;;8734:39;8790:19;;2020:73:38;8410:405:89;2020:73:38;-1:-1:-1;;;;;;2110:16:38;;;;;:9;:16;;;;;;;1929:204::o;1831:101:19:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2633:102:38:-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;719:10:47;4296:8:38;4306;4263:18;:52::i;:::-;4169:153;;:::o;5249:314::-;5417:41;719:10:47;5450:7:38;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:38;;;;;;;:::i;:::-;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;1385:153:82:-;1476:13;1508:23;1523:7;1508:14;:23::i;510:255::-;587:7;1094:13:19;:11;:13::i;:::-;624:15:82::1;::::0;;;;;606::::1;649:17;624:15:::0;649:17:::1;:::i;:::-;;;;;;676:22;686:2;690:7;676:9;:22::i;:::-;708:26;721:7;730:3;708:12;:26::i;:::-;751:7:::0;510:255;-1:-1:-1;;;510:255:82:o;2081:198:19:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:19;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:19;;9294:2:89;2161:73:19::1;::::0;::::1;9276:21:89::0;9333:2;9313:18;;;9306:30;9372:34;9352:18;;;9345:62;-1:-1:-1;;;9423:18:89;;;9416:36;9469:19;;2161:73:19::1;9092:402:89::0;2161:73:19::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1005:222:41:-;1107:4;-1:-1:-1;;;;;;1130:50:41;;-1:-1:-1;;;1130:50:41;;:90;;;1184:36;1208:11;1184:23;:36::i;13466:133:38:-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;13539:53;;;;-1:-1:-1;;;13539:53:38;;8259:2:89;13539:53:38;;;8241:21:89;8298:2;8278:18;;;8271:30;-1:-1:-1;;;8317:18:89;;;8310:54;8381:18;;13539:53:38;8057:348:89;12768:171:38;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:38;-1:-1:-1;;;;;12842:29:38;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:38;;;;;;;;;;;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:38;:7;-1:-1:-1;;;;;7706:16:38;;:52;;;-1:-1:-1;;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7726:32;7706:87;;;;7786:7;-1:-1:-1;;;;;7762:31:38;:20;7774:7;7762:11;:20::i;:::-;-1:-1:-1;;;;;7762:31:38;;7706:87;7698:96;7540:261;-1:-1:-1;;;;7540:261:38:o;11423:1233::-;11577:4;-1:-1:-1;;;;;11550:31:38;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:38;;11542:81;;;;-1:-1:-1;;;11542:81:38;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:38;;11633:65;;;;-1:-1:-1;;;11633:65:38;;10107:2:89;11633:65:38;;;10089:21:89;10146:2;10126:18;;;10119:30;10185:34;10165:18;;;10158:62;-1:-1:-1;;;10236:18:89;;;10229:34;10280:19;;11633:65:38;9905:400:89;11633:65:38;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:38;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:38;;11843:81;;;;-1:-1:-1;;;11843:81:38;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:38;;;;;;-1:-1:-1;;;;;12461:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:38;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;1359:130:19:-;1273:6;;-1:-1:-1;;;;;1273:6:19;719:10:47;1422:23:19;1414:68;;;;-1:-1:-1;;;1414:68:19;;10512:2:89;1414:68:19;;;10494:21:89;;;10531:18;;;10524:30;10590:34;10570:18;;;10563:62;10642:18;;1414:68:19;10310:356:89;2433:187:19;2525:6;;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;13075:307:38:-;13225:8;-1:-1:-1;;;;;13216:17:38;:5;-1:-1:-1;;;;;13216:17:38;;13208:55;;;;-1:-1:-1;;;13208:55:38;;10873:2:89;13208:55:38;;;10855:21:89;10912:2;10892:18;;;10885:30;10951:27;10931:18;;;10924:55;10996:18;;13208:55:38;10671:349:89;13208:55:38;-1:-1:-1;;;;;13273:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:38;;;;;;;;;;13334:41;;540::89;;;13334::38;;513:18:89;13334:41:38;;;;;;;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:38;;;;;;;:::i;482:608:42:-;555:13;580:23;595:7;580:14;:23::i;:::-;614;640:19;;;:10;:19;;;;;614:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:18;690:10;3395:9:38;;;;;;;;;-1:-1:-1;3395:9:38;;;3319:92;690:10:42;669:31;;779:4;773:18;795:1;773:23;769:70;;-1:-1:-1;819:9:42;482:608;-1:-1:-1;;482:608:42:o;769:70::-;941:23;;:27;937:106;;1015:4;1021:9;998:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;984:48;;;;482:608;;;:::o;937:106::-;1060:23;1075:7;1060:14;:23::i;8131:108:38:-;8206:26;8216:2;8220:7;8206:26;;;;;;;;;;;;:9;:26::i;1237:214:42:-;7321:4:38;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;1328:75:42;;;;-1:-1:-1;;;1328:75:42;;12147:2:89;1328:75:42;;;12129:21:89;12186:2;12166:18;;;12159:30;12225:34;12205:18;;;12198:62;-1:-1:-1;;;12276:18:89;;;12269:44;12330:19;;1328:75:42;11945:410:89;1328:75:42;1413:19;;;;:10;:19;;;;;:31;1435:9;1413:19;:31;:::i;1570:300:38:-;1672:4;-1:-1:-1;;;;;;1707:40:38;;-1:-1:-1;;;1707:40:38;;:104;;-1:-1:-1;;;;;;;1763:48:38;;-1:-1:-1;;;1763:48:38;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:53;;;1827:36:38;829:155:53;839:421:82;1023:56;1050:4;1056:2;1060:7;1069:9;1023:26;:56::i;:::-;-1:-1:-1;;;;;1170:18:82;;;1162:91;;;;-1:-1:-1;;;1162:91:82;;14766:2:89;1162:91:82;;;14748:21:89;14805:2;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;14915:30;14895:18;;;14888:58;14963:19;;1162:91:82;14564:424:89;14151:831:38;14300:4;-1:-1:-1;;;;;14320:13:38;;1465:19:45;:23;14316:660:38;;14355:71;;-1:-1:-1;;;14355:71:38;;-1:-1:-1;;;;;14355:36:38;;;;;:71;;719:10:47;;14406:4:38;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:38;;;;;;;;-1:-1:-1;;14355:71:38;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:38;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:38;-1:-1:-1;;;14476:51:38;;-1:-1:-1;14469:58:38;;14316:660;-1:-1:-1;14961:4:38;14151:831;;;;;;:::o;2801:276::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:38;;;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;:::-;;;;;;;;;;;;;2977:93;2801:276;-1:-1:-1;;;2801:276:38:o;8460:309::-;8584:18;8590:2;8594:7;8584:5;:18::i;:::-;8633:53;8664:1;8668:2;8672:7;8681:4;8633:22;:53::i;:::-;8612:150;;;;-1:-1:-1;;;8612:150:38;;;;;;;:::i;2112:890:41:-;2283:61;2310:4;2316:2;2320:12;2334:9;2283:26;:61::i;:::-;2371:1;2359:9;:13;2355:219;;;2500:63;;-1:-1:-1;;;2500:63:41;;15943:2:89;2500:63:41;;;15925:21:89;15982:2;15962:18;;;15955:30;16021:34;16001:18;;;15994:62;-1:-1:-1;;;16072:18:89;;;16065:51;16133:19;;2500:63:41;15741:417:89;2355:219:41;2602:12;-1:-1:-1;;;;;2629:18:41;;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:41;:4;-1:-1:-1;;;;;2724:10:41;;2720:88;;2750:47;2783:4;2789:7;2750:32;:47::i;:::-;-1:-1:-1;;;;;2821:16:41;;2817:179;;2853:45;2890:7;2853:36;:45::i;:::-;2817:179;;;2925:4;-1:-1:-1;;;;;2919:10:41;:2;-1:-1:-1;;;;;2919:10:41;;2915:81;;2945:40;2973:2;2977:7;2945:27;:40::i;:::-;2273:729;2112:890;;;;:::o;415:696:49:-;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:49;-1:-1:-1;572:41:49;-1:-1:-1;733:28:49;;;749:2;733:28;788:280;-1:-1:-1;;819:5:49;-1:-1:-1;;;953:2:49;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:49;788:280;1032:21;-1:-1:-1;1088:6:49;415:696;-1:-1:-1;;;415:696:49:o;9091:920:38:-;-1:-1:-1;;;;;9170:16:38;;9162:61;;;;-1:-1:-1;;;9162:61:38;;16497:2:89;9162:61:38;;;16479:21:89;;;16516:18;;;16509:30;16575:34;16555:18;;;16548:62;16627:18;;9162:61:38;16295:356:89;9162:61:38;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:38;;16858:2:89;9233:58:38;;;16840:21:89;16897:2;16877:18;;;16870:30;16936;16916:18;;;16909:58;16984:18;;9233:58:38;16656:352:89;9233:58:38;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:38;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:38;;16858:2:89;9437:58:38;;;16840:21:89;16897:2;16877:18;;;16870:30;16936;16916:18;;;16909:58;16984:18;;9437:58:38;16656:352:89;9437:58:38;-1:-1:-1;;;;;9837:13:38;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:38;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;4169:153;;:::o;15698:396::-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:38;;;15899:85;;-1:-1:-1;;;;;15941:15:38;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:38;-1:-1:-1;;;;;16001:16:38;;;15997:81;;-1:-1:-1;;;;;16037:13:38;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:38;;;;:::o;4486:970:41:-;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:41;;;4956:323;;-1:-1:-1;;;;;5026:18:41;;5004:19;5026:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5075:30;;;;;;:44;;;5191:30;;:17;:30;;;;;:43;;;4956:323;-1:-1:-1;5372:26:41;;;;:17;:26;;;;;;;;5365:33;;;-1:-1:-1;;;;;5415:18:41;;;;;: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:41;;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:41;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3471:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3296:217:41:o;9889:890:55:-;9942:7;;-1:-1:-1;;;10017:15:55;;10013:99;;-1:-1:-1;;;10052:15:55;;;-1:-1:-1;10095:2:55;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:55;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:55;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:55;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:55;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:55;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:55:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:89;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:89;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:89:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:89;;1348:180;-1:-1:-1;1348:180:89:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:89;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:89:o;2360:328::-;2437:6;2445;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2545:29;2564:9;2545:29;:::i;:::-;2535:39;;2593:38;2627:2;2616:9;2612:18;2593:38;:::i;:::-;2583:48;;2678:2;2667:9;2663:18;2650:32;2640:42;;2360:328;;;;;:::o;2693:186::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2844:29;2863:9;2844:29;:::i;2884:347::-;2949:6;2957;3010:2;2998:9;2989:7;2985:23;2981:32;2978:52;;;3026:1;3023;3016:12;2978:52;3049:29;3068:9;3049:29;:::i;:::-;3039:39;;3128:2;3117:9;3113:18;3100:32;3175:5;3168:13;3161:21;3154:5;3151:32;3141:60;;3197:1;3194;3187:12;3141:60;3220:5;3210:15;;;2884:347;;;;;:::o;3236:127::-;3297:10;3292:3;3288:20;3285:1;3278:31;3328:4;3325:1;3318:15;3352:4;3349:1;3342:15;3368:631;3432:5;3462:18;3503:2;3495:6;3492:14;3489:40;;;3509:18;;:::i;:::-;3584:2;3578:9;3552:2;3638:15;;-1:-1:-1;;3634:24:89;;;3660:2;3630:33;3626:42;3614:55;;;3684:18;;;3704:22;;;3681:46;3678:72;;;3730:18;;:::i;:::-;3770:10;3766:2;3759:22;3799:6;3790:15;;3829:6;3821;3814:22;3869:3;3860:6;3855:3;3851:16;3848:25;3845:45;;;3886:1;3883;3876:12;3845:45;3936:6;3931:3;3924:4;3916:6;3912:17;3899:44;3991:1;3984:4;3975:6;3967;3963:19;3959:30;3952:41;;;;3368:631;;;;;:::o;4004:666::-;4099:6;4107;4115;4123;4176:3;4164:9;4155:7;4151:23;4147:33;4144:53;;;4193:1;4190;4183:12;4144:53;4216:29;4235:9;4216:29;:::i;:::-;4206:39;;4264:38;4298:2;4287:9;4283:18;4264:38;:::i;:::-;4254:48;;4349:2;4338:9;4334:18;4321:32;4311:42;;4404:2;4393:9;4389:18;4376:32;4431:18;4423:6;4420:30;4417:50;;;4463:1;4460;4453:12;4417:50;4486:22;;4539:4;4531:13;;4527:27;-1:-1:-1;4517:55:89;;4568:1;4565;4558:12;4517:55;4591:73;4656:7;4651:2;4638:16;4633:2;4629;4625:11;4591:73;:::i;:::-;4581:83;;;4004:666;;;;;;;:::o;4675:524::-;4753:6;4761;4814:2;4802:9;4793:7;4789:23;4785:32;4782:52;;;4830:1;4827;4820:12;4782:52;4853:29;4872:9;4853:29;:::i;:::-;4843:39;;4933:2;4922:9;4918:18;4905:32;4960:18;4952:6;4949:30;4946:50;;;4992:1;4989;4982:12;4946:50;5015:22;;5068:4;5060:13;;5056:27;-1:-1:-1;5046:55:89;;5097:1;5094;5087:12;5046:55;5120:73;5185:7;5180:2;5167:16;5162:2;5158;5154:11;5120:73;:::i;:::-;5110:83;;;4675:524;;;;;:::o;5204:260::-;5272:6;5280;5333:2;5321:9;5312:7;5308:23;5304:32;5301:52;;;5349:1;5346;5339:12;5301:52;5372:29;5391:9;5372:29;:::i;:::-;5362:39;;5420:38;5454:2;5443:9;5439:18;5420:38;:::i;:::-;5410:48;;5204:260;;;;;:::o;5469:380::-;5548:1;5544:12;;;;5591;;;5612:61;;5666:4;5658:6;5654:17;5644:27;;5612:61;5719:2;5711:6;5708:14;5688:18;5685:38;5682:161;;5765:10;5760:3;5756:20;5753:1;5746:31;5800:4;5797:1;5790:15;5828:4;5825:1;5818:15;5682:161;;5469:380;;;:::o;6686:409::-;6888:2;6870:21;;;6927:2;6907:18;;;6900:30;6966:34;6961:2;6946:18;;6939:62;-1:-1:-1;;;7032:2:89;7017:18;;7010:43;7085:3;7070:19;;6686:409::o;7925:127::-;7986:10;7981:3;7977:20;7974:1;7967:31;8017:4;8014:1;8007:15;8041:4;8038:1;8031:15;8820:127;8881:10;8876:3;8872:20;8869:1;8862:31;8912:4;8909:1;8902:15;8936:4;8933:1;8926:15;8952:135;8991:3;9012:17;;;9009:43;;9032:18;;:::i;:::-;-1:-1:-1;9079:1:89;9068:13;;8952:135::o;9499:401::-;9701:2;9683:21;;;9740:2;9720:18;;;9713:30;9779:34;9774:2;9759:18;;9752:62;-1:-1:-1;;;9845:2:89;9830:18;;9823:35;9890:3;9875:19;;9499:401::o;11025:414::-;11227:2;11209:21;;;11266:2;11246:18;;;11239:30;11305:34;11300:2;11285:18;;11278:62;-1:-1:-1;;;11371:2:89;11356:18;;11349:48;11429:3;11414:19;;11025:414::o;11444:496::-;11623:3;11661:6;11655:13;11677:66;11736:6;11731:3;11724:4;11716:6;11712:17;11677:66;:::i;:::-;11806:13;;11765:16;;;;11828:70;11806:13;11765:16;11875:4;11863:17;;11828:70;:::i;:::-;11914:20;;11444:496;-1:-1:-1;;;;11444:496:89:o;12486:545::-;12588:2;12583:3;12580:11;12577:448;;;12624:1;12649:5;12645:2;12638:17;12694:4;12690:2;12680:19;12764:2;12752:10;12748:19;12745:1;12741:27;12735:4;12731:38;12800:4;12788:10;12785:20;12782:47;;;-1:-1:-1;12823:4:89;12782:47;12878:2;12873:3;12869:12;12866:1;12862:20;12856:4;12852:31;12842:41;;12933:82;12951:2;12944:5;12941:13;12933:82;;;12996:17;;;12977:1;12966:13;12933:82;;;12937:3;;;12486:545;;;:::o;13207:1352::-;13333:3;13327:10;13360:18;13352:6;13349:30;13346:56;;;13382:18;;:::i;:::-;13411:97;13501:6;13461:38;13493:4;13487:11;13461:38;:::i;:::-;13455:4;13411:97;:::i;:::-;13563:4;;13627:2;13616:14;;13644:1;13639:663;;;;14346:1;14363:6;14360:89;;;-1:-1:-1;14415:19:89;;;14409:26;14360:89;-1:-1:-1;;13164:1:89;13160:11;;;13156:24;13152:29;13142:40;13188:1;13184:11;;;13139:57;14462:81;;13609:944;;13639:663;12433:1;12426:14;;;12470:4;12457:18;;-1:-1:-1;;13675:20:89;;;13793:236;13807:7;13804:1;13801:14;13793:236;;;13896:19;;;13890:26;13875:42;;13988:27;;;;13956:1;13944:14;;;;13823:19;;13793:236;;;13797:3;14057:6;14048:7;14045:19;14042:201;;;14118:19;;;14112:26;-1:-1:-1;;14201:1:89;14197:14;;;14213:3;14193:24;14189:37;14185:42;14170:58;14155:74;;14042:201;-1:-1:-1;;;;;14289:1:89;14273:14;;;14269:22;14256:36;;-1:-1:-1;13207:1352:89:o;14993:489::-;-1:-1:-1;;;;;15262:15:89;;;15244:34;;15314:15;;15309:2;15294:18;;15287:43;15361:2;15346:18;;15339:34;;;15409:3;15404:2;15389:18;;15382:31;;;15187:4;;15430:46;;15456:19;;15448:6;15430:46;:::i;:::-;15422:54;14993:489;-1:-1:-1;;;;;;14993:489:89:o;15487:249::-;15556:6;15609:2;15597:9;15588:7;15584:23;15580:32;15577:52;;;15625:1;15622;15615:12;15577:52;15657:9;15651:16;15676:30;15700:5;15676:30;:::i;17013:128::-;17080:9;;;17101:11;;;17098:37;;;17115:18;;:::i;17146:125::-;17211:9;;;17232:10;;;17229:36;;;17245:18;;:::i;17276:127::-;17337:10;17332:3;17328:20;17325:1;17318:31;17368:4;17365:1;17358:15;17392:4;17389:1;17382:15"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeMint(address,string)":"d204c45e","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","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":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\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"safeMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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/organizations/CertificateNFT.sol\":\"CertificateNFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"@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/ERC721URIStorage.sol\":{\"keccak256\":\"0x5c3501c1b70fcfc64417e9da5cc6a3597191baa354781e508e1e14cc0e50a038\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899c87a849a94c848818d0afede6961d2c87665af1dd23a5c983e78981a65691\",\"dweb:/ipfs/QmUeFDffQRDmX87FX3MRxN3bmpUxDTWpWLwPJzeAJ3yF6H\"]},\"@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\"]},\"contracts/organizations/CertificateNFT.sol\":{\"keccak256\":\"0x60d42253e147ee0c85bada557666abe036305ed6ece7bafcb9585756b171aca5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69f3ff40d94f457e2dc1f87e49a26defdc0310c1038d0c0f1bb006edfb9edbd5\",\"dweb:/ipfs/QmVuQR2B78kshFnqkryMqYuaLKhpVQeHWaaQHRvMKPgHkv\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":11011,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":11013,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":11017,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":11021,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":11025,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":11031,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":12079,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_ownedTokens","offset":0,"slot":"6","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},{"astId":12083,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_ownedTokensIndex","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_uint256)"},{"astId":12086,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_allTokens","offset":0,"slot":"8","type":"t_array(t_uint256)dyn_storage"},{"astId":12090,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_allTokensIndex","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_uint256)"},{"astId":12431,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_tokenURIs","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":5535,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_owner","offset":0,"slot":"11","type":"t_address"},{"astId":22916,"contract":"contracts/organizations/CertificateNFT.sol:CertificateNFT","label":"_tokenIdCounter","offset":0,"slot":"12","type":"t_uint256"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/organizations/Organization.sol":{"Organization":{"abi":[{"inputs":[{"internalType":"address","name":"hub","type":"address"},{"internalType":"string","name":"metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyCompleted","type":"error"},{"inputs":[],"name":"AlreadyMember","type":"error"},{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"inputs":[],"name":"NotMember","type":"error"},{"inputs":[],"name":"NotPendingMember","type":"error"},{"inputs":[],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"NotWhitelisted","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"HUB","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"addProjectMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"addTaskMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"approvePendingMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"metadataURI","type":"string"}],"internalType":"struct DataTypes.CreateProject","name":"args","type":"tuple"}],"name":"createProject","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.CreateTask","name":"args","type":"tuple"}],"name":"createTask","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMetadataURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getPendingMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getProject","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.ProjectStatus","name":"status","type":"uint8"},{"internalType":"uint256","name":"taskCount","type":"uint256"}],"internalType":"struct DataTypes.ProjectView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProjectCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getProjectMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"getProjectMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTask","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.TaskView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTask","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.TaskView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"}],"name":"getTaskCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTaskLoggedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTaskLoggedTimeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"getTaskLoggedTimeOfProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getTaskMember","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"}],"name":"getTaskMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWhitelistCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getWhitelistMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isPendingMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isProjectMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"isTaskMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"join","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"leave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"rejectPendingMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"removeProjectMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"removeTaskMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"metadataURI","type":"string"}],"name":"setMetadataURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"projectId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.ProjectStatus","name":"status","type":"uint8"}],"internalType":"struct DataTypes.UpdateProject","name":"args","type":"tuple"}],"name":"updateProject","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taskId","type":"uint256"},{"components":[{"internalType":"string","name":"metadataURI","type":"string"},{"internalType":"enum DataTypes.TaskStatus","name":"status","type":"uint8"},{"internalType":"uint256[]","name":"skills","type":"uint256[]"}],"internalType":"struct DataTypes.UpdateTask","name":"args","type":"tuple"}],"name":"updateTask","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"taskId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateTaskTime","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_21055":{"entryPoint":null,"id":21055,"parameterSlots":1,"returnSlots":0},"@_23145":{"entryPoint":null,"id":23145,"parameterSlots":2,"returnSlots":0},"@_5551":{"entryPoint":null,"id":5551,"parameterSlots":0,"returnSlots":0},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_5639":{"entryPoint":139,"id":5639,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_addresst_string_memory_ptr_fromMemory":{"entryPoint":241,"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":547,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":630,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":487,"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":219,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3946:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:89"},"nodeType":"YulFunctionCall","src":"66:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:89"},"nodeType":"YulFunctionCall","src":"56:31:89"},"nodeType":"YulExpressionStatement","src":"56:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:89"},"nodeType":"YulFunctionCall","src":"96:15:89"},"nodeType":"YulExpressionStatement","src":"96:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:89"},"nodeType":"YulFunctionCall","src":"120:15:89"},"nodeType":"YulExpressionStatement","src":"120:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:89"},{"body":{"nodeType":"YulBlock","src":"254:1101:89","statements":[{"body":{"nodeType":"YulBlock","src":"300:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"309:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"312:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:89"},"nodeType":"YulFunctionCall","src":"302:12:89"},"nodeType":"YulExpressionStatement","src":"302:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"275:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"284:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"271:3:89"},"nodeType":"YulFunctionCall","src":"271:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"296:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"267:3:89"},"nodeType":"YulFunctionCall","src":"267:32:89"},"nodeType":"YulIf","src":"264:52:89"},{"nodeType":"YulVariableDeclaration","src":"325:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"344:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"338:5:89"},"nodeType":"YulFunctionCall","src":"338:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"329:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"417:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"426:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"429:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"419:6:89"},"nodeType":"YulFunctionCall","src":"419:12:89"},"nodeType":"YulExpressionStatement","src":"419:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"376:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"387:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"402:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"407:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"398:3:89"},"nodeType":"YulFunctionCall","src":"398:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"411:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"394:3:89"},"nodeType":"YulFunctionCall","src":"394:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"383:3:89"},"nodeType":"YulFunctionCall","src":"383:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"373:2:89"},"nodeType":"YulFunctionCall","src":"373:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"366:6:89"},"nodeType":"YulFunctionCall","src":"366:50:89"},"nodeType":"YulIf","src":"363:70:89"},{"nodeType":"YulAssignment","src":"442:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"452:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"442:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"466:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"476:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"470:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"487:39:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"511:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"522:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"507:3:89"},"nodeType":"YulFunctionCall","src":"507:18:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"501:5:89"},"nodeType":"YulFunctionCall","src":"501:25:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"491:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"535:28:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"553:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"557:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"549:3:89"},"nodeType":"YulFunctionCall","src":"549:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"561:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"545:3:89"},"nodeType":"YulFunctionCall","src":"545:18:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"539:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"590:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"599:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"602:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"592:6:89"},"nodeType":"YulFunctionCall","src":"592:12:89"},"nodeType":"YulExpressionStatement","src":"592:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"578:6:89"},{"name":"_2","nodeType":"YulIdentifier","src":"586:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"575:2:89"},"nodeType":"YulFunctionCall","src":"575:14:89"},"nodeType":"YulIf","src":"572:34:89"},{"nodeType":"YulVariableDeclaration","src":"615:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"629:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"640:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"625:3:89"},"nodeType":"YulFunctionCall","src":"625:22:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"619:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"695:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"707:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"697:6:89"},"nodeType":"YulFunctionCall","src":"697:12:89"},"nodeType":"YulExpressionStatement","src":"697:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"674:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"678:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"670:3:89"},"nodeType":"YulFunctionCall","src":"670:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"685:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"666:3:89"},"nodeType":"YulFunctionCall","src":"666:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"659:6:89"},"nodeType":"YulFunctionCall","src":"659:35:89"},"nodeType":"YulIf","src":"656:55:89"},{"nodeType":"YulVariableDeclaration","src":"720:19:89","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"736:2:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"730:5:89"},"nodeType":"YulFunctionCall","src":"730:9:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"724:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"762:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"764:16:89"},"nodeType":"YulFunctionCall","src":"764:18:89"},"nodeType":"YulExpressionStatement","src":"764:18:89"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"754:2:89"},{"name":"_2","nodeType":"YulIdentifier","src":"758:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"751:2:89"},"nodeType":"YulFunctionCall","src":"751:10:89"},"nodeType":"YulIf","src":"748:36:89"},{"nodeType":"YulVariableDeclaration","src":"793:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"807:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"803:3:89"},"nodeType":"YulFunctionCall","src":"803:7:89"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"797:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"819:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"839:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:89"},"nodeType":"YulFunctionCall","src":"833:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"823:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"851:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"873:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"897:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"901:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"893:3:89"},"nodeType":"YulFunctionCall","src":"893:13:89"},{"name":"_5","nodeType":"YulIdentifier","src":"908:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"889:3:89"},"nodeType":"YulFunctionCall","src":"889:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"913:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"885:3:89"},"nodeType":"YulFunctionCall","src":"885:31:89"},{"name":"_5","nodeType":"YulIdentifier","src":"918:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"881:3:89"},"nodeType":"YulFunctionCall","src":"881:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"869:3:89"},"nodeType":"YulFunctionCall","src":"869:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"855:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"981:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"983:16:89"},"nodeType":"YulFunctionCall","src":"983:18:89"},"nodeType":"YulExpressionStatement","src":"983:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"940:10:89"},{"name":"_2","nodeType":"YulIdentifier","src":"952:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"937:2:89"},"nodeType":"YulFunctionCall","src":"937:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"960:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"972:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"957:2:89"},"nodeType":"YulFunctionCall","src":"957:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"934:2:89"},"nodeType":"YulFunctionCall","src":"934:46:89"},"nodeType":"YulIf","src":"931:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1019:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1023:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1012:6:89"},"nodeType":"YulFunctionCall","src":"1012:22:89"},"nodeType":"YulExpressionStatement","src":"1012:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1050:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1058:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1043:6:89"},"nodeType":"YulFunctionCall","src":"1043:18:89"},"nodeType":"YulExpressionStatement","src":"1043:18:89"},{"body":{"nodeType":"YulBlock","src":"1107:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1119:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1109:6:89"},"nodeType":"YulFunctionCall","src":"1109:12:89"},"nodeType":"YulExpressionStatement","src":"1109:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1084:2:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1088:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1080:3:89"},"nodeType":"YulFunctionCall","src":"1080:11:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1093:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1076:3:89"},"nodeType":"YulFunctionCall","src":"1076:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1098:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1073:2:89"},"nodeType":"YulFunctionCall","src":"1073:33:89"},"nodeType":"YulIf","src":"1070:53:89"},{"nodeType":"YulVariableDeclaration","src":"1132:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1141:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1136:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1197:83:89","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1226:6:89"},{"name":"i","nodeType":"YulIdentifier","src":"1234:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1222:3:89"},"nodeType":"YulFunctionCall","src":"1222:14:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1238:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1218:3:89"},"nodeType":"YulFunctionCall","src":"1218:23:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1257:2:89"},{"name":"i","nodeType":"YulIdentifier","src":"1261:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1253:3:89"},"nodeType":"YulFunctionCall","src":"1253:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1265:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1249:3:89"},"nodeType":"YulFunctionCall","src":"1249:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1243:5:89"},"nodeType":"YulFunctionCall","src":"1243:26:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1211:6:89"},"nodeType":"YulFunctionCall","src":"1211:59:89"},"nodeType":"YulExpressionStatement","src":"1211:59:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1162:1:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1165:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1159:2:89"},"nodeType":"YulFunctionCall","src":"1159:9:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1169:19:89","statements":[{"nodeType":"YulAssignment","src":"1171:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1180:1:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1183:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1176:3:89"},"nodeType":"YulFunctionCall","src":"1176:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1171:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1155:3:89","statements":[]},"src":"1151:129:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1304:6:89"},{"name":"_4","nodeType":"YulIdentifier","src":"1312:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:89"},"nodeType":"YulFunctionCall","src":"1300:15:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1317:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1296:3:89"},"nodeType":"YulFunctionCall","src":"1296:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"1322:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:89"},"nodeType":"YulFunctionCall","src":"1289:35:89"},"nodeType":"YulExpressionStatement","src":"1289:35:89"},{"nodeType":"YulAssignment","src":"1333:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1343:6:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1333:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"212:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"223:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"235:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"243:6:89","type":""}],"src":"146:1209:89"},{"body":{"nodeType":"YulBlock","src":"1415:325:89","statements":[{"nodeType":"YulAssignment","src":"1425:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1439:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1442:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1435:3:89"},"nodeType":"YulFunctionCall","src":"1435:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1425:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"1456:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1486:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"1492:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1482:3:89"},"nodeType":"YulFunctionCall","src":"1482:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1460:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1533:31:89","statements":[{"nodeType":"YulAssignment","src":"1535:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1549:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1557:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1545:3:89"},"nodeType":"YulFunctionCall","src":"1545:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1535:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1513:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1506:6:89"},"nodeType":"YulFunctionCall","src":"1506:26:89"},"nodeType":"YulIf","src":"1503:61:89"},{"body":{"nodeType":"YulBlock","src":"1623:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1644:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1651:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1656:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1647:3:89"},"nodeType":"YulFunctionCall","src":"1647:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1637:6:89"},"nodeType":"YulFunctionCall","src":"1637:31:89"},"nodeType":"YulExpressionStatement","src":"1637:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1688:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1691:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1681:6:89"},"nodeType":"YulFunctionCall","src":"1681:15:89"},"nodeType":"YulExpressionStatement","src":"1681:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1716:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1719:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1709:6:89"},"nodeType":"YulFunctionCall","src":"1709:15:89"},"nodeType":"YulExpressionStatement","src":"1709:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1579:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1602:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1610:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1599:2:89"},"nodeType":"YulFunctionCall","src":"1599:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1576:2:89"},"nodeType":"YulFunctionCall","src":"1576:38:89"},"nodeType":"YulIf","src":"1573:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1395:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1404:6:89","type":""}],"src":"1360:380:89"},{"body":{"nodeType":"YulBlock","src":"1801:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1818:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"1821:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1811:6:89"},"nodeType":"YulFunctionCall","src":"1811:14:89"},"nodeType":"YulExpressionStatement","src":"1811:14:89"},{"nodeType":"YulAssignment","src":"1834:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1852:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1855:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1842:9:89"},"nodeType":"YulFunctionCall","src":"1842:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"1834:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"1784:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"1792:4:89","type":""}],"src":"1745:121:89"},{"body":{"nodeType":"YulBlock","src":"1952:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"1985:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1999:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2009:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2003:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2030:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"2034:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2023:6:89"},"nodeType":"YulFunctionCall","src":"2023:17:89"},"nodeType":"YulExpressionStatement","src":"2023:17:89"},{"nodeType":"YulVariableDeclaration","src":"2053:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2075:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"2079:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2065:9:89"},"nodeType":"YulFunctionCall","src":"2065:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2057:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2097:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2120:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2130:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2137:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2149:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2133:3:89"},"nodeType":"YulFunctionCall","src":"2133:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2126:3:89"},"nodeType":"YulFunctionCall","src":"2126:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2116:3:89"},"nodeType":"YulFunctionCall","src":"2116:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2101:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2191:23:89","statements":[{"nodeType":"YulAssignment","src":"2193:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"2208:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2193:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2173:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2185:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2170:2:89"},"nodeType":"YulFunctionCall","src":"2170:20:89"},"nodeType":"YulIf","src":"2167:47:89"},{"nodeType":"YulVariableDeclaration","src":"2227:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2241:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2251:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2258:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"2263:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2254:3:89"},"nodeType":"YulFunctionCall","src":"2254:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2247:3:89"},"nodeType":"YulFunctionCall","src":"2247:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2237:3:89"},"nodeType":"YulFunctionCall","src":"2237:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2231:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2281:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2294:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2285:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2379:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2388:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2395:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2381:6:89"},"nodeType":"YulFunctionCall","src":"2381:17:89"},"nodeType":"YulExpressionStatement","src":"2381:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2329:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"2336:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2326:2:89"},"nodeType":"YulFunctionCall","src":"2326:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2340:26:89","statements":[{"nodeType":"YulAssignment","src":"2342:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2355:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"2362:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2351:3:89"},"nodeType":"YulFunctionCall","src":"2351:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2342:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2322:3:89","statements":[]},"src":"2318:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1968:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1973:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1965:2:89"},"nodeType":"YulFunctionCall","src":"1965:11:89"},"nodeType":"YulIf","src":"1962:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1924:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"1931:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1936:10:89","type":""}],"src":"1871:545:89"},{"body":{"nodeType":"YulBlock","src":"2506:81:89","statements":[{"nodeType":"YulAssignment","src":"2516:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2531:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2549:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2552:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2545:3:89"},"nodeType":"YulFunctionCall","src":"2545:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2562:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2558:3:89"},"nodeType":"YulFunctionCall","src":"2558:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2541:3:89"},"nodeType":"YulFunctionCall","src":"2541:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2537:3:89"},"nodeType":"YulFunctionCall","src":"2537:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2527:3:89"},"nodeType":"YulFunctionCall","src":"2527:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2573:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2576:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2569:3:89"},"nodeType":"YulFunctionCall","src":"2569:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2524:2:89"},"nodeType":"YulFunctionCall","src":"2524:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2516:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2483:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"2489:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2497:4:89","type":""}],"src":"2421:166:89"},{"body":{"nodeType":"YulBlock","src":"2688:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"2698:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2718:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2712:5:89"},"nodeType":"YulFunctionCall","src":"2712:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"2702:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2765:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2767:16:89"},"nodeType":"YulFunctionCall","src":"2767:18:89"},"nodeType":"YulExpressionStatement","src":"2767:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2737:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2753:2:89","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"2757:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2749:3:89"},"nodeType":"YulFunctionCall","src":"2749:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"2761:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2745:3:89"},"nodeType":"YulFunctionCall","src":"2745:18:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2734:2:89"},"nodeType":"YulFunctionCall","src":"2734:30:89"},"nodeType":"YulIf","src":"2731:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2840:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2878:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"2872:5:89"},"nodeType":"YulFunctionCall","src":"2872:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"2846:25:89"},"nodeType":"YulFunctionCall","src":"2846:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"2886:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"2796:43:89"},"nodeType":"YulFunctionCall","src":"2796:97:89"},"nodeType":"YulExpressionStatement","src":"2796:97:89"},{"nodeType":"YulVariableDeclaration","src":"2902:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2919:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"2906:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2929:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2948:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2933:11:89","type":""}]},{"nodeType":"YulAssignment","src":"2961:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2974:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2961:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3031:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3045:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3064:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3076:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3072:3:89"},"nodeType":"YulFunctionCall","src":"3072:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3060:3:89"},"nodeType":"YulFunctionCall","src":"3060:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3049:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3093:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3137:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3107:29:89"},"nodeType":"YulFunctionCall","src":"3107:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3097:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3155:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3164:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3159:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3242:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3267:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3285:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3290:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3281:3:89"},"nodeType":"YulFunctionCall","src":"3281:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3275:5:89"},"nodeType":"YulFunctionCall","src":"3275:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3260:6:89"},"nodeType":"YulFunctionCall","src":"3260:42:89"},"nodeType":"YulExpressionStatement","src":"3260:42:89"},{"nodeType":"YulAssignment","src":"3319:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3333:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3341:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3329:3:89"},"nodeType":"YulFunctionCall","src":"3329:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3319:6:89"}]},{"nodeType":"YulAssignment","src":"3360:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3377:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3388:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3373:3:89"},"nodeType":"YulFunctionCall","src":"3373:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3360:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3189:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3192:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3186:2:89"},"nodeType":"YulFunctionCall","src":"3186:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3201:28:89","statements":[{"nodeType":"YulAssignment","src":"3203:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3212:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3215:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3208:3:89"},"nodeType":"YulFunctionCall","src":"3208:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3203:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"3182:3:89","statements":[]},"src":"3178:236:89"},{"body":{"nodeType":"YulBlock","src":"3462:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3480:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3507:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3512:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3503:3:89"},"nodeType":"YulFunctionCall","src":"3503:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3497:5:89"},"nodeType":"YulFunctionCall","src":"3497:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3484:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3547:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3559:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3586:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3589:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3582:3:89"},"nodeType":"YulFunctionCall","src":"3582:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3598:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3578:3:89"},"nodeType":"YulFunctionCall","src":"3578:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3608:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3604:3:89"},"nodeType":"YulFunctionCall","src":"3604:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3574:3:89"},"nodeType":"YulFunctionCall","src":"3574:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3570:3:89"},"nodeType":"YulFunctionCall","src":"3570:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3555:3:89"},"nodeType":"YulFunctionCall","src":"3555:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3540:6:89"},"nodeType":"YulFunctionCall","src":"3540:74:89"},"nodeType":"YulExpressionStatement","src":"3540:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3433:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3442:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3430:2:89"},"nodeType":"YulFunctionCall","src":"3430:19:89"},"nodeType":"YulIf","src":"3427:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3648:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3662:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"3665:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3658:3:89"},"nodeType":"YulFunctionCall","src":"3658:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"3674:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3654:3:89"},"nodeType":"YulFunctionCall","src":"3654:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3641:6:89"},"nodeType":"YulFunctionCall","src":"3641:36:89"},"nodeType":"YulExpressionStatement","src":"3641:36:89"}]},"nodeType":"YulCase","src":"3024:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3029:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"3704:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3718:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3731:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3722:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3767:67:89","statements":[{"nodeType":"YulAssignment","src":"3785:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3804:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3809:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3800:3:89"},"nodeType":"YulFunctionCall","src":"3800:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3794:5:89"},"nodeType":"YulFunctionCall","src":"3794:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3785:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"3748:6:89"},"nodeType":"YulIf","src":"3745:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3854:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3913:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"3920:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"3860:52:89"},"nodeType":"YulFunctionCall","src":"3860:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3847:6:89"},"nodeType":"YulFunctionCall","src":"3847:81:89"},"nodeType":"YulExpressionStatement","src":"3847:81:89"}]},"nodeType":"YulCase","src":"3696:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3004:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3012:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3001:2:89"},"nodeType":"YulFunctionCall","src":"3001:14:89"},"nodeType":"YulSwitch","src":"2994:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"2673:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"2679:3:89","type":""}],"src":"2592:1352:89"}]},"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_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        mstore(add(add(memPtr, _4), _1), 0)\n        value1 := memPtr\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":89,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b5060405162002dfb38038062002dfb8339810160408190526200003491620000f1565b816001600160a01b0381166200005d576040516348be0eb360e01b815260040160405180910390fd5b6001600160a01b031660805262000074336200008b565b600362000082828262000276565b50505062000342565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200010557600080fd5b82516001600160a01b03811681146200011d57600080fd5b602084810151919350906001600160401b03808211156200013d57600080fd5b818601915086601f8301126200015257600080fd5b815181811115620001675762000167620000db565b604051601f8201601f19908116603f01168101908382118183101715620001925762000192620000db565b816040528281528986848701011115620001ab57600080fd5b600093505b82841015620001cf5784840186015181850187015292850192620001b0565b60008684830101528096505050505050509250929050565b600181811c90821680620001fc57607f821691505b6020821081036200021d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027157600081815260208120601f850160051c810160208610156200024c5750805b601f850160051c820191505b818110156200026d5782815560010162000258565b5050505b505050565b81516001600160401b03811115620002925762000292620000db565b620002aa81620002a38454620001e7565b8462000223565b602080601f831160018114620002e25760008415620002c95750858301515b600019600386901b1c1916600185901b1785556200026d565b600085815260208120601f198616915b828110156200031357888601518255948401946001909101908401620002f2565b5085821015620003325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051612a42620003b9600039600081816104ae0152818161060d0152818161070f0152818161093d01528181610c9b01528181610eec0152818161102c01528181611123015281816113cd015281816114f00152818161174001528181611a0201528181611b0c0152611bf30152612a426000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80637d542a4f11610151578063c591493f116100c3578063d751195711610087578063d751195714610583578063daf91ffc14610596578063e43252d7146105a9578063f0f3f2c8146105bc578063f2fde38b146105dc578063fad001a2146105ef57600080fd5b8063c591493f14610524578063c59db1af14610537578063c763bbf41461054a578063c7ea81fc1461055d578063d50c73771461057057600080fd5b8063a4c52b8611610115578063a4c52b86146104a9578063ab3545e5146104d0578063ab4fbac3146104e3578063ad91a095146104f6578063afcefa7114610509578063bd9d867c1461051c57600080fd5b80637d542a4f1461044157806386a92af7146104545780638ab1d681146104695780638da5cb5b1461047c578063997072f7146104a157600080fd5b80633bcff3b0116101ea57806352dd4eb1116101ae57806352dd4eb1146103da57806367dfd4c9146103ed5780636989fd6b14610400578063715018a614610413578063750521f51461041b57806376a79dcc1461042e57600080fd5b80633bcff3b0146103915780633e2de334146103995780633edff20f146103ac57806341aafef7146103b457806349386c56146103c757600080fd5b80631d65e77e1161023c5780631d65e77e14610302578063254c290d146103225780632565d6c5146103355780632825ee48146103485780632a10fb851461035b5780633af32abf1461036e57600080fd5b8063049878f31461027957806306e304121461028e57806307450adc146102a15780630e1e20a2146102ce5780631599bea5146102ef575b600080fd5b61028c610287366004612325565b610602565b005b61028c61029c366004612325565b610687565b6102b46102af36600461233e565b610777565b604080519283526020830191909152015b60405180910390f35b6102e16102dc36600461233e565b6107e2565b6040519081526020016102c5565b61028c6102fd36600461233e565b610847565b610315610310366004612325565b6109ae565b6040516102c591906123da565b6102e1610330366004612325565b610b48565b61028c610343366004612475565b610ba2565b6102e1610356366004612325565b610d05565b61028c6103693660046124bc565b610d58565b61038161037c36600461250a565b610f23565b60405190151581526020016102c5565b6008546102e1565b61028c6103a736600461233e565b610f36565b6102e1611065565b6102e16103c2366004612533565b611076565b6102e16103d536600461233e565b611187565b6103156103e836600461233e565b6111e4565b61028c6103fb366004612325565b6113c2565b61028c61040e36600461256e565b611465565b61028c611609565b61028c6104293660046125b0565b61161d565b6102e161043c366004612325565b611651565b61028c61044f36600461233e565b6116a6565b61045c611779565b6040516102c59190612661565b61028c61047736600461250a565b61180b565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102c5565b6102e161181e565b6104897f000000000000000000000000000000000000000000000000000000000000000081565b6102e16104de366004612325565b61182a565b6103816104f136600461233e565b611837565b6102e1610504366004612325565b611894565b6102e1610517366004612475565b6118e7565b6102e1611a77565b6102e1610532366004612325565b611a83565b61028c610545366004612325565b611a90565b610381610558366004612325565b611b43565b61028c61056b36600461233e565b611b59565b61038161057e366004612325565b611c2c565b610489610591366004612325565b611c42565b6102e16105a436600461233e565b611c4f565b61028c6105b736600461250a565b611cac565b6105cf6105ca366004612325565b611cbf565b6040516102c59190612674565b61028c6105ea36600461250a565b611e13565b6103816105fd36600461233e565b611e1c565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461064b576040516313bd2e8360e31b815260040160405180910390fd5b60008181526005602052604090205415610678576040516340803a5f60e11b815260040160405180910390fd5b610683600682611e91565b5050565b610692600133611e9d565b6106af57604051630b094f2760e31b815260040160405180910390fd5b6000818152600760205260409020546106db57604051637146096160e01b815260040160405180910390fd5b6106e6600682611ebf565b506106f2600482611e91565b506040516316b726e560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906316b726e5906044015b600060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b5050505050565b6000808360098054905081106107a05760405163aba4733960e01b815260040160405180910390fd5b6107d684600987815481106107b7576107b76126c5565b9060005260206000209060090201600601611ecb90919063ffffffff16565b92509250509250929050565b600954600090839081106108095760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110610820576108206126c5565b9060005260206000209060090201600601611ee990919063ffffffff16565b949350505050565b6009548290811061086b5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610881576108816126c5565b600091825260209091206002600990920201015460ff1660038111156108a9576108a96123a6565b036108c75760405163195332a560e01b815260040160405180910390fd5b6108d2600133611e9d565b6108ef57604051630b094f2760e31b815260040160405180910390fd5b6109258360098681548110610906576109066126c5565b9060005260206000209060090201600401611e9190919063ffffffff16565b506040516305edb40160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632f6da00890610976903090889088906004016126db565b600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6040805160808101825260008082526060602083018190529282015281810191909152600954829081106109f55760405163aba4733960e01b815260040160405180910390fd5b600060098481548110610a0a57610a0a6126c5565b906000526020600020906009020190506000604051806080016040528083600001548152602001836001018054610a40906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c906126fc565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050509183525050600284015460209091019060ff166003811115610ae057610ae06123a6565b815260200183600301805480602002602001604051908101604052809291908181526020018280548015610b3357602002820191906000526020600020905b815481526020019060010190808311610b1f575b50505091909252509094505050505b50919050565b60085460009082908110610b6f5760405163aba4733960e01b815260040160405180910390fd5b610b9b60088481548110610b8557610b856126c5565b9060005260206000209060060201600301611ef5565b9392505050565b60085482908110610bc65760405163aba4733960e01b815260040160405180910390fd5b610bd1600133611e9d565b610bee57604051630b094f2760e31b815260040160405180910390fd5b610bf88280612730565b60088581548110610c0b57610c0b6126c5565b90600052602060002090600602016001019182610c299291906127c6565b50610c3a6040830160208401612893565b60088481548110610c4d57610c4d6126c5565b60009182526020909120600260069092020101805460ff19166001836003811115610c7a57610c7a6123a6565b02179055506040516396937b4360e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396937b43906044015b600060405180830381600087803b158015610ce857600080fd5b505af1158015610cfc573d6000803e3d6000fd5b50505050505050565b60095460009082908110610d2c5760405163aba4733960e01b815260040160405180910390fd5b610b9b60098481548110610d4257610d426126c5565b9060005260206000209060090201600401611ef5565b60095482908110610d7c5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610d9257610d926126c5565b600091825260209091206002600990920201015460ff166003811115610dba57610dba6123a6565b03610dd85760405163195332a560e01b815260040160405180910390fd5b610de3600133611e9d565b610e0057604051630b094f2760e31b815260040160405180910390fd5b610e0a8380612730565b60098681548110610e1d57610e1d6126c5565b90600052602060002090600902016001019182610e3b9291906127c6565b50610e4c6040840160208501612893565b60098581548110610e5f57610e5f6126c5565b60009182526020909120600260099092020101805460ff19166001836003811115610e8c57610e8c6123a6565b0217905550610e9e60408401846128b0565b60098681548110610eb157610eb16126c5565b90600052602060002090600902016003019190610ecf9291906122c5565b50604051633698763160e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d30ec6290604401610976565b6000610f30600183611e9d565b92915050565b60095482908110610f5a5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610f7057610f706126c5565b600091825260209091206002600990920201015460ff166003811115610f9857610f986123a6565b03610fb65760405163195332a560e01b815260040160405180910390fd5b610fc1600133611e9d565b610fde57604051630b094f2760e31b815260040160405180910390fd5b6110148360098681548110610ff557610ff56126c5565b9060005260206000209060090201600401611ebf90919063ffffffff16565b506040516314e2f8e960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063538be3a490610976903090889088906004016126db565b60006110716001611ef5565b905090565b6000611083600133611e9d565b6110a057604051630b094f2760e31b815260040160405180910390fd5b60088054600181018083556000838152919290839081106110c3576110c36126c5565b6000918252602090912060069091020182815590506110e28480612730565b60018301916110f29190836127c6565b5060028101805460ff19169055604051630a843ddb60e31b8152306004820152602481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635421eed890604401600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b50939695505050505050565b600854600090839081106111ae5760405163aba4733960e01b815260040160405180910390fd5b61083f83600886815481106111c5576111c56126c5565b9060005260206000209060060201600301611eff90919063ffffffff16565b60408051608081018252600080825260606020830181905292820152818101919091526008548390811061122b5760405163aba4733960e01b815260040160405180910390fd5b600060088581548110611240576112406126c5565b90600052602060002090600602016005018481548110611262576112626126c5565b90600052602060002001549050600060098281548110611284576112846126c5565b9060005260206000209060090201905060006040518060800160405280836000015481526020018360010180546112ba906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546112e6906126fc565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b5050509183525050600284015460209091019060ff16600381111561135a5761135a6123a6565b8152602001836003018054806020026020016040519081016040528092919081815260200182805480156113ad57602002820191906000526020600020905b815481526020019060010190808311611399575b50505091909252509098975050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461140b576040516313bd2e8360e31b815260040160405180910390fd5b6000818152600760205260409020541561142a57610683600682611ebf565b6000818152600560205260409020541561144957610683600482611ebf565b60405163148fe22160e11b815260040160405180910390fd5b50565b600954829081106114895760405163aba4733960e01b815260040160405180910390fd5b8260026009828154811061149f5761149f6126c5565b600091825260209091206002600990920201015460ff1660038111156114c7576114c76123a6565b036114e55760405163195332a560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461152e576040516313bd2e8360e31b815260040160405180910390fd5b6115388486611837565b6115555760405163148fe22160e11b815260040160405180910390fd5b61158b856009868154811061156c5761156c6126c5565b9060005260206000209060090201600601611f0b90919063ffffffff16565b6115cd576115c78584600987815481106115a7576115a76126c5565b9060005260206000209060090201600601611f179092919063ffffffff16565b50610770565b60006115e68660098781548110610820576108206126c5565b9050610cfc866115f68684612910565b600988815481106115a7576115a76126c5565b611611611f24565b61161b6000611f83565b565b611628600133611e9d565b61164557604051630b094f2760e31b815260040160405180910390fd5b60036106838282612923565b600854600090829081106116785760405163aba4733960e01b815260040160405180910390fd5b6008838154811061168b5761168b6126c5565b60009182526020909120600560069092020101549392505050565b600854829081106116ca5760405163aba4733960e01b815260040160405180910390fd5b6116d5600133611e9d565b6116f257604051630b094f2760e31b815260040160405180910390fd5b6117288260088581548110611709576117096126c5565b9060005260206000209060060201600301611ebf90919063ffffffff16565b5060405163249ea98f60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063927aa63c90610cce903090879087906004016126db565b606060038054611788906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546117b4906126fc565b80156118015780601f106117d657610100808354040283529160200191611801565b820191906000526020600020905b8154815290600101906020018083116117e457829003601f168201915b5050505050905090565b611813611f24565b610683600182611fd3565b60006110716004611ef5565b6000610f30600483611eff565b6009546000908390811061185e5760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611875576118756126c5565b9060005260206000209060090201600401611e7990919063ffffffff16565b600954600090829081106118bb5760405163aba4733960e01b815260040160405180910390fd5b610b9b600984815481106118d1576118d16126c5565b9060005260206000209060090201600601611fe8565b6008546000908390811061190e5760405163aba4733960e01b815260040160405180910390fd5b611919600133611e9d565b61193657604051630b094f2760e31b815260040160405180910390fd5b6009805460018101808355600083815291929083908110611959576119596126c5565b6000918252602090912060099091020182815590506119788580612730565b60018301916119889190836127c6565b5060028101805460ff191690556119a260208601866128b0565b6119b09160038401916122c5565b50600886815481106119c4576119c46126c5565b60009182526020808320600560069093020191909101805460018101825590835291200182905560405163546c8d8160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a8d91b0290611a3b9030908a9087906004016126db565b600060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b509398975050505050505050565b60006110716006611ef5565b6000610f30600683611eff565b611a9b600133611e9d565b611ab857604051630b094f2760e31b815260040160405180910390fd5b600081815260076020526040902054611ae457604051637146096160e01b815260040160405180910390fd5b611aef600682611ebf565b5060405163ed94a4d560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ed94a4d590604401610742565b6000818152600760205260408120541515610f30565b60085482908110611b7d5760405163aba4733960e01b815260040160405180910390fd5b611b88600133611e9d565b611ba557604051630b094f2760e31b815260040160405180910390fd5b611bdb8260088581548110611bbc57611bbc6126c5565b9060005260206000209060060201600301611e9190919063ffffffff16565b50604051630f20644960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c81912490610cce903090879087906004016126db565b6000818152600560205260408120541515610f30565b6000610f30600183611eff565b60095460009083908110611c765760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611c8d57611c8d6126c5565b9060005260206000209060090201600401611eff90919063ffffffff16565b611cb4611f24565b610683600182611ff3565b611cea6040805160808101825260008082526060602083015290918201908152602001600081525090565b60085482908110611d0e5760405163aba4733960e01b815260040160405180910390fd5b600060088481548110611d2357611d236126c5565b906000526020600020906006020190506000604051806080016040528083600001548152602001836001018054611d59906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d85906126fc565b8015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b5050509183525050600284015460209091019060ff166003811115611df957611df96123a6565b815260059093015460209093019290925250915050919050565b61146281612008565b60085460009083908110611e435760405163aba4733960e01b815260040160405180910390fd5b61083f8360088681548110611e5a57611e5a6126c5565b9060005260206000209060060201600301611e7990919063ffffffff16565b60009081526001919091016020526040902054151590565b6000610b9b838361207e565b6001600160a01b03811660009081526001830160205260408120541515610b9b565b6000610b9b83836120cd565b6000808080611eda86866121c0565b909450925050505b9250929050565b6000610b9b83836121eb565b6000610f30825490565b6000610b9b838361225b565b6000610b9b8383612285565b600061083f84848461229d565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b9b836001600160a01b0384166120cd565b6000610f30826122ba565b6000610b9b836001600160a01b03841661207e565b612010611f24565b6001600160a01b0381166120755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611f7a565b61146281611f83565b60008181526001830160205260408120546120c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f30565b506000610f30565b600081815260018301602052604081205480156121b65760006120f16001836129e3565b8554909150600090612105906001906129e3565b905081811461216a576000866000018281548110612125576121256126c5565b9060005260206000200154905080876000018481548110612148576121486126c5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061217b5761217b6129f6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f30565b6000915050610f30565b600080806121ce8585611eff565b600081815260029690960160205260409095205494959350505050565b60008181526002830160205260408120548015158061220f575061220f8484612285565b610b9b5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401611f7a565b6000826000018281548110612272576122726126c5565b9060005260206000200154905092915050565b60008181526001830160205260408120541515610b9b565b6000828152600284016020526040812082905561083f8484611e91565b6000610f3082611ef5565b828054828255906000526020600020908101928215612300579160200282015b828111156123005782358255916020019190600101906122e5565b5061230c929150612310565b5090565b5b8082111561230c5760008155600101612311565b60006020828403121561233757600080fd5b5035919050565b6000806040838503121561235157600080fd5b50508035926020909101359150565b6000815180845260005b818110156123865760208185018101518683018201520161236a565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6004811061146257634e487b7160e01b600052602160045260246000fd5b6000602080835283518184015280840151608060408501526123ff60a0850182612360565b9050604085015161240f816123bc565b606085810191909152850151848203601f19016080860152805180835290830191600091908401905b808310156124585783518252928401926001929092019190840190612438565b509695505050505050565b600060408284031215610b4257600080fd5b6000806040838503121561248857600080fd5b82359150602083013567ffffffffffffffff8111156124a657600080fd5b6124b285828601612463565b9150509250929050565b600080604083850312156124cf57600080fd5b82359150602083013567ffffffffffffffff8111156124ed57600080fd5b8301606081860312156124ff57600080fd5b809150509250929050565b60006020828403121561251c57600080fd5b81356001600160a01b0381168114610b9b57600080fd5b60006020828403121561254557600080fd5b813567ffffffffffffffff81111561255c57600080fd5b820160208185031215610b9b57600080fd5b60008060006060848603121561258357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156125c257600080fd5b813567ffffffffffffffff808211156125da57600080fd5b818401915084601f8301126125ee57600080fd5b8135818111156126005761260061259a565b604051601f8201601f19908116603f011681019083821181831017156126285761262861259a565b8160405282815287602084870101111561264157600080fd5b826020860160208301376000928101602001929092525095945050505050565b602081526000610b9b6020830184612360565b6020815281516020820152600060208301516080604084015261269a60a0840182612360565b905060408401516126aa816123bc565b80606085015250606084015160808401528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b600181811c9082168061271057607f821691505b602082108103610b4257634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261274757600080fd5b83018035915067ffffffffffffffff82111561276257600080fd5b602001915036819003821315611ee257600080fd5b601f8211156127c157600081815260208120601f850160051c8101602086101561279e5750805b601f850160051c820191505b818110156127bd578281556001016127aa565b5050505b505050565b67ffffffffffffffff8311156127de576127de61259a565b6127f2836127ec83546126fc565b83612777565b6000601f841160018114612826576000851561280e5750838201355b600019600387901b1c1916600186901b178355610770565b600083815260209020601f19861690835b828110156128575786850135825560209485019460019092019101612837565b50868210156128745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6004811061146257600080fd5b6000602082840312156128a557600080fd5b8135610b9b81612886565b6000808335601e198436030181126128c757600080fd5b83018035915067ffffffffffffffff8211156128e257600080fd5b6020019150600581901b3603821315611ee257600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610f3057610f306128fa565b815167ffffffffffffffff81111561293d5761293d61259a565b6129518161294b84546126fc565b84612777565b602080601f831160018114612986576000841561296e5750858301515b600019600386901b1c1916600185901b1785556127bd565b600085815260208120601f198616915b828110156129b557888601518255948401946001909101908401612996565b50858210156129d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610f3057610f306128fa565b634e487b7160e01b600052603160045260246000fdfea264697066735822122043646037aad8e0a325f3f5495dc99ecdd5d04d14719e319ffac2e33e9493f94264736f6c63430008110033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2DFB CODESIZE SUB DUP1 PUSH3 0x2DFB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xF1 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x5D JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 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 AND PUSH1 0x80 MSTORE PUSH3 0x74 CALLER PUSH3 0x8B JUMP JUMPDEST PUSH1 0x3 PUSH3 0x82 DUP3 DUP3 PUSH3 0x276 JUMP JUMPDEST POP POP POP PUSH3 0x342 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x11D 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 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0xDB 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 0x192 JUMPI PUSH3 0x192 PUSH3 0xDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH3 0x1CF JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH3 0x1B0 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x21D 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 0x271 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 0x24C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x26D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x258 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 0x292 JUMPI PUSH3 0x292 PUSH3 0xDB JUMP JUMPDEST PUSH3 0x2AA DUP2 PUSH3 0x2A3 DUP5 SLOAD PUSH3 0x1E7 JUMP JUMPDEST DUP5 PUSH3 0x223 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x2E2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x2C9 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 0x26D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x313 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2F2 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x332 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 0x2A42 PUSH3 0x3B9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4AE ADD MSTORE DUP2 DUP2 PUSH2 0x60D ADD MSTORE DUP2 DUP2 PUSH2 0x70F ADD MSTORE DUP2 DUP2 PUSH2 0x93D ADD MSTORE DUP2 DUP2 PUSH2 0xC9B ADD MSTORE DUP2 DUP2 PUSH2 0xEEC ADD MSTORE DUP2 DUP2 PUSH2 0x102C ADD MSTORE DUP2 DUP2 PUSH2 0x1123 ADD MSTORE DUP2 DUP2 PUSH2 0x13CD ADD MSTORE DUP2 DUP2 PUSH2 0x14F0 ADD MSTORE DUP2 DUP2 PUSH2 0x1740 ADD MSTORE DUP2 DUP2 PUSH2 0x1A02 ADD MSTORE DUP2 DUP2 PUSH2 0x1B0C ADD MSTORE PUSH2 0x1BF3 ADD MSTORE PUSH2 0x2A42 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 0x274 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D542A4F GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xC591493F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xD7511957 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xD7511957 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0xDAF91FFC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xE43252D7 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF0F3F2C8 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5DC JUMPI DUP1 PUSH4 0xFAD001A2 EQ PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC591493F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0xC59DB1AF EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xC763BBF4 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0xC7EA81FC EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xD50C7377 EQ PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA4C52B86 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xAB3545E5 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xAB4FBAC3 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAD91A095 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xAFCEFA71 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xBD9D867C EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D542A4F EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x86A92AF7 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x8AB1D681 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x997072F7 EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x52DD4EB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x52DD4EB1 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x67DFD4C9 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x6989FD6B EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0x750521F5 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x76A79DCC EQ PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0x3E2DE334 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x3EDFF20F EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x41AAFEF7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x49386C56 EQ PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0x254C290D EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2565D6C5 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x2825EE48 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x2A10FB85 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49878F3 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x6E30412 EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x7450ADC EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xE1E20A2 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x1599BEA5 EQ PUSH2 0x2EF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28C PUSH2 0x29C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x687 JUMP JUMPDEST PUSH2 0x2B4 PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xD05 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x24BC JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2E1 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0xF36 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2533 JUMP JUMPDEST PUSH2 0x1076 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1187 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x256E JUMP JUMPDEST PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x1609 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x25B0 JUMP JUMPDEST PUSH2 0x161D JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x45C PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x180B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x181E JUMP JUMPDEST PUSH2 0x489 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x182A JUMP JUMPDEST PUSH2 0x381 PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0x18E7 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1A77 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x532 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x558 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1B59 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x57E CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C2C JUMP JUMPDEST PUSH2 0x489 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1C4F JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1CAC JUMP JUMPDEST PUSH2 0x5CF PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1E13 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1E1C JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x678 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40803A5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x692 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6E6 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH2 0x6F2 PUSH1 0x4 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x16B726E5 PUSH1 0xE0 SHL 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 0x16B726E5 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x770 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x9 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x7A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1EE9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x881 JUMPI PUSH2 0x881 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH2 0x8A9 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x8C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8D2 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x8EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x906 JUMPI PUSH2 0x906 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x5EDB401 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2F6DA008 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xA0A JUMPI PUSH2 0xA0A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xA40 SWAP1 PUSH2 0x26FC 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 0xA6C SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAB9 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 0xA9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0xB33 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 0xB1F JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP5 POP POP POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB85 JUMPI PUSH2 0xB85 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EF5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xBC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xBEE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBF8 DUP3 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC0B JUMPI PUSH2 0xC0B PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xC29 SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xC3A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC7A PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD PUSH4 0x96937B43 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x96937B43 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD92 JUMPI PUSH2 0xD92 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDBA JUMPI PUSH2 0xDBA PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xDD8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDE3 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xE00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE0A DUP4 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xE1D JUMPI PUSH2 0xE1D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xE4C PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x9 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xE5F JUMPI PUSH2 0xE5F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE8C JUMPI PUSH2 0xE8C PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE9E PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x28B0 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xEB1 JUMPI PUSH2 0xEB1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x3 ADD SWAP2 SWAP1 PUSH2 0xECF SWAP3 SWAP2 SWAP1 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x36987631 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6D30EC62 SWAP1 PUSH1 0x44 ADD PUSH2 0x976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1E9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xF70 JUMPI PUSH2 0xF70 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF98 JUMPI PUSH2 0xF98 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xFB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFC1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFDE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1014 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xFF5 JUMPI PUSH2 0xFF5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x14E2F8E9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x538BE3A4 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x1 PUSH2 0x1EF5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1083 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x10A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x10C3 JUMPI PUSH2 0x10C3 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x10E2 DUP5 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x10F2 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0xA843DDB PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x5421EED8 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x117B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x11AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x11C5 JUMPI PUSH2 0x11C5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x8 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x122B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1240 JUMPI PUSH2 0x1240 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1262 JUMPI PUSH2 0x1262 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x12BA SWAP1 PUSH2 0x26FC 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 0x12E6 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1333 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1308 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1333 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 0x1316 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x135A JUMPI PUSH2 0x135A PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0x13AD 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 0x1399 JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x140B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x142A JUMPI PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1449 JUMPI PUSH2 0x683 PUSH1 0x4 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1489 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x149F JUMPI PUSH2 0x149F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C7 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x14E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x152E JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1538 DUP5 DUP7 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1555 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x158B DUP6 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x156C JUMPI PUSH2 0x156C PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F0B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15CD JUMPI PUSH2 0x15C7 DUP6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x770 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP7 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 POP PUSH2 0xCFC DUP7 PUSH2 0x15F6 DUP7 DUP5 PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x9 DUP9 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST PUSH2 0x1611 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x161B PUSH1 0x0 PUSH2 0x1F83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1628 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1645 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x683 DUP3 DUP3 PUSH2 0x2923 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x168B JUMPI PUSH2 0x168B PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD SLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16D5 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1728 DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1709 JUMPI PUSH2 0x1709 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x249EA98F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x927AA63C SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1788 SWAP1 PUSH2 0x26FC 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 0x17B4 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1801 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17D6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1801 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 0x17E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1813 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FD3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x4 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x4 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1875 JUMPI PUSH2 0x1875 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x18BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x18D1 JUMPI PUSH2 0x18D1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1FE8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1919 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1936 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1959 JUMPI PUSH2 0x1959 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x9 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x1978 DUP6 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x1988 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x19A2 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0x19B0 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x546C8D81 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA8D91B02 SWAP1 PUSH2 0x1A3B SWAP1 ADDRESS SWAP1 DUP11 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x6 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x6 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x1A9B PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1AB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1AE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AEF PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xED94A4D5 PUSH1 0xE0 SHL 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 0xED94A4D5 SWAP1 PUSH1 0x44 ADD PUSH2 0x742 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1B7D JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B88 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1BA5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDB DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF206449 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3C819124 SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1C76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1C8D JUMPI PUSH2 0x1C8D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1CB4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FF3 JUMP JUMPDEST PUSH2 0x1CEA PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1D0E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1D23 JUMPI PUSH2 0x1D23 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1D59 SWAP1 PUSH2 0x26FC 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 0x1D85 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1DA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DD2 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 0x1DB5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1DF9 JUMPI PUSH2 0x1DF9 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP4 ADD SLOAD PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1E43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1E5A JUMPI PUSH2 0x1E5A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1EDA DUP7 DUP7 PUSH2 0x21C0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x2285 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83F DUP5 DUP5 DUP5 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x161B 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x207E JUMP JUMPDEST PUSH2 0x2010 PUSH2 0x1F24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x1F83 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x20C5 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 0xF30 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21B6 JUMPI PUSH1 0x0 PUSH2 0x20F1 PUSH1 0x1 DUP4 PUSH2 0x29E3 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2105 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x216A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2125 JUMPI PUSH2 0x2125 PUSH2 0x26C5 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 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x26C5 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 0x217B JUMPI PUSH2 0x217B PUSH2 0x29F6 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 0xF30 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x21CE DUP6 DUP6 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0x220F JUMPI POP PUSH2 0x220F DUP5 DUP5 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0xB9B 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2272 JUMPI PUSH2 0x2272 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x83F DUP5 DUP5 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x1EF5 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2300 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2300 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22E5 JUMP JUMPDEST POP PUSH2 0x230C SWAP3 SWAP2 POP PUSH2 0x2310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x230C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2311 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2386 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x236A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x23FF PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x240F DUP2 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x1F NOT ADD PUSH1 0x80 DUP7 ADD MSTORE DUP1 MLOAD DUP1 DUP4 MSTORE SWAP1 DUP4 ADD SWAP2 PUSH1 0x0 SWAP2 SWAP1 DUP5 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2458 JUMPI DUP4 MLOAD DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x2438 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24B2 DUP6 DUP3 DUP7 ADD PUSH2 0x2463 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x60 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x24FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x255C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2600 JUMPI PUSH2 0x2600 PUSH2 0x259A 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 0x2628 JUMPI PUSH2 0x2628 PUSH2 0x259A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB9B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x269A PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x26AA DUP2 PUSH2 0x23BC JUMP JUMPDEST DUP1 PUSH1 0x60 DUP6 ADD MSTORE POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2710 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xB42 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x27C1 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 0x279E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27BD JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27AA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x27DE JUMPI PUSH2 0x27DE PUSH2 0x259A JUMP JUMPDEST PUSH2 0x27F2 DUP4 PUSH2 0x27EC DUP4 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP4 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2826 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x280E 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 0x770 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2857 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2837 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x2874 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 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB9B DUP2 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x28C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293D PUSH2 0x259A JUMP JUMPDEST PUSH2 0x2951 DUP2 PUSH2 0x294B DUP5 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP5 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2986 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x296E 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 0x27BD JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x29B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2996 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x29D3 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 DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA 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 NUMBER PUSH5 0x6037AAD8E0 LOG3 0x25 RETURN CREATE2 0x49 0x5D 0xC9 SWAP15 0xCD 0xD5 0xD0 0x4D EQ PUSH18 0x9E319FFAC2E33E9493F94264736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"504:11947:83:-:0;;;1343:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1411:3;-1:-1:-1;;;;;311:17:61;;307:56;;337:26;;-1:-1:-1;;;337:26:61;;;;;;;;;;;307:56;-1:-1:-1;;;;;373:9:61;;;936:32:19;719:10:47;936:18:19;:32::i;:::-;1426:12:83::1;:26;1441:11:::0;1426:12;:26:::1;:::i;:::-;;1343:116:::0;;504:11947;;2433:187:19;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:127:89:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1209;235:6;243;296:2;284:9;275:7;271:23;267:32;264:52;;;312:1;309;302:12;264:52;338:16;;-1:-1:-1;;;;;383:31:89;;373:42;;363:70;;429:1;426;419:12;363:70;476:2;507:18;;;501:25;452:5;;-1:-1:-1;476:2:89;-1:-1:-1;;;;;575:14:89;;;572:34;;;602:1;599;592:12;572:34;640:6;629:9;625:22;615:32;;685:7;678:4;674:2;670:13;666:27;656:55;;707:1;704;697:12;656:55;736:2;730:9;758:2;754;751:10;748:36;;;764:18;;:::i;:::-;839:2;833:9;807:2;893:13;;-1:-1:-1;;889:22:89;;;913:2;885:31;881:40;869:53;;;937:18;;;957:22;;;934:46;931:72;;;983:18;;:::i;:::-;1023:10;1019:2;1012:22;1058:2;1050:6;1043:18;1098:7;1093:2;1088;1084;1080:11;1076:20;1073:33;1070:53;;;1119:1;1116;1109:12;1070:53;1141:1;1132:10;;1151:129;1165:2;1162:1;1159:9;1151:129;;;1253:10;;;1249:19;;1243:26;1222:14;;;1218:23;;1211:59;1176:10;;;;1151:129;;;1322:1;1317:2;1312;1304:6;1300:15;1296:24;1289:35;1343:6;1333:16;;;;;;;;146:1209;;;;;:::o;1360:380::-;1439:1;1435:12;;;;1482;;;1503:61;;1557:4;1549:6;1545:17;1535:27;;1503:61;1610:2;1602:6;1599:14;1579:18;1576:38;1573:161;;1656:10;1651:3;1647:20;1644:1;1637:31;1691:4;1688:1;1681:15;1719:4;1716:1;1709:15;1573:161;;1360:380;;;:::o;1871:545::-;1973:2;1968:3;1965:11;1962:448;;;2009:1;2034:5;2030:2;2023:17;2079:4;2075:2;2065:19;2149:2;2137:10;2133:19;2130:1;2126:27;2120:4;2116:38;2185:4;2173:10;2170:20;2167:47;;;-1:-1:-1;2208:4:89;2167:47;2263:2;2258:3;2254:12;2251:1;2247:20;2241:4;2237:31;2227:41;;2318:82;2336:2;2329:5;2326:13;2318:82;;;2381:17;;;2362:1;2351:13;2318:82;;;2322:3;;;1962:448;1871:545;;;:::o;2592:1352::-;2712:10;;-1:-1:-1;;;;;2734:30:89;;2731:56;;;2767:18;;:::i;:::-;2796:97;2886:6;2846:38;2878:4;2872:11;2846:38;:::i;:::-;2840:4;2796:97;:::i;:::-;2948:4;;3012:2;3001:14;;3029:1;3024:663;;;;3731:1;3748:6;3745:89;;;-1:-1:-1;3800:19:89;;;3794:26;3745:89;-1:-1:-1;;2549:1:89;2545:11;;;2541:24;2537:29;2527:40;2573:1;2569:11;;;2524:57;3847:81;;2994:944;;3024:663;1818:1;1811:14;;;1855:4;1842:18;;-1:-1:-1;;3060:20:89;;;3178:236;3192:7;3189:1;3186:14;3178:236;;;3281:19;;;3275:26;3260:42;;3373:27;;;;3341:1;3329:14;;;;3208:19;;3178:236;;;3182:3;3442:6;3433:7;3430:19;3427:201;;;3503:19;;;3497:26;-1:-1:-1;;3586:1:89;3582:14;;;3598:3;3578:24;3574:37;3570:42;3555:58;3540:74;;3427:201;-1:-1:-1;;;;;3674:1:89;3658:14;;;3654:22;3641:36;;-1:-1:-1;2592:1352:89:o;:::-;504:11947:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@HUB_21019":{"entryPoint":null,"id":21019,"parameterSlots":0,"returnSlots":0},"@_add_19260":{"entryPoint":8318,"id":19260,"parameterSlots":2,"returnSlots":1},"@_at_19394":{"entryPoint":8795,"id":19394,"parameterSlots":2,"returnSlots":1},"@_checkOwner_5582":{"entryPoint":7972,"id":5582,"parameterSlots":0,"returnSlots":0},"@_contains_19363":{"entryPoint":null,"id":19363,"parameterSlots":2,"returnSlots":1},"@_length_19377":{"entryPoint":null,"id":19377,"parameterSlots":1,"returnSlots":1},"@_msgSender_14314":{"entryPoint":null,"id":14314,"parameterSlots":0,"returnSlots":1},"@_remove_19344":{"entryPoint":8397,"id":19344,"parameterSlots":2,"returnSlots":1},"@_transferOwnership_5639":{"entryPoint":8067,"id":5639,"parameterSlots":1,"returnSlots":0},"@addProjectMember_23657":{"entryPoint":7001,"id":23657,"parameterSlots":2,"returnSlots":0},"@addTaskMember_24106":{"entryPoint":2119,"id":24106,"parameterSlots":2,"returnSlots":0},"@addToWhitelist_21204":{"entryPoint":7340,"id":21204,"parameterSlots":1,"returnSlots":0},"@add_19430":{"entryPoint":null,"id":19430,"parameterSlots":2,"returnSlots":1},"@add_19560":{"entryPoint":8179,"id":19560,"parameterSlots":2,"returnSlots":1},"@add_19711":{"entryPoint":7825,"id":19711,"parameterSlots":2,"returnSlots":1},"@approvePendingMember_23364":{"entryPoint":1671,"id":23364,"parameterSlots":1,"returnSlots":0},"@at_18215":{"entryPoint":8640,"id":18215,"parameterSlots":2,"returnSlots":2},"@at_18449":{"entryPoint":7883,"id":18449,"parameterSlots":2,"returnSlots":2},"@at_19499":{"entryPoint":null,"id":19499,"parameterSlots":2,"returnSlots":1},"@at_19656":{"entryPoint":null,"id":19656,"parameterSlots":2,"returnSlots":1},"@at_19789":{"entryPoint":7935,"id":19789,"parameterSlots":2,"returnSlots":1},"@contains_18171":{"entryPoint":8837,"id":18171,"parameterSlots":2,"returnSlots":1},"@contains_18400":{"entryPoint":7947,"id":18400,"parameterSlots":2,"returnSlots":1},"@contains_19466":{"entryPoint":null,"id":19466,"parameterSlots":2,"returnSlots":1},"@contains_19614":{"entryPoint":7837,"id":19614,"parameterSlots":2,"returnSlots":1},"@contains_19753":{"entryPoint":7801,"id":19753,"parameterSlots":2,"returnSlots":1},"@createProject_23581":{"entryPoint":4214,"id":23581,"parameterSlots":1,"returnSlots":1},"@createTask_24016":{"entryPoint":6375,"id":24016,"parameterSlots":2,"returnSlots":1},"@getMemberCount_23167":{"entryPoint":6174,"id":23167,"parameterSlots":0,"returnSlots":1},"@getMember_23182":{"entryPoint":6186,"id":23182,"parameterSlots":1,"returnSlots":1},"@getMetadataURI_23155":{"entryPoint":6009,"id":23155,"parameterSlots":0,"returnSlots":1},"@getPendingMemberCount_23209":{"entryPoint":6775,"id":23209,"parameterSlots":0,"returnSlots":1},"@getPendingMember_23224":{"entryPoint":6787,"id":23224,"parameterSlots":1,"returnSlots":1},"@getProjectCount_23412":{"entryPoint":null,"id":23412,"parameterSlots":0,"returnSlots":1},"@getProjectMemberCount_23473":{"entryPoint":2888,"id":23473,"parameterSlots":1,"returnSlots":1},"@getProjectMember_23495":{"entryPoint":4487,"id":23495,"parameterSlots":2,"returnSlots":1},"@getProject_23454":{"entryPoint":7359,"id":23454,"parameterSlots":1,"returnSlots":1},"@getTaskCount_23709":{"entryPoint":5713,"id":23709,"parameterSlots":1,"returnSlots":1},"@getTaskLoggedTimeCount_23884":{"entryPoint":6292,"id":23884,"parameterSlots":1,"returnSlots":1},"@getTaskLoggedTimeOfProfile_23930":{"entryPoint":2018,"id":23930,"parameterSlots":2,"returnSlots":1},"@getTaskLoggedTime_23908":{"entryPoint":1911,"id":23908,"parameterSlots":2,"returnSlots":2},"@getTaskMemberCount_23821":{"entryPoint":3333,"id":23821,"parameterSlots":1,"returnSlots":1},"@getTaskMember_23843":{"entryPoint":7247,"id":23843,"parameterSlots":2,"returnSlots":1},"@getTask_23761":{"entryPoint":4580,"id":23761,"parameterSlots":2,"returnSlots":1},"@getTask_23802":{"entryPoint":2478,"id":23802,"parameterSlots":1,"returnSlots":1},"@getWhitelistCount_21164":{"entryPoint":4197,"id":21164,"parameterSlots":0,"returnSlots":1},"@getWhitelistMember_21177":{"entryPoint":7234,"id":21177,"parameterSlots":1,"returnSlots":1},"@get_18292":{"entryPoint":8683,"id":18292,"parameterSlots":2,"returnSlots":1},"@get_18507":{"entryPoint":7913,"id":18507,"parameterSlots":2,"returnSlots":1},"@isMember_23197":{"entryPoint":7212,"id":23197,"parameterSlots":1,"returnSlots":1},"@isPendingMember_23239":{"entryPoint":6979,"id":23239,"parameterSlots":1,"returnSlots":1},"@isProjectMember_23516":{"entryPoint":7708,"id":23516,"parameterSlots":2,"returnSlots":1},"@isTaskMember_23865":{"entryPoint":6199,"id":23865,"parameterSlots":2,"returnSlots":1},"@isWhitelisted_21190":{"entryPoint":3875,"id":21190,"parameterSlots":1,"returnSlots":1},"@join_23279":{"entryPoint":1538,"id":23279,"parameterSlots":1,"returnSlots":0},"@leave_23320":{"entryPoint":5058,"id":23320,"parameterSlots":1,"returnSlots":0},"@length_18186":{"entryPoint":8890,"id":18186,"parameterSlots":1,"returnSlots":1},"@length_18415":{"entryPoint":8168,"id":18415,"parameterSlots":1,"returnSlots":1},"@length_19481":{"entryPoint":null,"id":19481,"parameterSlots":1,"returnSlots":1},"@length_19629":{"entryPoint":null,"id":19629,"parameterSlots":1,"returnSlots":1},"@length_19768":{"entryPoint":7925,"id":19768,"parameterSlots":1,"returnSlots":1},"@owner_5568":{"entryPoint":null,"id":5568,"parameterSlots":0,"returnSlots":1},"@rejectPendingMember_23402":{"entryPoint":6800,"id":23402,"parameterSlots":1,"returnSlots":0},"@removeFromWhitelist_21218":{"entryPoint":6155,"id":21218,"parameterSlots":1,"returnSlots":0},"@removeProjectMember_23691":{"entryPoint":5798,"id":23691,"parameterSlots":2,"returnSlots":0},"@removeTaskMember_24143":{"entryPoint":3894,"id":24143,"parameterSlots":2,"returnSlots":0},"@remove_19587":{"entryPoint":8147,"id":19587,"parameterSlots":2,"returnSlots":1},"@remove_19732":{"entryPoint":7871,"id":19732,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_5596":{"entryPoint":5641,"id":5596,"parameterSlots":0,"returnSlots":0},"@setMetadataURI_23253":{"entryPoint":5661,"id":23253,"parameterSlots":1,"returnSlots":0},"@set_18129":{"entryPoint":8861,"id":18129,"parameterSlots":3,"returnSlots":1},"@set_18358":{"entryPoint":7959,"id":18358,"parameterSlots":3,"returnSlots":1},"@transferOwnership_24229":{"entryPoint":7699,"id":24229,"parameterSlots":1,"returnSlots":0},"@transferOwnership_5619":{"entryPoint":8200,"id":5619,"parameterSlots":1,"returnSlots":0},"@updateProject_23623":{"entryPoint":2978,"id":23623,"parameterSlots":2,"returnSlots":0},"@updateTaskTime_24214":{"entryPoint":5221,"id":24214,"parameterSlots":3,"returnSlots":0},"@updateTask_24069":{"entryPoint":3416,"id":24069,"parameterSlots":2,"returnSlots":0},"abi_decode_struct_UpdateProject_calldata":{"entryPoint":9315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_ProjectStatus_$22030":{"entryPoint":10387,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_TaskStatus_$22068":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":9648,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_CreateProject_$22033_calldata_ptr":{"entryPoint":9523,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":8997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_struct$_CreateTask_$22074_calldata_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_struct$_UpdateProject_$22039_calldata_ptr":{"entryPoint":9333,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_struct$_UpdateTask_$22083_calldata_ptr":{"entryPoint":9404,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":9022,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":9582,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_string":{"entryPoint":9056,"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_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9947,"id":null,"parameterSlots":4,"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":9825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_ProjectView_$22063_memory_ptr__to_t_struct$_ProjectView_$22063_memory_ptr__fromStack_reversed":{"entryPoint":9844,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_TaskView_$22111_memory_ptr__to_t_struct$_TaskView_$22111_memory_ptr__fromStack_reversed":{"entryPoint":9178,"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},"access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":10416,"id":null,"parameterSlots":2,"returnSlots":2},"access_calldata_tail_t_string_calldata_ptr":{"entryPoint":10032,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":10512,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":10723,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":10103,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage":{"entryPoint":10182,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":10531,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":9980,"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":10490,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":9126,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":10742,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9925,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9626,"id":null,"parameterSlots":0,"returnSlots":0},"validator_assert_enum_TaskStatus":{"entryPoint":9148,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_enum_ProjectStatus":{"entryPoint":10374,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15619:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:89"},"nodeType":"YulFunctionCall","src":"132:12:89"},"nodeType":"YulExpressionStatement","src":"132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:89"},"nodeType":"YulFunctionCall","src":"101:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:89"},"nodeType":"YulFunctionCall","src":"97:32:89"},"nodeType":"YulIf","src":"94:52:89"},{"nodeType":"YulAssignment","src":"155:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:89"},"nodeType":"YulFunctionCall","src":"165:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:89","type":""}],"src":"14:180:89"},{"body":{"nodeType":"YulBlock","src":"286:161:89","statements":[{"body":{"nodeType":"YulBlock","src":"332:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"341:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"344:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"334:6:89"},"nodeType":"YulFunctionCall","src":"334:12:89"},"nodeType":"YulExpressionStatement","src":"334:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"307:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"303:3:89"},"nodeType":"YulFunctionCall","src":"303:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"328:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"299:3:89"},"nodeType":"YulFunctionCall","src":"299:32:89"},"nodeType":"YulIf","src":"296:52:89"},{"nodeType":"YulAssignment","src":"357:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"380:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"367:12:89"},"nodeType":"YulFunctionCall","src":"367:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"357:6:89"}]},{"nodeType":"YulAssignment","src":"399:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"426:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"437:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"422:3:89"},"nodeType":"YulFunctionCall","src":"422:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"409:12:89"},"nodeType":"YulFunctionCall","src":"409:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"399:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"244:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"255:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"267:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"275:6:89","type":""}],"src":"199:248:89"},{"body":{"nodeType":"YulBlock","src":"581:119:89","statements":[{"nodeType":"YulAssignment","src":"591:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"603:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"614:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"599:3:89"},"nodeType":"YulFunctionCall","src":"599:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"591:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"633:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"644:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"626:6:89"},"nodeType":"YulFunctionCall","src":"626:25:89"},"nodeType":"YulExpressionStatement","src":"626:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"671:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"682:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"667:3:89"},"nodeType":"YulFunctionCall","src":"667:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"687:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"660:6:89"},"nodeType":"YulFunctionCall","src":"660:34:89"},"nodeType":"YulExpressionStatement","src":"660:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"542:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"553:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"561:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"572:4:89","type":""}],"src":"452:248:89"},{"body":{"nodeType":"YulBlock","src":"806:76:89","statements":[{"nodeType":"YulAssignment","src":"816:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"828:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"839:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"824:3:89"},"nodeType":"YulFunctionCall","src":"824:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"816:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"869:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"851:6:89"},"nodeType":"YulFunctionCall","src":"851:25:89"},"nodeType":"YulExpressionStatement","src":"851:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"775:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"786:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"797:4:89","type":""}],"src":"705:177:89"},{"body":{"nodeType":"YulBlock","src":"937:373:89","statements":[{"nodeType":"YulVariableDeclaration","src":"947:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"967:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"961:5:89"},"nodeType":"YulFunctionCall","src":"961:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"951:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"989:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"994:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"982:6:89"},"nodeType":"YulFunctionCall","src":"982:19:89"},"nodeType":"YulExpressionStatement","src":"982:19:89"},{"nodeType":"YulVariableDeclaration","src":"1010:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1019:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1014:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1081:110:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1095:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1105:4:89","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1099:2:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1137:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"1142:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:89"},"nodeType":"YulFunctionCall","src":"1133:11:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1146:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:89"},"nodeType":"YulFunctionCall","src":"1129:20:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1165:5:89"},{"name":"i","nodeType":"YulIdentifier","src":"1172:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1161:3:89"},"nodeType":"YulFunctionCall","src":"1161:13:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1176:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1157:3:89"},"nodeType":"YulFunctionCall","src":"1157:22:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1151:5:89"},"nodeType":"YulFunctionCall","src":"1151:29:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1122:6:89"},"nodeType":"YulFunctionCall","src":"1122:59:89"},"nodeType":"YulExpressionStatement","src":"1122:59:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1040:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"1043:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1037:2:89"},"nodeType":"YulFunctionCall","src":"1037:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1051:21:89","statements":[{"nodeType":"YulAssignment","src":"1053:17:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1062:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"1065:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1058:3:89"},"nodeType":"YulFunctionCall","src":"1058:12:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1053:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1033:3:89","statements":[]},"src":"1029:162:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1215:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"1220:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1211:3:89"},"nodeType":"YulFunctionCall","src":"1211:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"1229:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1207:3:89"},"nodeType":"YulFunctionCall","src":"1207:27:89"},{"kind":"number","nodeType":"YulLiteral","src":"1236:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1200:6:89"},"nodeType":"YulFunctionCall","src":"1200:38:89"},"nodeType":"YulExpressionStatement","src":"1200:38:89"},{"nodeType":"YulAssignment","src":"1247:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1262:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1275:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1283:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1271:3:89"},"nodeType":"YulFunctionCall","src":"1271:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1292:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1288:3:89"},"nodeType":"YulFunctionCall","src":"1288:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1267:3:89"},"nodeType":"YulFunctionCall","src":"1267:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1258:3:89"},"nodeType":"YulFunctionCall","src":"1258:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"1299:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1254:3:89"},"nodeType":"YulFunctionCall","src":"1254:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1247:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"914:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"921:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"929:3:89","type":""}],"src":"887:423:89"},{"body":{"nodeType":"YulBlock","src":"1347:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1364:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1371:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1376:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1367:3:89"},"nodeType":"YulFunctionCall","src":"1367:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1357:6:89"},"nodeType":"YulFunctionCall","src":"1357:31:89"},"nodeType":"YulExpressionStatement","src":"1357:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1404:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1407:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1397:6:89"},"nodeType":"YulFunctionCall","src":"1397:15:89"},"nodeType":"YulExpressionStatement","src":"1397:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1428:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1431:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1421:6:89"},"nodeType":"YulFunctionCall","src":"1421:15:89"},"nodeType":"YulExpressionStatement","src":"1421:15:89"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"1315:127:89"},{"body":{"nodeType":"YulBlock","src":"1500:159:89","statements":[{"body":{"nodeType":"YulBlock","src":"1542:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1563:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1570:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1575:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1566:3:89"},"nodeType":"YulFunctionCall","src":"1566:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1556:6:89"},"nodeType":"YulFunctionCall","src":"1556:31:89"},"nodeType":"YulExpressionStatement","src":"1556:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1607:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1610:4:89","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1600:6:89"},"nodeType":"YulFunctionCall","src":"1600:15:89"},"nodeType":"YulExpressionStatement","src":"1600:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1635:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1638:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1628:6:89"},"nodeType":"YulFunctionCall","src":"1628:15:89"},"nodeType":"YulExpressionStatement","src":"1628:15:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1523:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1530:1:89","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1520:2:89"},"nodeType":"YulFunctionCall","src":"1520:12:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1513:6:89"},"nodeType":"YulFunctionCall","src":"1513:20:89"},"nodeType":"YulIf","src":"1510:143:89"}]},"name":"validator_assert_enum_TaskStatus","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1489:5:89","type":""}],"src":"1447:212:89"},{"body":{"nodeType":"YulBlock","src":"1819:959:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1829:12:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1839:2:89","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1833:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1857:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1868:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:89"},"nodeType":"YulFunctionCall","src":"1850:21:89"},"nodeType":"YulExpressionStatement","src":"1850:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1891:9:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1902:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1887:3:89"},"nodeType":"YulFunctionCall","src":"1887:18:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1913:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1907:5:89"},"nodeType":"YulFunctionCall","src":"1907:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1880:6:89"},"nodeType":"YulFunctionCall","src":"1880:41:89"},"nodeType":"YulExpressionStatement","src":"1880:41:89"},{"nodeType":"YulVariableDeclaration","src":"1930:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1960:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"1968:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1956:3:89"},"nodeType":"YulFunctionCall","src":"1956:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1950:5:89"},"nodeType":"YulFunctionCall","src":"1950:22:89"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"1934:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1992:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2003:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1988:3:89"},"nodeType":"YulFunctionCall","src":"1988:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2008:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1981:6:89"},"nodeType":"YulFunctionCall","src":"1981:32:89"},"nodeType":"YulExpressionStatement","src":"1981:32:89"},{"nodeType":"YulVariableDeclaration","src":"2022:66:89","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"2054:12:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2072:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2083:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2068:3:89"},"nodeType":"YulFunctionCall","src":"2068:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"2036:17:89"},"nodeType":"YulFunctionCall","src":"2036:52:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"2026:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2097:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2129:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2137:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2125:3:89"},"nodeType":"YulFunctionCall","src":"2125:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2119:5:89"},"nodeType":"YulFunctionCall","src":"2119:22:89"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"2101:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"2183:14:89"}],"functionName":{"name":"validator_assert_enum_TaskStatus","nodeType":"YulIdentifier","src":"2150:32:89"},"nodeType":"YulFunctionCall","src":"2150:48:89"},"nodeType":"YulExpressionStatement","src":"2150:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2218:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2229:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2214:3:89"},"nodeType":"YulFunctionCall","src":"2214:18:89"},{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"2234:14:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2207:6:89"},"nodeType":"YulFunctionCall","src":"2207:42:89"},"nodeType":"YulExpressionStatement","src":"2207:42:89"},{"nodeType":"YulVariableDeclaration","src":"2258:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2290:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2298:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2286:3:89"},"nodeType":"YulFunctionCall","src":"2286:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2280:5:89"},"nodeType":"YulFunctionCall","src":"2280:22:89"},"variables":[{"name":"memberValue0_2","nodeType":"YulTypedName","src":"2262:14:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2322:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2333:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2318:3:89"},"nodeType":"YulFunctionCall","src":"2318:20:89"},{"arguments":[{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"2348:6:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2356:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2344:3:89"},"nodeType":"YulFunctionCall","src":"2344:22:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2372:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2368:3:89"},"nodeType":"YulFunctionCall","src":"2368:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:89"},"nodeType":"YulFunctionCall","src":"2340:36:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2311:6:89"},"nodeType":"YulFunctionCall","src":"2311:66:89"},"nodeType":"YulExpressionStatement","src":"2311:66:89"},{"nodeType":"YulVariableDeclaration","src":"2386:17:89","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"2397:6:89"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"2390:3:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2412:35:89","value":{"arguments":[{"name":"memberValue0_2","nodeType":"YulIdentifier","src":"2432:14:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2426:5:89"},"nodeType":"YulFunctionCall","src":"2426:21:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2416:6:89","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"2463:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"2471:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2456:6:89"},"nodeType":"YulFunctionCall","src":"2456:22:89"},"nodeType":"YulExpressionStatement","src":"2456:22:89"},{"nodeType":"YulAssignment","src":"2487:22:89","value":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"2498:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2506:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2494:3:89"},"nodeType":"YulFunctionCall","src":"2494:15:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2487:3:89"}]},{"nodeType":"YulVariableDeclaration","src":"2518:37:89","value":{"arguments":[{"name":"memberValue0_2","nodeType":"YulIdentifier","src":"2536:14:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2552:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2532:3:89"},"nodeType":"YulFunctionCall","src":"2532:23:89"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"2522:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2564:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"2573:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2568:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"2632:120:89","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2653:3:89"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2664:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2658:5:89"},"nodeType":"YulFunctionCall","src":"2658:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2646:6:89"},"nodeType":"YulFunctionCall","src":"2646:26:89"},"nodeType":"YulExpressionStatement","src":"2646:26:89"},{"nodeType":"YulAssignment","src":"2685:19:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2696:3:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2701:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:89"},"nodeType":"YulFunctionCall","src":"2692:12:89"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"2685:3:89"}]},{"nodeType":"YulAssignment","src":"2717:25:89","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2731:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"2739:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2727:3:89"},"nodeType":"YulFunctionCall","src":"2727:15:89"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"2717:6:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2594:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"2597:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2591:2:89"},"nodeType":"YulFunctionCall","src":"2591:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2605:18:89","statements":[{"nodeType":"YulAssignment","src":"2607:14:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2616:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"2619:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2612:3:89"},"nodeType":"YulFunctionCall","src":"2612:9:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2607:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"2587:3:89","statements":[]},"src":"2583:169:89"},{"nodeType":"YulAssignment","src":"2761:11:89","value":{"name":"pos","nodeType":"YulIdentifier","src":"2769:3:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2761:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_TaskView_$22111_memory_ptr__to_t_struct$_TaskView_$22111_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1788:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1799:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1810:4:89","type":""}],"src":"1664:1114:89"},{"body":{"nodeType":"YulBlock","src":"2859:85:89","statements":[{"body":{"nodeType":"YulBlock","src":"2898:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2907:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2910:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2900:6:89"},"nodeType":"YulFunctionCall","src":"2900:12:89"},"nodeType":"YulExpressionStatement","src":"2900:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"2880:3:89"},{"name":"offset","nodeType":"YulIdentifier","src":"2885:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2876:3:89"},"nodeType":"YulFunctionCall","src":"2876:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"2894:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2872:3:89"},"nodeType":"YulFunctionCall","src":"2872:25:89"},"nodeType":"YulIf","src":"2869:45:89"},{"nodeType":"YulAssignment","src":"2923:15:89","value":{"name":"offset","nodeType":"YulIdentifier","src":"2932:6:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2923:5:89"}]}]},"name":"abi_decode_struct_UpdateProject_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2833:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"2841:3:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2849:5:89","type":""}],"src":"2783:161:89"},{"body":{"nodeType":"YulBlock","src":"3070:316:89","statements":[{"body":{"nodeType":"YulBlock","src":"3116:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3125:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3128:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3118:6:89"},"nodeType":"YulFunctionCall","src":"3118:12:89"},"nodeType":"YulExpressionStatement","src":"3118:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3091:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3100:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3087:3:89"},"nodeType":"YulFunctionCall","src":"3087:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3112:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3083:3:89"},"nodeType":"YulFunctionCall","src":"3083:32:89"},"nodeType":"YulIf","src":"3080:52:89"},{"nodeType":"YulAssignment","src":"3141:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3164:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3151:12:89"},"nodeType":"YulFunctionCall","src":"3151:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3141:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3183:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3214:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3225:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3210:3:89"},"nodeType":"YulFunctionCall","src":"3210:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3197:12:89"},"nodeType":"YulFunctionCall","src":"3197:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3187:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3272:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3281:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3284:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3274:6:89"},"nodeType":"YulFunctionCall","src":"3274:12:89"},"nodeType":"YulExpressionStatement","src":"3274:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3244:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3252:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3241:2:89"},"nodeType":"YulFunctionCall","src":"3241:30:89"},"nodeType":"YulIf","src":"3238:50:89"},{"nodeType":"YulAssignment","src":"3297:83:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3352:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"3363:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3348:3:89"},"nodeType":"YulFunctionCall","src":"3348:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3372:7:89"}],"functionName":{"name":"abi_decode_struct_UpdateProject_calldata","nodeType":"YulIdentifier","src":"3307:40:89"},"nodeType":"YulFunctionCall","src":"3307:73:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3297:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_UpdateProject_$22039_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3028:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3039:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3051:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3059:6:89","type":""}],"src":"2949:437:89"},{"body":{"nodeType":"YulBlock","src":"3509:340:89","statements":[{"body":{"nodeType":"YulBlock","src":"3555:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3564:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3567:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3557:6:89"},"nodeType":"YulFunctionCall","src":"3557:12:89"},"nodeType":"YulExpressionStatement","src":"3557:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3530:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3539:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3526:3:89"},"nodeType":"YulFunctionCall","src":"3526:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3551:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3522:3:89"},"nodeType":"YulFunctionCall","src":"3522:32:89"},"nodeType":"YulIf","src":"3519:52:89"},{"nodeType":"YulAssignment","src":"3580:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3603:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3590:12:89"},"nodeType":"YulFunctionCall","src":"3590:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3580:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"3622:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3653:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3664:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3649:3:89"},"nodeType":"YulFunctionCall","src":"3649:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3636:12:89"},"nodeType":"YulFunctionCall","src":"3636:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3626:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3711:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3720:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3723:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3713:6:89"},"nodeType":"YulFunctionCall","src":"3713:12:89"},"nodeType":"YulExpressionStatement","src":"3713:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3683:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3691:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3680:2:89"},"nodeType":"YulFunctionCall","src":"3680:30:89"},"nodeType":"YulIf","src":"3677:50:89"},{"nodeType":"YulVariableDeclaration","src":"3736:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3750:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"3761:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3746:3:89"},"nodeType":"YulFunctionCall","src":"3746:22:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3740:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3806:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3815:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3818:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3808:6:89"},"nodeType":"YulFunctionCall","src":"3808:12:89"},"nodeType":"YulExpressionStatement","src":"3808:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3788:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3797:2:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3784:3:89"},"nodeType":"YulFunctionCall","src":"3784:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"3802:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3780:3:89"},"nodeType":"YulFunctionCall","src":"3780:25:89"},"nodeType":"YulIf","src":"3777:45:89"},{"nodeType":"YulAssignment","src":"3831:12:89","value":{"name":"_1","nodeType":"YulIdentifier","src":"3841:2:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3831:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_UpdateTask_$22083_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3467:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3478:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3490:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3498:6:89","type":""}],"src":"3391:458:89"},{"body":{"nodeType":"YulBlock","src":"3924:216:89","statements":[{"body":{"nodeType":"YulBlock","src":"3970:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3979:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3982:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3972:6:89"},"nodeType":"YulFunctionCall","src":"3972:12:89"},"nodeType":"YulExpressionStatement","src":"3972:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3945:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"3954:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3941:3:89"},"nodeType":"YulFunctionCall","src":"3941:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"3966:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3937:3:89"},"nodeType":"YulFunctionCall","src":"3937:32:89"},"nodeType":"YulIf","src":"3934:52:89"},{"nodeType":"YulVariableDeclaration","src":"3995:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4021:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4008:12:89"},"nodeType":"YulFunctionCall","src":"4008:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3999:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4094:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4103:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4106:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4096:6:89"},"nodeType":"YulFunctionCall","src":"4096:12:89"},"nodeType":"YulExpressionStatement","src":"4096:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4053:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4064:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4079:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4084:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4075:3:89"},"nodeType":"YulFunctionCall","src":"4075:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"4088:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4071:3:89"},"nodeType":"YulFunctionCall","src":"4071:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4060:3:89"},"nodeType":"YulFunctionCall","src":"4060:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4050:2:89"},"nodeType":"YulFunctionCall","src":"4050:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4043:6:89"},"nodeType":"YulFunctionCall","src":"4043:50:89"},"nodeType":"YulIf","src":"4040:70:89"},{"nodeType":"YulAssignment","src":"4119:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"4129:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4119:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3890:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3901:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3913:6:89","type":""}],"src":"3854:286:89"},{"body":{"nodeType":"YulBlock","src":"4240:92:89","statements":[{"nodeType":"YulAssignment","src":"4250:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4262:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4273:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4258:3:89"},"nodeType":"YulFunctionCall","src":"4258:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4250:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4292:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4317:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4310:6:89"},"nodeType":"YulFunctionCall","src":"4310:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4303:6:89"},"nodeType":"YulFunctionCall","src":"4303:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4285:6:89"},"nodeType":"YulFunctionCall","src":"4285:41:89"},"nodeType":"YulExpressionStatement","src":"4285:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4220:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4231:4:89","type":""}],"src":"4145:187:89"},{"body":{"nodeType":"YulBlock","src":"4441:289:89","statements":[{"body":{"nodeType":"YulBlock","src":"4487:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4496:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4499:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4489:6:89"},"nodeType":"YulFunctionCall","src":"4489:12:89"},"nodeType":"YulExpressionStatement","src":"4489:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4462:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4471:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4458:3:89"},"nodeType":"YulFunctionCall","src":"4458:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4483:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4454:3:89"},"nodeType":"YulFunctionCall","src":"4454:32:89"},"nodeType":"YulIf","src":"4451:52:89"},{"nodeType":"YulVariableDeclaration","src":"4512:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4539:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4526:12:89"},"nodeType":"YulFunctionCall","src":"4526:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4516:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4592:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4601:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4604:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4594:6:89"},"nodeType":"YulFunctionCall","src":"4594:12:89"},"nodeType":"YulExpressionStatement","src":"4594:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4564:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4572:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4561:2:89"},"nodeType":"YulFunctionCall","src":"4561:30:89"},"nodeType":"YulIf","src":"4558:50:89"},{"nodeType":"YulVariableDeclaration","src":"4617:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4631:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4642:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4627:3:89"},"nodeType":"YulFunctionCall","src":"4627:22:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4621:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4687:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4696:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4699:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4689:6:89"},"nodeType":"YulFunctionCall","src":"4689:12:89"},"nodeType":"YulExpressionStatement","src":"4689:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4669:7:89"},{"name":"_1","nodeType":"YulIdentifier","src":"4678:2:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4665:3:89"},"nodeType":"YulFunctionCall","src":"4665:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"4683:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4661:3:89"},"nodeType":"YulFunctionCall","src":"4661:25:89"},"nodeType":"YulIf","src":"4658:45:89"},{"nodeType":"YulAssignment","src":"4712:12:89","value":{"name":"_1","nodeType":"YulIdentifier","src":"4722:2:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4712:6:89"}]}]},"name":"abi_decode_tuple_t_struct$_CreateProject_$22033_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4407:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4418:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4430:6:89","type":""}],"src":"4337:393:89"},{"body":{"nodeType":"YulBlock","src":"4839:212:89","statements":[{"body":{"nodeType":"YulBlock","src":"4885:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4894:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4897:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4887:6:89"},"nodeType":"YulFunctionCall","src":"4887:12:89"},"nodeType":"YulExpressionStatement","src":"4887:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4860:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4869:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4856:3:89"},"nodeType":"YulFunctionCall","src":"4856:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4881:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4852:3:89"},"nodeType":"YulFunctionCall","src":"4852:32:89"},"nodeType":"YulIf","src":"4849:52:89"},{"nodeType":"YulAssignment","src":"4910:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4933:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4920:12:89"},"nodeType":"YulFunctionCall","src":"4920:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4910:6:89"}]},{"nodeType":"YulAssignment","src":"4952:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4979:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4990:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4975:3:89"},"nodeType":"YulFunctionCall","src":"4975:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4962:12:89"},"nodeType":"YulFunctionCall","src":"4962:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4952:6:89"}]},{"nodeType":"YulAssignment","src":"5003:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5030:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5041:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5026:3:89"},"nodeType":"YulFunctionCall","src":"5026:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5013:12:89"},"nodeType":"YulFunctionCall","src":"5013:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5003:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4789:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4800:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4812:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4820:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4828:6:89","type":""}],"src":"4735:316:89"},{"body":{"nodeType":"YulBlock","src":"5088:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5105:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5112:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5117:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5108:3:89"},"nodeType":"YulFunctionCall","src":"5108:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5098:6:89"},"nodeType":"YulFunctionCall","src":"5098:31:89"},"nodeType":"YulExpressionStatement","src":"5098:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5145:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5148:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5138:6:89"},"nodeType":"YulFunctionCall","src":"5138:15:89"},"nodeType":"YulExpressionStatement","src":"5138:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5169:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5172:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5162:6:89"},"nodeType":"YulFunctionCall","src":"5162:15:89"},"nodeType":"YulExpressionStatement","src":"5162:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"5056:127:89"},{"body":{"nodeType":"YulBlock","src":"5268:842:89","statements":[{"body":{"nodeType":"YulBlock","src":"5314:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5323:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5326:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5316:6:89"},"nodeType":"YulFunctionCall","src":"5316:12:89"},"nodeType":"YulExpressionStatement","src":"5316:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5289:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5298:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5285:3:89"},"nodeType":"YulFunctionCall","src":"5285:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5310:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5281:3:89"},"nodeType":"YulFunctionCall","src":"5281:32:89"},"nodeType":"YulIf","src":"5278:52:89"},{"nodeType":"YulVariableDeclaration","src":"5339:37:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5366:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5353:12:89"},"nodeType":"YulFunctionCall","src":"5353:23:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5343:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5385:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"5395:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5389:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5440:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5449:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5452:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5442:6:89"},"nodeType":"YulFunctionCall","src":"5442:12:89"},"nodeType":"YulExpressionStatement","src":"5442:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5428:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5436:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5425:2:89"},"nodeType":"YulFunctionCall","src":"5425:14:89"},"nodeType":"YulIf","src":"5422:34:89"},{"nodeType":"YulVariableDeclaration","src":"5465:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5479:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5490:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5475:3:89"},"nodeType":"YulFunctionCall","src":"5475:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5469:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5545:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5554:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5557:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5547:6:89"},"nodeType":"YulFunctionCall","src":"5547:12:89"},"nodeType":"YulExpressionStatement","src":"5547:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5524:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5528:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5520:3:89"},"nodeType":"YulFunctionCall","src":"5520:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5535:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5516:3:89"},"nodeType":"YulFunctionCall","src":"5516:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5509:6:89"},"nodeType":"YulFunctionCall","src":"5509:35:89"},"nodeType":"YulIf","src":"5506:55:89"},{"nodeType":"YulVariableDeclaration","src":"5570:26:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5593:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5580:12:89"},"nodeType":"YulFunctionCall","src":"5580:16:89"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5574:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5619:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5621:16:89"},"nodeType":"YulFunctionCall","src":"5621:18:89"},"nodeType":"YulExpressionStatement","src":"5621:18:89"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5611:2:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5615:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5608:2:89"},"nodeType":"YulFunctionCall","src":"5608:10:89"},"nodeType":"YulIf","src":"5605:36:89"},{"nodeType":"YulVariableDeclaration","src":"5650:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5664:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5660:3:89"},"nodeType":"YulFunctionCall","src":"5660:7:89"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5654:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5676:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5696:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5690:5:89"},"nodeType":"YulFunctionCall","src":"5690:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"5680:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5708:71:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5730:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5754:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5758:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5750:3:89"},"nodeType":"YulFunctionCall","src":"5750:13:89"},{"name":"_4","nodeType":"YulIdentifier","src":"5765:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5746:3:89"},"nodeType":"YulFunctionCall","src":"5746:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"5770:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5742:3:89"},"nodeType":"YulFunctionCall","src":"5742:31:89"},{"name":"_4","nodeType":"YulIdentifier","src":"5775:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5738:3:89"},"nodeType":"YulFunctionCall","src":"5738:40:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5726:3:89"},"nodeType":"YulFunctionCall","src":"5726:53:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"5712:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5838:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"5840:16:89"},"nodeType":"YulFunctionCall","src":"5840:18:89"},"nodeType":"YulExpressionStatement","src":"5840:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5797:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"5809:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5794:2:89"},"nodeType":"YulFunctionCall","src":"5794:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5817:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"5829:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5814:2:89"},"nodeType":"YulFunctionCall","src":"5814:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5791:2:89"},"nodeType":"YulFunctionCall","src":"5791:46:89"},"nodeType":"YulIf","src":"5788:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5876:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"5880:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5869:6:89"},"nodeType":"YulFunctionCall","src":"5869:22:89"},"nodeType":"YulExpressionStatement","src":"5869:22:89"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"5907:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"5915:2:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5900:6:89"},"nodeType":"YulFunctionCall","src":"5900:18:89"},"nodeType":"YulExpressionStatement","src":"5900:18:89"},{"body":{"nodeType":"YulBlock","src":"5964:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5973:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5976:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5966:6:89"},"nodeType":"YulFunctionCall","src":"5966:12:89"},"nodeType":"YulExpressionStatement","src":"5966:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5941:2:89"},{"name":"_3","nodeType":"YulIdentifier","src":"5945:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5937:3:89"},"nodeType":"YulFunctionCall","src":"5937:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"5950:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5933:3:89"},"nodeType":"YulFunctionCall","src":"5933:20:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5955:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5930:2:89"},"nodeType":"YulFunctionCall","src":"5930:33:89"},"nodeType":"YulIf","src":"5927:53:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6006:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6014:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6002:3:89"},"nodeType":"YulFunctionCall","src":"6002:15:89"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6023:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"6027:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6019:3:89"},"nodeType":"YulFunctionCall","src":"6019:11:89"},{"name":"_3","nodeType":"YulIdentifier","src":"6032:2:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"5989:12:89"},"nodeType":"YulFunctionCall","src":"5989:46:89"},"nodeType":"YulExpressionStatement","src":"5989:46:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6059:6:89"},{"name":"_3","nodeType":"YulIdentifier","src":"6067:2:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6055:3:89"},"nodeType":"YulFunctionCall","src":"6055:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"6072:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6051:3:89"},"nodeType":"YulFunctionCall","src":"6051:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"6077:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6044:6:89"},"nodeType":"YulFunctionCall","src":"6044:35:89"},"nodeType":"YulExpressionStatement","src":"6044:35:89"},{"nodeType":"YulAssignment","src":"6088:16:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"6098:6:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6088:6:89"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5234:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5245:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5257:6:89","type":""}],"src":"5188:922:89"},{"body":{"nodeType":"YulBlock","src":"6236:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6253:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6264:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6246:6:89"},"nodeType":"YulFunctionCall","src":"6246:21:89"},"nodeType":"YulExpressionStatement","src":"6246:21:89"},{"nodeType":"YulAssignment","src":"6276:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6302:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6314:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6325:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6310:3:89"},"nodeType":"YulFunctionCall","src":"6310:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"6284:17:89"},"nodeType":"YulFunctionCall","src":"6284:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6276:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6205:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6216:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6227:4:89","type":""}],"src":"6115:220:89"},{"body":{"nodeType":"YulBlock","src":"6441:102:89","statements":[{"nodeType":"YulAssignment","src":"6451:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6463:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6474:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:89"},"nodeType":"YulFunctionCall","src":"6459:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6451:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6493:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6508:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6524:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6529:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6520:3:89"},"nodeType":"YulFunctionCall","src":"6520:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"6533:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6516:3:89"},"nodeType":"YulFunctionCall","src":"6516:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6504:3:89"},"nodeType":"YulFunctionCall","src":"6504:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6486:6:89"},"nodeType":"YulFunctionCall","src":"6486:51:89"},"nodeType":"YulExpressionStatement","src":"6486:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6410:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6421:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6432:4:89","type":""}],"src":"6340:203:89"},{"body":{"nodeType":"YulBlock","src":"6666:316:89","statements":[{"body":{"nodeType":"YulBlock","src":"6712:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6721:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6724:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6714:6:89"},"nodeType":"YulFunctionCall","src":"6714:12:89"},"nodeType":"YulExpressionStatement","src":"6714:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6687:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"6696:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6683:3:89"},"nodeType":"YulFunctionCall","src":"6683:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"6708:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6679:3:89"},"nodeType":"YulFunctionCall","src":"6679:32:89"},"nodeType":"YulIf","src":"6676:52:89"},{"nodeType":"YulAssignment","src":"6737:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6760:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6747:12:89"},"nodeType":"YulFunctionCall","src":"6747:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6737:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"6779:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6810:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6821:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6806:3:89"},"nodeType":"YulFunctionCall","src":"6806:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6793:12:89"},"nodeType":"YulFunctionCall","src":"6793:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6783:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6868:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6877:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6880:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6870:6:89"},"nodeType":"YulFunctionCall","src":"6870:12:89"},"nodeType":"YulExpressionStatement","src":"6870:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6840:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6848:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6837:2:89"},"nodeType":"YulFunctionCall","src":"6837:30:89"},"nodeType":"YulIf","src":"6834:50:89"},{"nodeType":"YulAssignment","src":"6893:83:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6948:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"6959:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6944:3:89"},"nodeType":"YulFunctionCall","src":"6944:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6968:7:89"}],"functionName":{"name":"abi_decode_struct_UpdateProject_calldata","nodeType":"YulIdentifier","src":"6903:40:89"},"nodeType":"YulFunctionCall","src":"6903:73:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6893:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_struct$_CreateTask_$22074_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6624:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6635:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6647:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6655:6:89","type":""}],"src":"6548:434:89"},{"body":{"nodeType":"YulBlock","src":"7148:499:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7165:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7176:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7158:6:89"},"nodeType":"YulFunctionCall","src":"7158:21:89"},"nodeType":"YulExpressionStatement","src":"7158:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7199:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7210:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7195:3:89"},"nodeType":"YulFunctionCall","src":"7195:18:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7221:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7215:5:89"},"nodeType":"YulFunctionCall","src":"7215:13:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7188:6:89"},"nodeType":"YulFunctionCall","src":"7188:41:89"},"nodeType":"YulExpressionStatement","src":"7188:41:89"},{"nodeType":"YulVariableDeclaration","src":"7238:42:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7268:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7276:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7264:3:89"},"nodeType":"YulFunctionCall","src":"7264:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7258:5:89"},"nodeType":"YulFunctionCall","src":"7258:22:89"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"7242:12:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7300:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7311:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7296:3:89"},"nodeType":"YulFunctionCall","src":"7296:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7316:4:89","type":"","value":"0x80"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7289:6:89"},"nodeType":"YulFunctionCall","src":"7289:32:89"},"nodeType":"YulExpressionStatement","src":"7289:32:89"},{"nodeType":"YulVariableDeclaration","src":"7330:66:89","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7362:12:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7380:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7391:3:89","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7376:3:89"},"nodeType":"YulFunctionCall","src":"7376:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"7344:17:89"},"nodeType":"YulFunctionCall","src":"7344:52:89"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"7334:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7405:44:89","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7437:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7445:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7433:3:89"},"nodeType":"YulFunctionCall","src":"7433:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7427:5:89"},"nodeType":"YulFunctionCall","src":"7427:22:89"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"7409:14:89","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"7491:14:89"}],"functionName":{"name":"validator_assert_enum_TaskStatus","nodeType":"YulIdentifier","src":"7458:32:89"},"nodeType":"YulFunctionCall","src":"7458:48:89"},"nodeType":"YulExpressionStatement","src":"7458:48:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7526:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7537:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7522:3:89"},"nodeType":"YulFunctionCall","src":"7522:18:89"},{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"7542:14:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7515:6:89"},"nodeType":"YulFunctionCall","src":"7515:42:89"},"nodeType":"YulExpressionStatement","src":"7515:42:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7577:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7588:4:89","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7573:3:89"},"nodeType":"YulFunctionCall","src":"7573:20:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7605:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"7613:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7601:3:89"},"nodeType":"YulFunctionCall","src":"7601:15:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7595:5:89"},"nodeType":"YulFunctionCall","src":"7595:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7566:6:89"},"nodeType":"YulFunctionCall","src":"7566:52:89"},"nodeType":"YulExpressionStatement","src":"7566:52:89"},{"nodeType":"YulAssignment","src":"7627:14:89","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"7635:6:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7627:4:89"}]}]},"name":"abi_encode_tuple_t_struct$_ProjectView_$22063_memory_ptr__to_t_struct$_ProjectView_$22063_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7117:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7128:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7139:4:89","type":""}],"src":"6987:660:89"},{"body":{"nodeType":"YulBlock","src":"7781:145:89","statements":[{"nodeType":"YulAssignment","src":"7791:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7803:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7814:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7799:3:89"},"nodeType":"YulFunctionCall","src":"7799:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7791:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7833:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7848:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7864:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7869:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7860:3:89"},"nodeType":"YulFunctionCall","src":"7860:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"7873:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7856:3:89"},"nodeType":"YulFunctionCall","src":"7856:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7844:3:89"},"nodeType":"YulFunctionCall","src":"7844:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7826:6:89"},"nodeType":"YulFunctionCall","src":"7826:51:89"},"nodeType":"YulExpressionStatement","src":"7826:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7897:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7908:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7893:3:89"},"nodeType":"YulFunctionCall","src":"7893:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"7913:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7886:6:89"},"nodeType":"YulFunctionCall","src":"7886:34:89"},"nodeType":"YulExpressionStatement","src":"7886:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7742:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7753:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7761:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7772:4:89","type":""}],"src":"7652:274:89"},{"body":{"nodeType":"YulBlock","src":"7963:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7980:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7987:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7992:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7983:3:89"},"nodeType":"YulFunctionCall","src":"7983:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7973:6:89"},"nodeType":"YulFunctionCall","src":"7973:31:89"},"nodeType":"YulExpressionStatement","src":"7973:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8020:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8023:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8013:6:89"},"nodeType":"YulFunctionCall","src":"8013:15:89"},"nodeType":"YulExpressionStatement","src":"8013:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8044:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8047:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8037:6:89"},"nodeType":"YulFunctionCall","src":"8037:15:89"},"nodeType":"YulExpressionStatement","src":"8037:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"7931:127:89"},{"body":{"nodeType":"YulBlock","src":"8220:188:89","statements":[{"nodeType":"YulAssignment","src":"8230:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8242:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8253:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8238:3:89"},"nodeType":"YulFunctionCall","src":"8238:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8230:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8272:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8287:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8303:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8308:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8299:3:89"},"nodeType":"YulFunctionCall","src":"8299:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"8312:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8295:3:89"},"nodeType":"YulFunctionCall","src":"8295:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8283:3:89"},"nodeType":"YulFunctionCall","src":"8283:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8265:6:89"},"nodeType":"YulFunctionCall","src":"8265:51:89"},"nodeType":"YulExpressionStatement","src":"8265:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8336:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8347:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8332:3:89"},"nodeType":"YulFunctionCall","src":"8332:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"8352:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8325:6:89"},"nodeType":"YulFunctionCall","src":"8325:34:89"},"nodeType":"YulExpressionStatement","src":"8325:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8379:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8390:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8375:3:89"},"nodeType":"YulFunctionCall","src":"8375:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"8395:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8368:6:89"},"nodeType":"YulFunctionCall","src":"8368:34:89"},"nodeType":"YulExpressionStatement","src":"8368:34:89"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8173:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8184:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8192:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8200:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8211:4:89","type":""}],"src":"8063:345:89"},{"body":{"nodeType":"YulBlock","src":"8468:325:89","statements":[{"nodeType":"YulAssignment","src":"8478:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8492:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"8495:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8488:3:89"},"nodeType":"YulFunctionCall","src":"8488:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8478:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"8509:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8539:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"8545:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8535:3:89"},"nodeType":"YulFunctionCall","src":"8535:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"8513:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"8586:31:89","statements":[{"nodeType":"YulAssignment","src":"8588:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8602:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8610:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8598:3:89"},"nodeType":"YulFunctionCall","src":"8598:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8588:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8566:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8559:6:89"},"nodeType":"YulFunctionCall","src":"8559:26:89"},"nodeType":"YulIf","src":"8556:61:89"},{"body":{"nodeType":"YulBlock","src":"8676:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8697:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8704:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8709:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8700:3:89"},"nodeType":"YulFunctionCall","src":"8700:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8690:6:89"},"nodeType":"YulFunctionCall","src":"8690:31:89"},"nodeType":"YulExpressionStatement","src":"8690:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8741:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8744:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8734:6:89"},"nodeType":"YulFunctionCall","src":"8734:15:89"},"nodeType":"YulExpressionStatement","src":"8734:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8769:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8772:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8762:6:89"},"nodeType":"YulFunctionCall","src":"8762:15:89"},"nodeType":"YulExpressionStatement","src":"8762:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8632:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8655:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"8663:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8652:2:89"},"nodeType":"YulFunctionCall","src":"8652:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8629:2:89"},"nodeType":"YulFunctionCall","src":"8629:38:89"},"nodeType":"YulIf","src":"8626:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"8448:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"8457:6:89","type":""}],"src":"8413:380:89"},{"body":{"nodeType":"YulBlock","src":"8893:427:89","statements":[{"nodeType":"YulVariableDeclaration","src":"8903:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"8942:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8929:12:89"},"nodeType":"YulFunctionCall","src":"8929:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"8907:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9043:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9052:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9055:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9045:6:89"},"nodeType":"YulFunctionCall","src":"9045:12:89"},"nodeType":"YulExpressionStatement","src":"9045:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"8977:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"9005:12:89"},"nodeType":"YulFunctionCall","src":"9005:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"9021:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9001:3:89"},"nodeType":"YulFunctionCall","src":"9001:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9036:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9032:3:89"},"nodeType":"YulFunctionCall","src":"9032:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:89"},"nodeType":"YulFunctionCall","src":"8997:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8973:3:89"},"nodeType":"YulFunctionCall","src":"8973:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8966:6:89"},"nodeType":"YulFunctionCall","src":"8966:76:89"},"nodeType":"YulIf","src":"8963:96:89"},{"nodeType":"YulVariableDeclaration","src":"9068:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"9086:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"9096:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9082:3:89"},"nodeType":"YulFunctionCall","src":"9082:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"9072:6:89","type":""}]},{"nodeType":"YulAssignment","src":"9124:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"9147:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9134:12:89"},"nodeType":"YulFunctionCall","src":"9134:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9124:6:89"}]},{"body":{"nodeType":"YulBlock","src":"9197:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9206:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9209:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9199:6:89"},"nodeType":"YulFunctionCall","src":"9199:12:89"},"nodeType":"YulExpressionStatement","src":"9199:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9169:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9177:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9166:2:89"},"nodeType":"YulFunctionCall","src":"9166:30:89"},"nodeType":"YulIf","src":"9163:50:89"},{"nodeType":"YulAssignment","src":"9222:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"9234:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"9242:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9230:3:89"},"nodeType":"YulFunctionCall","src":"9230:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"9222:4:89"}]},{"body":{"nodeType":"YulBlock","src":"9298:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9307:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9310:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9300:6:89"},"nodeType":"YulFunctionCall","src":"9300:12:89"},"nodeType":"YulExpressionStatement","src":"9300:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"9263:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"9273:12:89"},"nodeType":"YulFunctionCall","src":"9273:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"9289:6:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9269:3:89"},"nodeType":"YulFunctionCall","src":"9269:27:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"9259:3:89"},"nodeType":"YulFunctionCall","src":"9259:38:89"},"nodeType":"YulIf","src":"9256:58:89"}]},"name":"access_calldata_tail_t_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"8850:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"8860:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"8876:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"8882:6:89","type":""}],"src":"8798:522:89"},{"body":{"nodeType":"YulBlock","src":"9381:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9398:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"9401:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9391:6:89"},"nodeType":"YulFunctionCall","src":"9391:14:89"},"nodeType":"YulExpressionStatement","src":"9391:14:89"},{"nodeType":"YulAssignment","src":"9414:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9432:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9435:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9422:9:89"},"nodeType":"YulFunctionCall","src":"9422:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"9414:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"9364:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"9372:4:89","type":""}],"src":"9325:121:89"},{"body":{"nodeType":"YulBlock","src":"9532:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"9565:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"9579:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"9589:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9583:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9610:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"9614:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9603:6:89"},"nodeType":"YulFunctionCall","src":"9603:17:89"},"nodeType":"YulExpressionStatement","src":"9603:17:89"},{"nodeType":"YulVariableDeclaration","src":"9633:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9655:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"9659:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"9645:9:89"},"nodeType":"YulFunctionCall","src":"9645:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"9637:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9677:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9700:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9710:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"9717:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"9729:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9713:3:89"},"nodeType":"YulFunctionCall","src":"9713:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9706:3:89"},"nodeType":"YulFunctionCall","src":"9706:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9696:3:89"},"nodeType":"YulFunctionCall","src":"9696:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"9681:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9771:23:89","statements":[{"nodeType":"YulAssignment","src":"9773:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"9788:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"9773:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"9753:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"9765:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9750:2:89"},"nodeType":"YulFunctionCall","src":"9750:20:89"},"nodeType":"YulIf","src":"9747:47:89"},{"nodeType":"YulVariableDeclaration","src":"9807:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9821:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9831:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9838:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"9843:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9834:3:89"},"nodeType":"YulFunctionCall","src":"9834:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"9827:3:89"},"nodeType":"YulFunctionCall","src":"9827:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9817:3:89"},"nodeType":"YulFunctionCall","src":"9817:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9811:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9861:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"9874:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"9865:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"9959:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9968:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"9975:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9961:6:89"},"nodeType":"YulFunctionCall","src":"9961:17:89"},"nodeType":"YulExpressionStatement","src":"9961:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9909:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"9916:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9906:2:89"},"nodeType":"YulFunctionCall","src":"9906:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9920:26:89","statements":[{"nodeType":"YulAssignment","src":"9922:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9935:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"9942:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9931:3:89"},"nodeType":"YulFunctionCall","src":"9931:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"9922:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"9902:3:89","statements":[]},"src":"9898:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"9548:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"9553:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9545:2:89"},"nodeType":"YulFunctionCall","src":"9545:11:89"},"nodeType":"YulIf","src":"9542:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"9504:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"9511:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"9516:10:89","type":""}],"src":"9451:545:89"},{"body":{"nodeType":"YulBlock","src":"10086:81:89","statements":[{"nodeType":"YulAssignment","src":"10096:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10111:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10129:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"10132:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10125:3:89"},"nodeType":"YulFunctionCall","src":"10125:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10142:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10138:3:89"},"nodeType":"YulFunctionCall","src":"10138:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10121:3:89"},"nodeType":"YulFunctionCall","src":"10121:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10117:3:89"},"nodeType":"YulFunctionCall","src":"10117:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10107:3:89"},"nodeType":"YulFunctionCall","src":"10107:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10153:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"10156:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10149:3:89"},"nodeType":"YulFunctionCall","src":"10149:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10104:2:89"},"nodeType":"YulFunctionCall","src":"10104:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"10096:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10063:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"10069:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"10077:4:89","type":""}],"src":"10001:166:89"},{"body":{"nodeType":"YulBlock","src":"10275:1103:89","statements":[{"body":{"nodeType":"YulBlock","src":"10316:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"10318:16:89"},"nodeType":"YulFunctionCall","src":"10318:18:89"},"nodeType":"YulExpressionStatement","src":"10318:18:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"10291:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"10296:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10288:2:89"},"nodeType":"YulFunctionCall","src":"10288:27:89"},"nodeType":"YulIf","src":"10285:53:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10391:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10429:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"10423:5:89"},"nodeType":"YulFunctionCall","src":"10423:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"10397:25:89"},"nodeType":"YulFunctionCall","src":"10397:38:89"},{"name":"len","nodeType":"YulIdentifier","src":"10437:3:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"10347:43:89"},"nodeType":"YulFunctionCall","src":"10347:94:89"},"nodeType":"YulExpressionStatement","src":"10347:94:89"},{"nodeType":"YulVariableDeclaration","src":"10450:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"10467:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"10454:9:89","type":""}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"10511:609:89","statements":[{"nodeType":"YulVariableDeclaration","src":"10525:32:89","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"10544:3:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10553:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10549:3:89"},"nodeType":"YulFunctionCall","src":"10549:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10540:3:89"},"nodeType":"YulFunctionCall","src":"10540:17:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"10529:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10570:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"10614:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"10584:29:89"},"nodeType":"YulFunctionCall","src":"10584:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"10574:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10632:18:89","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"10641:9:89"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"10636:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"10720:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"10745:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10770:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"10775:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10766:3:89"},"nodeType":"YulFunctionCall","src":"10766:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10753:12:89"},"nodeType":"YulFunctionCall","src":"10753:33:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"10738:6:89"},"nodeType":"YulFunctionCall","src":"10738:49:89"},"nodeType":"YulExpressionStatement","src":"10738:49:89"},{"nodeType":"YulAssignment","src":"10804:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"10818:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10826:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10814:3:89"},"nodeType":"YulFunctionCall","src":"10814:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"10804:6:89"}]},{"nodeType":"YulAssignment","src":"10845:33:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"10862:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10873:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10858:3:89"},"nodeType":"YulFunctionCall","src":"10858:20:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"10845:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10674:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"10677:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10671:2:89"},"nodeType":"YulFunctionCall","src":"10671:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10686:21:89","statements":[{"nodeType":"YulAssignment","src":"10688:17:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"10697:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"10700:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10693:3:89"},"nodeType":"YulFunctionCall","src":"10693:12:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"10688:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"10667:3:89","statements":[]},"src":"10663:229:89"},{"body":{"nodeType":"YulBlock","src":"10937:127:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"10962:6:89"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"10991:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"10996:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10987:3:89"},"nodeType":"YulFunctionCall","src":"10987:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10974:12:89"},"nodeType":"YulFunctionCall","src":"10974:33:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11025:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"11028:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11021:3:89"},"nodeType":"YulFunctionCall","src":"11021:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"11034:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11017:3:89"},"nodeType":"YulFunctionCall","src":"11017:21:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11044:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11040:3:89"},"nodeType":"YulFunctionCall","src":"11040:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11013:3:89"},"nodeType":"YulFunctionCall","src":"11013:34:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11009:3:89"},"nodeType":"YulFunctionCall","src":"11009:39:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10970:3:89"},"nodeType":"YulFunctionCall","src":"10970:79:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"10955:6:89"},"nodeType":"YulFunctionCall","src":"10955:95:89"},"nodeType":"YulExpressionStatement","src":"10955:95:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"10911:7:89"},{"name":"len","nodeType":"YulIdentifier","src":"10920:3:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10908:2:89"},"nodeType":"YulFunctionCall","src":"10908:16:89"},"nodeType":"YulIf","src":"10905:159:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11084:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11098:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"11101:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11094:3:89"},"nodeType":"YulFunctionCall","src":"11094:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"11107:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11090:3:89"},"nodeType":"YulFunctionCall","src":"11090:19:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"11077:6:89"},"nodeType":"YulFunctionCall","src":"11077:33:89"},"nodeType":"YulExpressionStatement","src":"11077:33:89"}]},"nodeType":"YulCase","src":"10504:616:89","value":{"kind":"number","nodeType":"YulLiteral","src":"10509:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"11137:235:89","statements":[{"nodeType":"YulVariableDeclaration","src":"11151:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"11164:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11155:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"11197:74:89","statements":[{"nodeType":"YulAssignment","src":"11215:42:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11241:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"11246:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11237:3:89"},"nodeType":"YulFunctionCall","src":"11237:19:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11224:12:89"},"nodeType":"YulFunctionCall","src":"11224:33:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11215:5:89"}]}]},"condition":{"name":"len","nodeType":"YulIdentifier","src":"11181:3:89"},"nodeType":"YulIf","src":"11178:93:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11291:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11350:5:89"},{"name":"len","nodeType":"YulIdentifier","src":"11357:3:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"11297:52:89"},"nodeType":"YulFunctionCall","src":"11297:64:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"11284:6:89"},"nodeType":"YulFunctionCall","src":"11284:78:89"},"nodeType":"YulExpressionStatement","src":"11284:78:89"}]},"nodeType":"YulCase","src":"11129:243:89","value":"default"}],"expression":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"10487:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"10492:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10484:2:89"},"nodeType":"YulFunctionCall","src":"10484:11:89"},"nodeType":"YulSwitch","src":"10477:895:89"}]},"name":"copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"10255:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"10261:3:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"10266:3:89","type":""}],"src":"10172:1206:89"},{"body":{"nodeType":"YulBlock","src":"11439:56:89","statements":[{"body":{"nodeType":"YulBlock","src":"11473:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11482:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11485:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11475:6:89"},"nodeType":"YulFunctionCall","src":"11475:12:89"},"nodeType":"YulExpressionStatement","src":"11475:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11462:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"11469:1:89","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11459:2:89"},"nodeType":"YulFunctionCall","src":"11459:12:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11452:6:89"},"nodeType":"YulFunctionCall","src":"11452:20:89"},"nodeType":"YulIf","src":"11449:40:89"}]},"name":"validator_revert_enum_ProjectStatus","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11428:5:89","type":""}],"src":"11383:112:89"},{"body":{"nodeType":"YulBlock","src":"11589:188:89","statements":[{"body":{"nodeType":"YulBlock","src":"11635:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11644:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11647:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11637:6:89"},"nodeType":"YulFunctionCall","src":"11637:12:89"},"nodeType":"YulExpressionStatement","src":"11637:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11610:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"11619:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11606:3:89"},"nodeType":"YulFunctionCall","src":"11606:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"11631:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11602:3:89"},"nodeType":"YulFunctionCall","src":"11602:32:89"},"nodeType":"YulIf","src":"11599:52:89"},{"nodeType":"YulVariableDeclaration","src":"11660:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11686:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11673:12:89"},"nodeType":"YulFunctionCall","src":"11673:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11664:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11741:5:89"}],"functionName":{"name":"validator_revert_enum_ProjectStatus","nodeType":"YulIdentifier","src":"11705:35:89"},"nodeType":"YulFunctionCall","src":"11705:42:89"},"nodeType":"YulExpressionStatement","src":"11705:42:89"},{"nodeType":"YulAssignment","src":"11756:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"11766:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11756:6:89"}]}]},"name":"abi_decode_tuple_t_enum$_ProjectStatus_$22030","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11555:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11566:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11578:6:89","type":""}],"src":"11500:277:89"},{"body":{"nodeType":"YulBlock","src":"11868:188:89","statements":[{"body":{"nodeType":"YulBlock","src":"11914:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11923:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11926:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11916:6:89"},"nodeType":"YulFunctionCall","src":"11916:12:89"},"nodeType":"YulExpressionStatement","src":"11916:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11889:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"11898:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11885:3:89"},"nodeType":"YulFunctionCall","src":"11885:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"11910:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11881:3:89"},"nodeType":"YulFunctionCall","src":"11881:32:89"},"nodeType":"YulIf","src":"11878:52:89"},{"nodeType":"YulVariableDeclaration","src":"11939:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11965:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11952:12:89"},"nodeType":"YulFunctionCall","src":"11952:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11943:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12020:5:89"}],"functionName":{"name":"validator_revert_enum_ProjectStatus","nodeType":"YulIdentifier","src":"11984:35:89"},"nodeType":"YulFunctionCall","src":"11984:42:89"},"nodeType":"YulExpressionStatement","src":"11984:42:89"},{"nodeType":"YulAssignment","src":"12035:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"12045:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"12035:6:89"}]}]},"name":"abi_decode_tuple_t_enum$_TaskStatus_$22068","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11834:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11845:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11857:6:89","type":""}],"src":"11782:274:89"},{"body":{"nodeType":"YulBlock","src":"12171:435:89","statements":[{"nodeType":"YulVariableDeclaration","src":"12181:51:89","value":{"arguments":[{"name":"ptr_to_tail","nodeType":"YulIdentifier","src":"12220:11:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12207:12:89"},"nodeType":"YulFunctionCall","src":"12207:25:89"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"12185:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"12321:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12330:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12333:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12323:6:89"},"nodeType":"YulFunctionCall","src":"12323:12:89"},"nodeType":"YulExpressionStatement","src":"12323:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12255:18:89"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12283:12:89"},"nodeType":"YulFunctionCall","src":"12283:14:89"},{"name":"base_ref","nodeType":"YulIdentifier","src":"12299:8:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12279:3:89"},"nodeType":"YulFunctionCall","src":"12279:29:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12314:2:89","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12310:3:89"},"nodeType":"YulFunctionCall","src":"12310:7:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12275:3:89"},"nodeType":"YulFunctionCall","src":"12275:43:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12251:3:89"},"nodeType":"YulFunctionCall","src":"12251:68:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12244:6:89"},"nodeType":"YulFunctionCall","src":"12244:76:89"},"nodeType":"YulIf","src":"12241:96:89"},{"nodeType":"YulVariableDeclaration","src":"12346:47:89","value":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"12364:8:89"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12374:18:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12360:3:89"},"nodeType":"YulFunctionCall","src":"12360:33:89"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"12350:6:89","type":""}]},{"nodeType":"YulAssignment","src":"12402:30:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"12425:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12412:12:89"},"nodeType":"YulFunctionCall","src":"12412:20:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12402:6:89"}]},{"body":{"nodeType":"YulBlock","src":"12475:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12484:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12487:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12477:6:89"},"nodeType":"YulFunctionCall","src":"12477:12:89"},"nodeType":"YulExpressionStatement","src":"12477:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12447:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"12455:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12444:2:89"},"nodeType":"YulFunctionCall","src":"12444:30:89"},"nodeType":"YulIf","src":"12441:50:89"},{"nodeType":"YulAssignment","src":"12500:25:89","value":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"12512:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"12520:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12508:3:89"},"nodeType":"YulFunctionCall","src":"12508:17:89"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"12500:4:89"}]},{"body":{"nodeType":"YulBlock","src":"12584:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12593:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12596:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12586:6:89"},"nodeType":"YulFunctionCall","src":"12586:12:89"},"nodeType":"YulExpressionStatement","src":"12586:12:89"}]},"condition":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"12541:4:89"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12551:12:89"},"nodeType":"YulFunctionCall","src":"12551:14:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12571:1:89","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"12574:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12567:3:89"},"nodeType":"YulFunctionCall","src":"12567:14:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12547:3:89"},"nodeType":"YulFunctionCall","src":"12547:35:89"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12537:3:89"},"nodeType":"YulFunctionCall","src":"12537:46:89"},"nodeType":"YulIf","src":"12534:66:89"}]},"name":"access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"12128:8:89","type":""},{"name":"ptr_to_tail","nodeType":"YulTypedName","src":"12138:11:89","type":""}],"returnVariables":[{"name":"addr","nodeType":"YulTypedName","src":"12154:4:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"12160:6:89","type":""}],"src":"12061:545:89"},{"body":{"nodeType":"YulBlock","src":"12643:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12660:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12667:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12672:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12663:3:89"},"nodeType":"YulFunctionCall","src":"12663:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12653:6:89"},"nodeType":"YulFunctionCall","src":"12653:31:89"},"nodeType":"YulExpressionStatement","src":"12653:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12700:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12703:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12693:6:89"},"nodeType":"YulFunctionCall","src":"12693:15:89"},"nodeType":"YulExpressionStatement","src":"12693:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12724:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12727:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12717:6:89"},"nodeType":"YulFunctionCall","src":"12717:15:89"},"nodeType":"YulExpressionStatement","src":"12717:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12611:127:89"},{"body":{"nodeType":"YulBlock","src":"12791:77:89","statements":[{"nodeType":"YulAssignment","src":"12801:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12812:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"12815:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12808:3:89"},"nodeType":"YulFunctionCall","src":"12808:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12801:3:89"}]},{"body":{"nodeType":"YulBlock","src":"12840:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12842:16:89"},"nodeType":"YulFunctionCall","src":"12842:18:89"},"nodeType":"YulExpressionStatement","src":"12842:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12832:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"12835:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12829:2:89"},"nodeType":"YulFunctionCall","src":"12829:10:89"},"nodeType":"YulIf","src":"12826:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12774:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"12777:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12783:3:89","type":""}],"src":"12743:125:89"},{"body":{"nodeType":"YulBlock","src":"12969:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"12979:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12999:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12993:5:89"},"nodeType":"YulFunctionCall","src":"12993:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"12983:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13046:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13048:16:89"},"nodeType":"YulFunctionCall","src":"13048:18:89"},"nodeType":"YulExpressionStatement","src":"13048:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13018:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13026:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13015:2:89"},"nodeType":"YulFunctionCall","src":"13015:30:89"},"nodeType":"YulIf","src":"13012:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13121:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13159:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"13153:5:89"},"nodeType":"YulFunctionCall","src":"13153:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"13127:25:89"},"nodeType":"YulFunctionCall","src":"13127:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"13167:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"13077:43:89"},"nodeType":"YulFunctionCall","src":"13077:97:89"},"nodeType":"YulExpressionStatement","src":"13077:97:89"},{"nodeType":"YulVariableDeclaration","src":"13183:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13200:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"13187:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13210:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13229:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"13214:11:89","type":""}]},{"nodeType":"YulAssignment","src":"13242:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13255:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13242:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"13312:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13326:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13345:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13357:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13353:3:89"},"nodeType":"YulFunctionCall","src":"13353:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13341:3:89"},"nodeType":"YulFunctionCall","src":"13341:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"13330:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13374:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13418:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"13388:29:89"},"nodeType":"YulFunctionCall","src":"13388:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"13378:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13436:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13445:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13440:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13523:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13548:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13566:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"13571:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13562:3:89"},"nodeType":"YulFunctionCall","src":"13562:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13556:5:89"},"nodeType":"YulFunctionCall","src":"13556:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13541:6:89"},"nodeType":"YulFunctionCall","src":"13541:42:89"},"nodeType":"YulExpressionStatement","src":"13541:42:89"},{"nodeType":"YulAssignment","src":"13600:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13614:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13622:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13610:3:89"},"nodeType":"YulFunctionCall","src":"13610:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13600:6:89"}]},{"nodeType":"YulAssignment","src":"13641:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13658:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13669:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13654:3:89"},"nodeType":"YulFunctionCall","src":"13654:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13641:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13470:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"13473:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13467:2:89"},"nodeType":"YulFunctionCall","src":"13467:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13482:28:89","statements":[{"nodeType":"YulAssignment","src":"13484:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13493:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13496:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13489:3:89"},"nodeType":"YulFunctionCall","src":"13489:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13484:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"13463:3:89","statements":[]},"src":"13459:236:89"},{"body":{"nodeType":"YulBlock","src":"13743:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13761:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13788:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"13793:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13784:3:89"},"nodeType":"YulFunctionCall","src":"13784:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13778:5:89"},"nodeType":"YulFunctionCall","src":"13778:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"13765:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"13828:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"13840:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13867:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"13870:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13863:3:89"},"nodeType":"YulFunctionCall","src":"13863:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"13879:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13859:3:89"},"nodeType":"YulFunctionCall","src":"13859:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13889:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13885:3:89"},"nodeType":"YulFunctionCall","src":"13885:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13855:3:89"},"nodeType":"YulFunctionCall","src":"13855:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13851:3:89"},"nodeType":"YulFunctionCall","src":"13851:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13836:3:89"},"nodeType":"YulFunctionCall","src":"13836:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13821:6:89"},"nodeType":"YulFunctionCall","src":"13821:74:89"},"nodeType":"YulExpressionStatement","src":"13821:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"13714:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"13723:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13711:2:89"},"nodeType":"YulFunctionCall","src":"13711:19:89"},"nodeType":"YulIf","src":"13708:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13929:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13943:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"13946:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13939:3:89"},"nodeType":"YulFunctionCall","src":"13939:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"13955:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13935:3:89"},"nodeType":"YulFunctionCall","src":"13935:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13922:6:89"},"nodeType":"YulFunctionCall","src":"13922:36:89"},"nodeType":"YulExpressionStatement","src":"13922:36:89"}]},"nodeType":"YulCase","src":"13305:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13310:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"13985:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13999:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14012:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14003:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14048:67:89","statements":[{"nodeType":"YulAssignment","src":"14066:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14085:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14090:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14081:3:89"},"nodeType":"YulFunctionCall","src":"14081:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14075:5:89"},"nodeType":"YulFunctionCall","src":"14075:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14066:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"14029:6:89"},"nodeType":"YulIf","src":"14026:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14135:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14194:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"14201:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"14141:52:89"},"nodeType":"YulFunctionCall","src":"14141:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14128:6:89"},"nodeType":"YulFunctionCall","src":"14128:81:89"},"nodeType":"YulExpressionStatement","src":"14128:81:89"}]},"nodeType":"YulCase","src":"13977:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13285:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13293:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13282:2:89"},"nodeType":"YulFunctionCall","src":"13282:14:89"},"nodeType":"YulSwitch","src":"13275:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"12954:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"12960:3:89","type":""}],"src":"12873:1352:89"},{"body":{"nodeType":"YulBlock","src":"14404:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14421:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14432:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14414:6:89"},"nodeType":"YulFunctionCall","src":"14414:21:89"},"nodeType":"YulExpressionStatement","src":"14414:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14455:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14466:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14451:3:89"},"nodeType":"YulFunctionCall","src":"14451:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"14471:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14444:6:89"},"nodeType":"YulFunctionCall","src":"14444:30:89"},"nodeType":"YulExpressionStatement","src":"14444:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14494:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14505:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14490:3:89"},"nodeType":"YulFunctionCall","src":"14490:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"14510:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14483:6:89"},"nodeType":"YulFunctionCall","src":"14483:62:89"},"nodeType":"YulExpressionStatement","src":"14483:62:89"},{"nodeType":"YulAssignment","src":"14554:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14566:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14577:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14562:3:89"},"nodeType":"YulFunctionCall","src":"14562:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14554:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14381:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14395:4:89","type":""}],"src":"14230:356:89"},{"body":{"nodeType":"YulBlock","src":"14765:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14782:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14793:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14775:6:89"},"nodeType":"YulFunctionCall","src":"14775:21:89"},"nodeType":"YulExpressionStatement","src":"14775:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14816:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14827:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14812:3:89"},"nodeType":"YulFunctionCall","src":"14812:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"14832:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14805:6:89"},"nodeType":"YulFunctionCall","src":"14805:30:89"},"nodeType":"YulExpressionStatement","src":"14805:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14855:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14866:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14851:3:89"},"nodeType":"YulFunctionCall","src":"14851:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"14871:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14844:6:89"},"nodeType":"YulFunctionCall","src":"14844:62:89"},"nodeType":"YulExpressionStatement","src":"14844:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14926:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14937:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14922:3:89"},"nodeType":"YulFunctionCall","src":"14922:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"14942:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14915:6:89"},"nodeType":"YulFunctionCall","src":"14915:36:89"},"nodeType":"YulExpressionStatement","src":"14915:36:89"},{"nodeType":"YulAssignment","src":"14960:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14972:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"14983:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14968:3:89"},"nodeType":"YulFunctionCall","src":"14968:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14960:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14742:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14756:4:89","type":""}],"src":"14591:402:89"},{"body":{"nodeType":"YulBlock","src":"15047:79:89","statements":[{"nodeType":"YulAssignment","src":"15057:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"15069:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"15072:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15065:3:89"},"nodeType":"YulFunctionCall","src":"15065:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"15057:4:89"}]},{"body":{"nodeType":"YulBlock","src":"15098:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"15100:16:89"},"nodeType":"YulFunctionCall","src":"15100:18:89"},"nodeType":"YulExpressionStatement","src":"15100:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"15089:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"15095:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15086:2:89"},"nodeType":"YulFunctionCall","src":"15086:11:89"},"nodeType":"YulIf","src":"15083:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"15029:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"15032:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"15038:4:89","type":""}],"src":"14998:128:89"},{"body":{"nodeType":"YulBlock","src":"15163:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15180:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15187:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15192:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15183:3:89"},"nodeType":"YulFunctionCall","src":"15183:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15173:6:89"},"nodeType":"YulFunctionCall","src":"15173:31:89"},"nodeType":"YulExpressionStatement","src":"15173:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15220:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15223:4:89","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15213:6:89"},"nodeType":"YulFunctionCall","src":"15213:15:89"},"nodeType":"YulExpressionStatement","src":"15213:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15244:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15247:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15237:6:89"},"nodeType":"YulFunctionCall","src":"15237:15:89"},"nodeType":"YulExpressionStatement","src":"15237:15:89"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"15131:127:89"},{"body":{"nodeType":"YulBlock","src":"15437:180:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15454:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15465:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15447:6:89"},"nodeType":"YulFunctionCall","src":"15447:21:89"},"nodeType":"YulExpressionStatement","src":"15447:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15488:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15499:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15484:3:89"},"nodeType":"YulFunctionCall","src":"15484:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15504:2:89","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15477:6:89"},"nodeType":"YulFunctionCall","src":"15477:30:89"},"nodeType":"YulExpressionStatement","src":"15477:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15527:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15538:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15523:3:89"},"nodeType":"YulFunctionCall","src":"15523:18:89"},{"hexValue":"456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579","kind":"string","nodeType":"YulLiteral","src":"15543:32:89","type":"","value":"EnumerableMap: nonexistent key"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15516:6:89"},"nodeType":"YulFunctionCall","src":"15516:60:89"},"nodeType":"YulExpressionStatement","src":"15516:60:89"},{"nodeType":"YulAssignment","src":"15585:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15597:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15608:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15593:3:89"},"nodeType":"YulFunctionCall","src":"15593:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15585:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15414:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15428:4:89","type":""}],"src":"15263:354:89"}]},"contents":"{\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_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_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 0x20) }\n        {\n            let _1 := 0x20\n            mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n        }\n        mstore(add(add(pos, length), 0x20), 0)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function validator_assert_enum_TaskStatus(value)\n    {\n        if iszero(lt(value, 4))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x21)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_struct$_TaskView_$22111_memory_ptr__to_t_struct$_TaskView_$22111_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        mstore(add(headStart, _1), mload(value0))\n        let memberValue0 := mload(add(value0, _1))\n        mstore(add(headStart, 64), 0x80)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n        let memberValue0_1 := mload(add(value0, 64))\n        validator_assert_enum_TaskStatus(memberValue0_1)\n        mstore(add(headStart, 96), memberValue0_1)\n        let memberValue0_2 := mload(add(value0, 96))\n        mstore(add(headStart, 0x80), add(sub(tail_1, headStart), not(31)))\n        let pos := tail_1\n        let length := mload(memberValue0_2)\n        mstore(tail_1, length)\n        pos := add(tail_1, _1)\n        let srcPtr := add(memberValue0_2, _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_struct_UpdateProject_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_struct$_UpdateProject_$22039_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_struct_UpdateProject_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_struct$_UpdateTask_$22083_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 96) { revert(0, 0) }\n        value1 := _1\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_struct$_CreateProject_$22033_calldata_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        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 32) { revert(0, 0) }\n        value0 := _1\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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        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 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_struct$_CreateTask_$22074_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_struct_UpdateProject_calldata(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_struct$_ProjectView_$22063_memory_ptr__to_t_struct$_ProjectView_$22063_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), mload(value0))\n        let memberValue0 := mload(add(value0, 32))\n        mstore(add(headStart, 64), 0x80)\n        let tail_1 := abi_encode_string(memberValue0, add(headStart, 160))\n        let memberValue0_1 := mload(add(value0, 64))\n        validator_assert_enum_TaskStatus(memberValue0_1)\n        mstore(add(headStart, 96), memberValue0_1)\n        mstore(add(headStart, 0x80), mload(add(value0, 96)))\n        tail := tail_1\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function 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_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n    }\n    function 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 access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function 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_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, not(31))\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), not(0)))))\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 validator_revert_enum_ProjectStatus(value)\n    {\n        if iszero(lt(value, 4)) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_enum$_ProjectStatus_$22030(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_enum_ProjectStatus(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_enum$_TaskStatus_$22068(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_enum_ProjectStatus(value)\n        value0 := value\n    }\n    function access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), shl(5, length))) { revert(0, 0) }\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\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, 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_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_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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__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), \"EnumerableMap: nonexistent key\")\n        tail := add(headStart, 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"21019":[{"length":32,"start":1198},{"length":32,"start":1549},{"length":32,"start":1807},{"length":32,"start":2365},{"length":32,"start":3227},{"length":32,"start":3820},{"length":32,"start":4140},{"length":32,"start":4387},{"length":32,"start":5069},{"length":32,"start":5360},{"length":32,"start":5952},{"length":32,"start":6658},{"length":32,"start":6924},{"length":32,"start":7155}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102745760003560e01c80637d542a4f11610151578063c591493f116100c3578063d751195711610087578063d751195714610583578063daf91ffc14610596578063e43252d7146105a9578063f0f3f2c8146105bc578063f2fde38b146105dc578063fad001a2146105ef57600080fd5b8063c591493f14610524578063c59db1af14610537578063c763bbf41461054a578063c7ea81fc1461055d578063d50c73771461057057600080fd5b8063a4c52b8611610115578063a4c52b86146104a9578063ab3545e5146104d0578063ab4fbac3146104e3578063ad91a095146104f6578063afcefa7114610509578063bd9d867c1461051c57600080fd5b80637d542a4f1461044157806386a92af7146104545780638ab1d681146104695780638da5cb5b1461047c578063997072f7146104a157600080fd5b80633bcff3b0116101ea57806352dd4eb1116101ae57806352dd4eb1146103da57806367dfd4c9146103ed5780636989fd6b14610400578063715018a614610413578063750521f51461041b57806376a79dcc1461042e57600080fd5b80633bcff3b0146103915780633e2de334146103995780633edff20f146103ac57806341aafef7146103b457806349386c56146103c757600080fd5b80631d65e77e1161023c5780631d65e77e14610302578063254c290d146103225780632565d6c5146103355780632825ee48146103485780632a10fb851461035b5780633af32abf1461036e57600080fd5b8063049878f31461027957806306e304121461028e57806307450adc146102a15780630e1e20a2146102ce5780631599bea5146102ef575b600080fd5b61028c610287366004612325565b610602565b005b61028c61029c366004612325565b610687565b6102b46102af36600461233e565b610777565b604080519283526020830191909152015b60405180910390f35b6102e16102dc36600461233e565b6107e2565b6040519081526020016102c5565b61028c6102fd36600461233e565b610847565b610315610310366004612325565b6109ae565b6040516102c591906123da565b6102e1610330366004612325565b610b48565b61028c610343366004612475565b610ba2565b6102e1610356366004612325565b610d05565b61028c6103693660046124bc565b610d58565b61038161037c36600461250a565b610f23565b60405190151581526020016102c5565b6008546102e1565b61028c6103a736600461233e565b610f36565b6102e1611065565b6102e16103c2366004612533565b611076565b6102e16103d536600461233e565b611187565b6103156103e836600461233e565b6111e4565b61028c6103fb366004612325565b6113c2565b61028c61040e36600461256e565b611465565b61028c611609565b61028c6104293660046125b0565b61161d565b6102e161043c366004612325565b611651565b61028c61044f36600461233e565b6116a6565b61045c611779565b6040516102c59190612661565b61028c61047736600461250a565b61180b565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102c5565b6102e161181e565b6104897f000000000000000000000000000000000000000000000000000000000000000081565b6102e16104de366004612325565b61182a565b6103816104f136600461233e565b611837565b6102e1610504366004612325565b611894565b6102e1610517366004612475565b6118e7565b6102e1611a77565b6102e1610532366004612325565b611a83565b61028c610545366004612325565b611a90565b610381610558366004612325565b611b43565b61028c61056b36600461233e565b611b59565b61038161057e366004612325565b611c2c565b610489610591366004612325565b611c42565b6102e16105a436600461233e565b611c4f565b61028c6105b736600461250a565b611cac565b6105cf6105ca366004612325565b611cbf565b6040516102c59190612674565b61028c6105ea36600461250a565b611e13565b6103816105fd36600461233e565b611e1c565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461064b576040516313bd2e8360e31b815260040160405180910390fd5b60008181526005602052604090205415610678576040516340803a5f60e11b815260040160405180910390fd5b610683600682611e91565b5050565b610692600133611e9d565b6106af57604051630b094f2760e31b815260040160405180910390fd5b6000818152600760205260409020546106db57604051637146096160e01b815260040160405180910390fd5b6106e6600682611ebf565b506106f2600482611e91565b506040516316b726e560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906316b726e5906044015b600060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b5050505050565b6000808360098054905081106107a05760405163aba4733960e01b815260040160405180910390fd5b6107d684600987815481106107b7576107b76126c5565b9060005260206000209060090201600601611ecb90919063ffffffff16565b92509250509250929050565b600954600090839081106108095760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110610820576108206126c5565b9060005260206000209060090201600601611ee990919063ffffffff16565b949350505050565b6009548290811061086b5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610881576108816126c5565b600091825260209091206002600990920201015460ff1660038111156108a9576108a96123a6565b036108c75760405163195332a560e01b815260040160405180910390fd5b6108d2600133611e9d565b6108ef57604051630b094f2760e31b815260040160405180910390fd5b6109258360098681548110610906576109066126c5565b9060005260206000209060090201600401611e9190919063ffffffff16565b506040516305edb40160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632f6da00890610976903090889088906004016126db565b600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6040805160808101825260008082526060602083018190529282015281810191909152600954829081106109f55760405163aba4733960e01b815260040160405180910390fd5b600060098481548110610a0a57610a0a6126c5565b906000526020600020906009020190506000604051806080016040528083600001548152602001836001018054610a40906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c906126fc565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050509183525050600284015460209091019060ff166003811115610ae057610ae06123a6565b815260200183600301805480602002602001604051908101604052809291908181526020018280548015610b3357602002820191906000526020600020905b815481526020019060010190808311610b1f575b50505091909252509094505050505b50919050565b60085460009082908110610b6f5760405163aba4733960e01b815260040160405180910390fd5b610b9b60088481548110610b8557610b856126c5565b9060005260206000209060060201600301611ef5565b9392505050565b60085482908110610bc65760405163aba4733960e01b815260040160405180910390fd5b610bd1600133611e9d565b610bee57604051630b094f2760e31b815260040160405180910390fd5b610bf88280612730565b60088581548110610c0b57610c0b6126c5565b90600052602060002090600602016001019182610c299291906127c6565b50610c3a6040830160208401612893565b60088481548110610c4d57610c4d6126c5565b60009182526020909120600260069092020101805460ff19166001836003811115610c7a57610c7a6123a6565b02179055506040516396937b4360e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396937b43906044015b600060405180830381600087803b158015610ce857600080fd5b505af1158015610cfc573d6000803e3d6000fd5b50505050505050565b60095460009082908110610d2c5760405163aba4733960e01b815260040160405180910390fd5b610b9b60098481548110610d4257610d426126c5565b9060005260206000209060090201600401611ef5565b60095482908110610d7c5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610d9257610d926126c5565b600091825260209091206002600990920201015460ff166003811115610dba57610dba6123a6565b03610dd85760405163195332a560e01b815260040160405180910390fd5b610de3600133611e9d565b610e0057604051630b094f2760e31b815260040160405180910390fd5b610e0a8380612730565b60098681548110610e1d57610e1d6126c5565b90600052602060002090600902016001019182610e3b9291906127c6565b50610e4c6040840160208501612893565b60098581548110610e5f57610e5f6126c5565b60009182526020909120600260099092020101805460ff19166001836003811115610e8c57610e8c6123a6565b0217905550610e9e60408401846128b0565b60098681548110610eb157610eb16126c5565b90600052602060002090600902016003019190610ecf9291906122c5565b50604051633698763160e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d30ec6290604401610976565b6000610f30600183611e9d565b92915050565b60095482908110610f5a5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610f7057610f706126c5565b600091825260209091206002600990920201015460ff166003811115610f9857610f986123a6565b03610fb65760405163195332a560e01b815260040160405180910390fd5b610fc1600133611e9d565b610fde57604051630b094f2760e31b815260040160405180910390fd5b6110148360098681548110610ff557610ff56126c5565b9060005260206000209060090201600401611ebf90919063ffffffff16565b506040516314e2f8e960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063538be3a490610976903090889088906004016126db565b60006110716001611ef5565b905090565b6000611083600133611e9d565b6110a057604051630b094f2760e31b815260040160405180910390fd5b60088054600181018083556000838152919290839081106110c3576110c36126c5565b6000918252602090912060069091020182815590506110e28480612730565b60018301916110f29190836127c6565b5060028101805460ff19169055604051630a843ddb60e31b8152306004820152602481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635421eed890604401600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b50939695505050505050565b600854600090839081106111ae5760405163aba4733960e01b815260040160405180910390fd5b61083f83600886815481106111c5576111c56126c5565b9060005260206000209060060201600301611eff90919063ffffffff16565b60408051608081018252600080825260606020830181905292820152818101919091526008548390811061122b5760405163aba4733960e01b815260040160405180910390fd5b600060088581548110611240576112406126c5565b90600052602060002090600602016005018481548110611262576112626126c5565b90600052602060002001549050600060098281548110611284576112846126c5565b9060005260206000209060090201905060006040518060800160405280836000015481526020018360010180546112ba906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546112e6906126fc565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b5050509183525050600284015460209091019060ff16600381111561135a5761135a6123a6565b8152602001836003018054806020026020016040519081016040528092919081815260200182805480156113ad57602002820191906000526020600020905b815481526020019060010190808311611399575b50505091909252509098975050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461140b576040516313bd2e8360e31b815260040160405180910390fd5b6000818152600760205260409020541561142a57610683600682611ebf565b6000818152600560205260409020541561144957610683600482611ebf565b60405163148fe22160e11b815260040160405180910390fd5b50565b600954829081106114895760405163aba4733960e01b815260040160405180910390fd5b8260026009828154811061149f5761149f6126c5565b600091825260209091206002600990920201015460ff1660038111156114c7576114c76123a6565b036114e55760405163195332a560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461152e576040516313bd2e8360e31b815260040160405180910390fd5b6115388486611837565b6115555760405163148fe22160e11b815260040160405180910390fd5b61158b856009868154811061156c5761156c6126c5565b9060005260206000209060090201600601611f0b90919063ffffffff16565b6115cd576115c78584600987815481106115a7576115a76126c5565b9060005260206000209060090201600601611f179092919063ffffffff16565b50610770565b60006115e68660098781548110610820576108206126c5565b9050610cfc866115f68684612910565b600988815481106115a7576115a76126c5565b611611611f24565b61161b6000611f83565b565b611628600133611e9d565b61164557604051630b094f2760e31b815260040160405180910390fd5b60036106838282612923565b600854600090829081106116785760405163aba4733960e01b815260040160405180910390fd5b6008838154811061168b5761168b6126c5565b60009182526020909120600560069092020101549392505050565b600854829081106116ca5760405163aba4733960e01b815260040160405180910390fd5b6116d5600133611e9d565b6116f257604051630b094f2760e31b815260040160405180910390fd5b6117288260088581548110611709576117096126c5565b9060005260206000209060060201600301611ebf90919063ffffffff16565b5060405163249ea98f60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063927aa63c90610cce903090879087906004016126db565b606060038054611788906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546117b4906126fc565b80156118015780601f106117d657610100808354040283529160200191611801565b820191906000526020600020905b8154815290600101906020018083116117e457829003601f168201915b5050505050905090565b611813611f24565b610683600182611fd3565b60006110716004611ef5565b6000610f30600483611eff565b6009546000908390811061185e5760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611875576118756126c5565b9060005260206000209060090201600401611e7990919063ffffffff16565b600954600090829081106118bb5760405163aba4733960e01b815260040160405180910390fd5b610b9b600984815481106118d1576118d16126c5565b9060005260206000209060090201600601611fe8565b6008546000908390811061190e5760405163aba4733960e01b815260040160405180910390fd5b611919600133611e9d565b61193657604051630b094f2760e31b815260040160405180910390fd5b6009805460018101808355600083815291929083908110611959576119596126c5565b6000918252602090912060099091020182815590506119788580612730565b60018301916119889190836127c6565b5060028101805460ff191690556119a260208601866128b0565b6119b09160038401916122c5565b50600886815481106119c4576119c46126c5565b60009182526020808320600560069093020191909101805460018101825590835291200182905560405163546c8d8160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a8d91b0290611a3b9030908a9087906004016126db565b600060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b509398975050505050505050565b60006110716006611ef5565b6000610f30600683611eff565b611a9b600133611e9d565b611ab857604051630b094f2760e31b815260040160405180910390fd5b600081815260076020526040902054611ae457604051637146096160e01b815260040160405180910390fd5b611aef600682611ebf565b5060405163ed94a4d560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ed94a4d590604401610742565b6000818152600760205260408120541515610f30565b60085482908110611b7d5760405163aba4733960e01b815260040160405180910390fd5b611b88600133611e9d565b611ba557604051630b094f2760e31b815260040160405180910390fd5b611bdb8260088581548110611bbc57611bbc6126c5565b9060005260206000209060060201600301611e9190919063ffffffff16565b50604051630f20644960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c81912490610cce903090879087906004016126db565b6000818152600560205260408120541515610f30565b6000610f30600183611eff565b60095460009083908110611c765760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611c8d57611c8d6126c5565b9060005260206000209060090201600401611eff90919063ffffffff16565b611cb4611f24565b610683600182611ff3565b611cea6040805160808101825260008082526060602083015290918201908152602001600081525090565b60085482908110611d0e5760405163aba4733960e01b815260040160405180910390fd5b600060088481548110611d2357611d236126c5565b906000526020600020906006020190506000604051806080016040528083600001548152602001836001018054611d59906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d85906126fc565b8015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b5050509183525050600284015460209091019060ff166003811115611df957611df96123a6565b815260059093015460209093019290925250915050919050565b61146281612008565b60085460009083908110611e435760405163aba4733960e01b815260040160405180910390fd5b61083f8360088681548110611e5a57611e5a6126c5565b9060005260206000209060060201600301611e7990919063ffffffff16565b60009081526001919091016020526040902054151590565b6000610b9b838361207e565b6001600160a01b03811660009081526001830160205260408120541515610b9b565b6000610b9b83836120cd565b6000808080611eda86866121c0565b909450925050505b9250929050565b6000610b9b83836121eb565b6000610f30825490565b6000610b9b838361225b565b6000610b9b8383612285565b600061083f84848461229d565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b9b836001600160a01b0384166120cd565b6000610f30826122ba565b6000610b9b836001600160a01b03841661207e565b612010611f24565b6001600160a01b0381166120755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611f7a565b61146281611f83565b60008181526001830160205260408120546120c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f30565b506000610f30565b600081815260018301602052604081205480156121b65760006120f16001836129e3565b8554909150600090612105906001906129e3565b905081811461216a576000866000018281548110612125576121256126c5565b9060005260206000200154905080876000018481548110612148576121486126c5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061217b5761217b6129f6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f30565b6000915050610f30565b600080806121ce8585611eff565b600081815260029690960160205260409095205494959350505050565b60008181526002830160205260408120548015158061220f575061220f8484612285565b610b9b5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401611f7a565b6000826000018281548110612272576122726126c5565b9060005260206000200154905092915050565b60008181526001830160205260408120541515610b9b565b6000828152600284016020526040812082905561083f8484611e91565b6000610f3082611ef5565b828054828255906000526020600020908101928215612300579160200282015b828111156123005782358255916020019190600101906122e5565b5061230c929150612310565b5090565b5b8082111561230c5760008155600101612311565b60006020828403121561233757600080fd5b5035919050565b6000806040838503121561235157600080fd5b50508035926020909101359150565b6000815180845260005b818110156123865760208185018101518683018201520161236a565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6004811061146257634e487b7160e01b600052602160045260246000fd5b6000602080835283518184015280840151608060408501526123ff60a0850182612360565b9050604085015161240f816123bc565b606085810191909152850151848203601f19016080860152805180835290830191600091908401905b808310156124585783518252928401926001929092019190840190612438565b509695505050505050565b600060408284031215610b4257600080fd5b6000806040838503121561248857600080fd5b82359150602083013567ffffffffffffffff8111156124a657600080fd5b6124b285828601612463565b9150509250929050565b600080604083850312156124cf57600080fd5b82359150602083013567ffffffffffffffff8111156124ed57600080fd5b8301606081860312156124ff57600080fd5b809150509250929050565b60006020828403121561251c57600080fd5b81356001600160a01b0381168114610b9b57600080fd5b60006020828403121561254557600080fd5b813567ffffffffffffffff81111561255c57600080fd5b820160208185031215610b9b57600080fd5b60008060006060848603121561258357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156125c257600080fd5b813567ffffffffffffffff808211156125da57600080fd5b818401915084601f8301126125ee57600080fd5b8135818111156126005761260061259a565b604051601f8201601f19908116603f011681019083821181831017156126285761262861259a565b8160405282815287602084870101111561264157600080fd5b826020860160208301376000928101602001929092525095945050505050565b602081526000610b9b6020830184612360565b6020815281516020820152600060208301516080604084015261269a60a0840182612360565b905060408401516126aa816123bc565b80606085015250606084015160808401528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b600181811c9082168061271057607f821691505b602082108103610b4257634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261274757600080fd5b83018035915067ffffffffffffffff82111561276257600080fd5b602001915036819003821315611ee257600080fd5b601f8211156127c157600081815260208120601f850160051c8101602086101561279e5750805b601f850160051c820191505b818110156127bd578281556001016127aa565b5050505b505050565b67ffffffffffffffff8311156127de576127de61259a565b6127f2836127ec83546126fc565b83612777565b6000601f841160018114612826576000851561280e5750838201355b600019600387901b1c1916600186901b178355610770565b600083815260209020601f19861690835b828110156128575786850135825560209485019460019092019101612837565b50868210156128745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6004811061146257600080fd5b6000602082840312156128a557600080fd5b8135610b9b81612886565b6000808335601e198436030181126128c757600080fd5b83018035915067ffffffffffffffff8211156128e257600080fd5b6020019150600581901b3603821315611ee257600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610f3057610f306128fa565b815167ffffffffffffffff81111561293d5761293d61259a565b6129518161294b84546126fc565b84612777565b602080601f831160018114612986576000841561296e5750858301515b600019600386901b1c1916600185901b1785556127bd565b600085815260208120601f198616915b828110156129b557888601518255948401946001909101908401612996565b50858210156129d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610f3057610f306128fa565b634e487b7160e01b600052603160045260246000fdfea264697066735822122043646037aad8e0a325f3f5495dc99ecdd5d04d14719e319ffac2e33e9493f94264736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x274 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D542A4F GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xC591493F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xD7511957 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xD7511957 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0xDAF91FFC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xE43252D7 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF0F3F2C8 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5DC JUMPI DUP1 PUSH4 0xFAD001A2 EQ PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC591493F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0xC59DB1AF EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xC763BBF4 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0xC7EA81FC EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xD50C7377 EQ PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA4C52B86 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xAB3545E5 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xAB4FBAC3 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAD91A095 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xAFCEFA71 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xBD9D867C EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D542A4F EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x86A92AF7 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x8AB1D681 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x997072F7 EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x52DD4EB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x52DD4EB1 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x67DFD4C9 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x6989FD6B EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0x750521F5 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x76A79DCC EQ PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0x3E2DE334 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x3EDFF20F EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x41AAFEF7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x49386C56 EQ PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0x254C290D EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2565D6C5 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x2825EE48 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x2A10FB85 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49878F3 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x6E30412 EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x7450ADC EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xE1E20A2 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x1599BEA5 EQ PUSH2 0x2EF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28C PUSH2 0x29C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x687 JUMP JUMPDEST PUSH2 0x2B4 PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xD05 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x24BC JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2E1 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0xF36 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2533 JUMP JUMPDEST PUSH2 0x1076 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1187 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x256E JUMP JUMPDEST PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x1609 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x25B0 JUMP JUMPDEST PUSH2 0x161D JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x45C PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x180B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x181E JUMP JUMPDEST PUSH2 0x489 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x182A JUMP JUMPDEST PUSH2 0x381 PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0x18E7 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1A77 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x532 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x558 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1B59 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x57E CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C2C JUMP JUMPDEST PUSH2 0x489 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1C4F JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1CAC JUMP JUMPDEST PUSH2 0x5CF PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1E13 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1E1C JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x678 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40803A5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x692 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6E6 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH2 0x6F2 PUSH1 0x4 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x16B726E5 PUSH1 0xE0 SHL 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 0x16B726E5 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x770 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x9 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x7A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1EE9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x881 JUMPI PUSH2 0x881 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH2 0x8A9 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x8C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8D2 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x8EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x906 JUMPI PUSH2 0x906 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x5EDB401 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2F6DA008 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xA0A JUMPI PUSH2 0xA0A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xA40 SWAP1 PUSH2 0x26FC 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 0xA6C SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAB9 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 0xA9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0xB33 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 0xB1F JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP5 POP POP POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB85 JUMPI PUSH2 0xB85 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EF5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xBC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xBEE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBF8 DUP3 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC0B JUMPI PUSH2 0xC0B PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xC29 SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xC3A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC7A PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD PUSH4 0x96937B43 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x96937B43 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD92 JUMPI PUSH2 0xD92 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDBA JUMPI PUSH2 0xDBA PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xDD8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDE3 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xE00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE0A DUP4 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xE1D JUMPI PUSH2 0xE1D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xE4C PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x9 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xE5F JUMPI PUSH2 0xE5F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE8C JUMPI PUSH2 0xE8C PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE9E PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x28B0 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xEB1 JUMPI PUSH2 0xEB1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x3 ADD SWAP2 SWAP1 PUSH2 0xECF SWAP3 SWAP2 SWAP1 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x36987631 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6D30EC62 SWAP1 PUSH1 0x44 ADD PUSH2 0x976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1E9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xF70 JUMPI PUSH2 0xF70 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF98 JUMPI PUSH2 0xF98 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xFB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFC1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFDE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1014 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xFF5 JUMPI PUSH2 0xFF5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x14E2F8E9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x538BE3A4 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x1 PUSH2 0x1EF5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1083 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x10A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x10C3 JUMPI PUSH2 0x10C3 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x10E2 DUP5 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x10F2 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0xA843DDB PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x5421EED8 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x117B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x11AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x11C5 JUMPI PUSH2 0x11C5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x8 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x122B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1240 JUMPI PUSH2 0x1240 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1262 JUMPI PUSH2 0x1262 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x12BA SWAP1 PUSH2 0x26FC 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 0x12E6 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1333 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1308 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1333 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 0x1316 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x135A JUMPI PUSH2 0x135A PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0x13AD 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 0x1399 JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x140B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x142A JUMPI PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1449 JUMPI PUSH2 0x683 PUSH1 0x4 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1489 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x149F JUMPI PUSH2 0x149F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C7 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x14E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x152E JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1538 DUP5 DUP7 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1555 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x158B DUP6 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x156C JUMPI PUSH2 0x156C PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F0B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15CD JUMPI PUSH2 0x15C7 DUP6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x770 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP7 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 POP PUSH2 0xCFC DUP7 PUSH2 0x15F6 DUP7 DUP5 PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x9 DUP9 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST PUSH2 0x1611 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x161B PUSH1 0x0 PUSH2 0x1F83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1628 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1645 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x683 DUP3 DUP3 PUSH2 0x2923 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x168B JUMPI PUSH2 0x168B PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD SLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16D5 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1728 DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1709 JUMPI PUSH2 0x1709 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x249EA98F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x927AA63C SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1788 SWAP1 PUSH2 0x26FC 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 0x17B4 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1801 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17D6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1801 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 0x17E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1813 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FD3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x4 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x4 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1875 JUMPI PUSH2 0x1875 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x18BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x18D1 JUMPI PUSH2 0x18D1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1FE8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1919 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1936 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1959 JUMPI PUSH2 0x1959 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x9 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x1978 DUP6 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x1988 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x19A2 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0x19B0 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x546C8D81 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA8D91B02 SWAP1 PUSH2 0x1A3B SWAP1 ADDRESS SWAP1 DUP11 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x6 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x6 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x1A9B PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1AB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1AE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AEF PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xED94A4D5 PUSH1 0xE0 SHL 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 0xED94A4D5 SWAP1 PUSH1 0x44 ADD PUSH2 0x742 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1B7D JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B88 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1BA5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDB DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF206449 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3C819124 SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1C76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1C8D JUMPI PUSH2 0x1C8D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1CB4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FF3 JUMP JUMPDEST PUSH2 0x1CEA PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1D0E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1D23 JUMPI PUSH2 0x1D23 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1D59 SWAP1 PUSH2 0x26FC 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 0x1D85 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1DA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DD2 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 0x1DB5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1DF9 JUMPI PUSH2 0x1DF9 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP4 ADD SLOAD PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1E43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1E5A JUMPI PUSH2 0x1E5A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1EDA DUP7 DUP7 PUSH2 0x21C0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x2285 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83F DUP5 DUP5 DUP5 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x161B 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x207E JUMP JUMPDEST PUSH2 0x2010 PUSH2 0x1F24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x1F83 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x20C5 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 0xF30 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21B6 JUMPI PUSH1 0x0 PUSH2 0x20F1 PUSH1 0x1 DUP4 PUSH2 0x29E3 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2105 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x216A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2125 JUMPI PUSH2 0x2125 PUSH2 0x26C5 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 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x26C5 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 0x217B JUMPI PUSH2 0x217B PUSH2 0x29F6 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 0xF30 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x21CE DUP6 DUP6 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0x220F JUMPI POP PUSH2 0x220F DUP5 DUP5 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0xB9B 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2272 JUMPI PUSH2 0x2272 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x83F DUP5 DUP5 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x1EF5 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2300 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2300 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22E5 JUMP JUMPDEST POP PUSH2 0x230C SWAP3 SWAP2 POP PUSH2 0x2310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x230C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2311 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2386 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x236A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x23FF PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x240F DUP2 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x1F NOT ADD PUSH1 0x80 DUP7 ADD MSTORE DUP1 MLOAD DUP1 DUP4 MSTORE SWAP1 DUP4 ADD SWAP2 PUSH1 0x0 SWAP2 SWAP1 DUP5 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2458 JUMPI DUP4 MLOAD DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x2438 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24B2 DUP6 DUP3 DUP7 ADD PUSH2 0x2463 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x60 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x24FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x255C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2600 JUMPI PUSH2 0x2600 PUSH2 0x259A 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 0x2628 JUMPI PUSH2 0x2628 PUSH2 0x259A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB9B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x269A PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x26AA DUP2 PUSH2 0x23BC JUMP JUMPDEST DUP1 PUSH1 0x60 DUP6 ADD MSTORE POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2710 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xB42 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x27C1 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 0x279E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27BD JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27AA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x27DE JUMPI PUSH2 0x27DE PUSH2 0x259A JUMP JUMPDEST PUSH2 0x27F2 DUP4 PUSH2 0x27EC DUP4 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP4 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2826 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x280E 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 0x770 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2857 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2837 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x2874 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 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB9B DUP2 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x28C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293D PUSH2 0x259A JUMP JUMPDEST PUSH2 0x2951 DUP2 PUSH2 0x294B DUP5 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP5 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2986 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x296E 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 0x27BD JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x29B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2996 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x29D3 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 DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA 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 NUMBER PUSH5 0x6037AAD8E0 LOG3 0x25 RETURN CREATE2 0x49 0x5D 0xC9 SWAP15 0xCD 0xD5 0xD0 0x4D EQ PUSH18 0x9E319FFAC2E33E9493F94264736F6C634300 ADDMOD GT STOP CALLER ","sourceMap":"504:11947:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2862:187;;;;;;:::i;:::-;;:::i;:::-;;3483:335;;;;;;:::i;:::-;;:::i;9363:199::-;;;;;;:::i;:::-;;:::i;:::-;;;;626:25:89;;;682:2;667:18;;660:34;;;;599:18;9363:199:83;;;;;;;;9602:208;;;;;;:::i;:::-;;:::i;:::-;;;851:25:89;;;839:2;824:18;9602:208:83;705:177:89;10926:282:83;;;;;;:::i;:::-;;:::i;8126:400::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5009:168::-;;;;;;:::i;:::-;;:::i;6194:342::-;;;;;;:::i;:::-;;:::i;8566:150::-;;;;;;:::i;:::-;;:::i;10507:379::-;;;;;;:::i;:::-;;:::i;796:127:63:-;;;;;;:::i;:::-;;:::i;:::-;;;4310:14:89;;4303:22;4285:41;;4273:2;4258:18;796:127:63;4145:187:89;4383:99:83;4459:9;:16;4383:99;;11248:290;;;;;;:::i;:::-;;:::i;561:104:63:-;;;:::i;5651:503:83:-;;;;;;:::i;:::-;;:::i;5217:201::-;;;;;;:::i;:::-;;:::i;7580:506::-;;;;;;:::i;:::-;;:::i;3089:354::-;;;;;;:::i;:::-;;:::i;11578:544::-;;;;;;:::i;:::-;;:::i;1831:101:19:-;;;:::i;2686:136:83:-;;;;;;:::i;:::-;;:::i;7385:155::-;;;;;;:::i;:::-;;:::i;6875:289::-;;;;;;:::i;:::-;;:::i;1499:117::-;;;:::i;:::-;;;;;;;:::i;1041:108:63:-;;;;;;:::i;:::-;;:::i;1201:85:19:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:19;1201:85;;;-1:-1:-1;;;;;6504:32:89;;;6486:51;;6474:2;6459:18;1201:85:19;6340:203:89;1656:116:83;;;:::i;139:28:61:-;;;;;1812:125:83;;;;;;:::i;:::-;;:::i;8957:169::-;;;;;;:::i;:::-;;:::i;9166:157::-;;;;;;:::i;:::-;;:::i;9850:617::-;;;;;;:::i;:::-;;:::i;2150:130::-;;;:::i;2320:139::-;;;;;;:::i;:::-;;:::i;3858:301::-;;;;;;:::i;:::-;;:::i;2499:147::-;;;;;;:::i;:::-;;:::i;6576:259::-;;;;;;:::i;:::-;;:::i;1977:133::-;;;;;;:::i;:::-;;:::i;671:119:63:-;;;;;;:::i;:::-;;:::i;8756:161:83:-;;;;;;:::i;:::-;;:::i;929:106:63:-;;;;;;:::i;:::-;;:::i;4522:447:83:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12314:135::-;;;;;;:::i;:::-;;:::i;5424:187::-;;;;;;:::i;:::-;;:::i;2862:::-;207:10:61;-1:-1:-1;;;;;221:3:61;207:17;;203:45;;233:15;;-1:-1:-1;;;233:15:61;;;;;;;;;;;203:45;11375:4:59;4343:19;;;:12;:19;;;;;;:24;2939:63:83::1;;2980:22;;-1:-1:-1::0;;;2980:22:83::1;;;;;;;;;;;2939:63;3012:30;:15;3032:9:::0;3012:19:::1;:30::i;:::-;;2862:187:::0;:::o;3483:335::-;474:31:63;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1;;;514:23:63;;;;;;;;;;;469:68;11375:4:59;4343:19;;;:12;:19;;;;;;3584:74:83::1;;3633:25;;-1:-1:-1::0;;;3633:25:83::1;;;;;;;;;;;3584:74;3668:33;:15;3691:9:::0;3668:22:::1;:33::i;:::-;-1:-1:-1::0;3711:23:83::1;:8;3724:9:::0;3711:12:::1;:23::i;:::-;-1:-1:-1::0;3744:67:83::1;::::0;-1:-1:-1;;;3744:67:83;;3794:4:::1;3744:67;::::0;::::1;7826:51:89::0;7893:18;;;7886:34;;;3755:3:83::1;-1:-1:-1::0;;;;;3744:41:83::1;::::0;::::1;::::0;7799:18:89;;3744:67:83::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3483:335:::0;:::o;9363:199::-;9485:7;9494;9468:6;1275;:13;;;;1265:6;:23;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;9520:35:::1;9549:5;9520:6;9527;9520:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:28;;:35;;;;:::i;:::-;9513:42;;;;9363:199:::0;;;;;;:::o;9602:208::-;1275:6;:13;9737:7;;9720:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;9763:40:::1;9793:9;9763:6;9770;9763:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:29;;:40;;;;:::i;:::-;9756:47:::0;9602:208;-1:-1:-1;;;;9602:208:83:o;10926:282::-;1275:6;:13;11026:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;11051:6;987:30:::1;962:6;969;962:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21:::1;:14;::::0;;::::1;;:21;::::0;::::1;;:55;::::0;::::1;;;;;;:::i;:::-;::::0;958:93:::1;;1026:25;;-1:-1:-1::0;;;1026:25:83::1;;;;;;;;;;;958:93;474:31:63::2;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::2;;;;;;;;;;;469:68;11085:37:83::3;11112:9;11085:6;11092;11085:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;:26;;:37;;;;:::i;:::-;-1:-1:-1::0;11132:69:83::3;::::0;-1:-1:-1;;;11132:69:83;;-1:-1:-1;;;;;11143:3:83::3;11132:35;::::0;::::3;::::0;:69:::3;::::0;11176:4:::3;::::0;11183:6;;11191:9;;11132:69:::3;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;::::0;::::3;;;;;;;;;1329:1:::1;10926:282:::0;;;:::o;8126:400::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1275:6:83;:13;8184:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;8238:27:::1;8268:6;8275;8268:14;;;;;;;;:::i;:::-;;;;;;;;;;;8238:44;;8293:34;8330:164;;;;;;;;8367:4;:7;;;8330:164;;;;8401:4;:16;;8330:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;8330:164:83;;;-1:-1:-1;;8439:11:83::1;::::0;::::1;::::0;8330:164:::1;::::0;;::::1;::::0;8439:11:::1;;8330:164;::::0;::::1;;;;;;:::i;:::-;;;;;8472:4;:11;;8330:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;8330:164:83;;;;-1:-1:-1;8293:201:83;;-1:-1:-1;;;;1329:1:83::1;8126:400:::0;;;;:::o;5009:168::-;1144:9;:16;5107:7;;5087:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;5133:37:::1;:9;5143;5133:20;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;:35;:37::i;:::-;5126:44:::0;5009:168;-1:-1:-1;;;5009:168:83:o;6194:342::-;1144:9;:16;6320:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;474:31:63::1;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::1;;;;;;;;;;;469:68;6392:16:83::2;:4:::0;;:16:::2;:::i;:::-;6357:9;6367;6357:20;;;;;;;;:::i;:::-;;;;;;;;;;;:32;;:51;;;;;;;:::i;:::-;-1:-1:-1::0;6448:11:83::2;::::0;;;::::2;::::0;::::2;;:::i;:::-;6418:9;6428;6418:20;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;:27:::2;:20;::::0;;::::2;;:27;:41:::0;;-1:-1:-1;;6418:41:83::2;::::0;;::::2;::::0;::::2;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;6469:60:83::2;::::0;-1:-1:-1;;;6469:60:83;;6512:4:::2;6469:60;::::0;::::2;7826:51:89::0;7893:18;;;7886:34;;;6480:3:83::2;-1:-1:-1::0;;;;;6469:34:83::2;::::0;::::2;::::0;7799:18:89;;6469:60:83::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6194:342:::0;;;:::o;8566:150::-;1275:6;:13;8652:7;;8635:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;8678:31:::1;:6;8685;8678:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;:29;:31::i;10507:379::-:0;1275:6;:13;10621:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;10646:6;987:30:::1;962:6;969;962:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21:::1;:14;::::0;;::::1;;:21;::::0;::::1;;:55;::::0;::::1;;;;;;:::i;:::-;::::0;958:93:::1;;1026:25;;-1:-1:-1::0;;;1026:25:83::1;;;;;;;;;;;958:93;474:31:63::2;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::2;;;;;;;;;;;469:68;10709:16:83::3;:4:::0;;:16:::3;:::i;:::-;10680:6;10687;10680:14;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;:45;;;;;;;:::i;:::-;-1:-1:-1::0;10759:11:83::3;::::0;;;::::3;::::0;::::3;;:::i;:::-;10735:6;10742;10735:14;;;;;;;;:::i;:::-;;::::0;;;::::3;::::0;;;:21:::3;:14;::::0;;::::3;;:21;:35:::0;;-1:-1:-1;;10735:35:83::3;::::0;;::::3;::::0;::::3;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;10804:11:83::3;;::::0;::::3;:4:::0;:11:::3;:::i;:::-;10780:6;10787;10780:14;;;;;;;;:::i;:::-;;;;;;;;;;;:21;;:35;;;;;;;:::i;:::-;-1:-1:-1::0;10825:54:83::3;::::0;-1:-1:-1;;;10825:54:83;;10865:4:::3;10825:54;::::0;::::3;7826:51:89::0;7893:18;;;7886:34;;;10836:3:83::3;-1:-1:-1::0;;;;;10825:31:83::3;::::0;::::3;::::0;7799:18:89;;10825:54:83::3;7652:274:89::0;796:127:63;865:4;888:28;:10;908:7;888:19;:28::i;:::-;881:35;796:127;-1:-1:-1;;796:127:63:o;11248:290:83:-;1275:6;:13;11351:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;11376:6;987:30:::1;962:6;969;962:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21:::1;:14;::::0;;::::1;;:21;::::0;::::1;;:55;::::0;::::1;;;;;;:::i;:::-;::::0;958:93:::1;;1026:25;;-1:-1:-1::0;;;1026:25:83::1;;;;;;;;;;;958:93;474:31:63::2;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::2;;;;;;;;;;;469:68;11410:40:83::3;11440:9;11410:6;11417;11410:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;:29;;:40;;;;:::i;:::-;-1:-1:-1::0;11460:71:83::3;::::0;-1:-1:-1;;;11460:71:83;;-1:-1:-1;;;;;11471:3:83::3;11460:37;::::0;::::3;::::0;:71:::3;::::0;11506:4:::3;::::0;11513:6;;11521:9;;11460:71:::3;;;:::i;561:104:63:-:0;613:7;639:19;:10;:17;:19::i;:::-;632:26;;561:104;:::o;5651:503:83:-;5747:7;474:31:63;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1;;;514:23:63;;;;;;;;;;;469:68;5789:9:83::1;:16:::0;;5815::::1;::::0;::::1;::::0;;;5766:20:::1;5815:16:::0;;;5789;;:9;:16;;5877:23;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;5910:25:::0;;;5877:23;-1:-1:-1;5967:16:83::1;:4:::0;;:16:::1;:::i;:::-;5945:19;::::0;::::1;::::0;:38:::1;::::0;;:19;:38:::1;:::i;:::-;-1:-1:-1::0;5993:14:83::1;::::0;::::1;:52:::0;;-1:-1:-1;;5993:52:83::1;::::0;;6055:63:::1;::::0;-1:-1:-1;;;6055:63:83;;6098:4:::1;6055:63;::::0;::::1;7826:51:89::0;7893:18;;;7886:34;;;-1:-1:-1;;;;;6066:3:83::1;6055:34;::::0;::::1;::::0;7799:18:89;;6055:63:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;6135:12:83;;5651:503;-1:-1:-1;;;;;;5651:503:83:o;5217:201::-;1144:9;:16;5347:7;;5327:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;5373:38:::1;5405:5;5373:9;5383;5373:20;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;:31;;:38;;;;:::i;7580:506::-:0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:9:83;:16;7681:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;7738:14:::1;7755:9;7765;7755:20;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;7782:5;7755:33;;;;;;;;:::i;:::-;;;;;;;;;7738:50;;7798:27;7828:6;7835;7828:14;;;;;;;;:::i;:::-;;;;;;;;;;;7798:44;;7853:34;7890:164;;;;;;;;7927:4;:7;;;7890:164;;;;7961:4;:16;;7890:164;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7890:164:83;;;-1:-1:-1;;7999:11:83::1;::::0;::::1;::::0;7890:164:::1;::::0;;::::1;::::0;7999:11:::1;;7890:164;::::0;::::1;;;;;;:::i;:::-;;;;;8032:4;:11;;7890:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;7890:164:83;;;;-1:-1:-1;7853:201:83;;7580:506;-1:-1:-1;;;;;;;;7580:506:83:o;3089:354::-;207:10:61;-1:-1:-1;;;;;221:3:61;207:17;;203:45;;233:15;;-1:-1:-1;;;233:15:61;;;;;;;;;;;203:45;11375:4:59;4343:19;;;:12;:19;;;;;;:24;3167:119:83::1;;3222:33;:15;3245:9:::0;3222:22:::1;:33::i;3167:119::-;11375:4:59::0;4343:19;;;:12;:19;;;;;;:24;3296:105:83::1;;3344:26;:8;3360:9:::0;3344:15:::1;:26::i;3296:105::-;3418:18;;-1:-1:-1::0;;;3418:18:83::1;;;;;;;;;;;258:1:61;3089:354:83::0;:::o;11578:544::-;1275:6;:13;11701:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;11726:6;987:30:::1;962:6;969;962:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:21:::1;:14;::::0;;::::1;;:21;::::0;::::1;;:55;::::0;::::1;;;;;;:::i;:::-;::::0;958:93:::1;;1026:25;;-1:-1:-1::0;;;1026:25:83::1;;;;;;;;;;;958:93;207:10:61::2;-1:-1:-1::0;;;;;221:3:61::2;207:17;;203:45;;233:15;;-1:-1:-1::0;;;233:15:61::2;;;;;;;;;;;203:45;11757:31:83::3;11770:6;11778:9;11757:12;:31::i;:::-;11752:63;;11797:18;;-1:-1:-1::0;;;11797:18:83::3;;;;;;;;;;;11752:63;11831:45;11866:9;11831:6;11838;11831:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:34;;:45;;;;:::i;:::-;11826:290;;11892:46;11922:9;11933:4;11892:6;11899;11892:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:29;;:46;;;;;:::i;:::-;;11826:290;;;11969:19;11991:40;12021:9;11991:6;11998;11991:14;;;;;;;;:::i;:40::-;11969:62:::0;-1:-1:-1;12045:60:83::3;12075:9:::0;12086:18:::3;12100:4:::0;11969:62;12086:18:::3;:::i;:::-;12045:6;12052;12045:14;;;;;;;;:::i;1831:101:19:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2686:136:83:-;474:31:63;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1;;;514:23:63;;;;;;;;;;;469:68;2789:12:83::1;:26;2804:11:::0;2789:12;:26:::1;:::i;7385:155::-:0;1144:9;:16;7474:7;;7454:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;7500:9:::1;7510;7500:20;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:26:::1;:20;::::0;;::::1;;:26;:33:::0;;7385:155;-1:-1:-1;;;7385:155:83:o;6875:289::-;1144:9;:16;6987:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;474:31:63::1;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::1;;;;;;;;;;;469:68;7024:46:83::2;7060:9;7024;7034;7024:20;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;:35;;:46;;;;:::i;:::-;-1:-1:-1::0;7080:77:83::2;::::0;-1:-1:-1;;;7080:77:83;;-1:-1:-1;;;;;7091:3:83::2;7080:40;::::0;::::2;::::0;:77:::2;::::0;7129:4:::2;::::0;7136:9;;7147;;7080:77:::2;;;:::i;1499:117::-:0;1565:13;1597:12;1590:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1499:117;:::o;1041:108:63:-;1094:13:19;:11;:13::i;:::-;1116:26:63::1;:10;1134:7:::0;1116:17:::1;:26::i;1656:116:83:-:0;1722:7;1748:17;:8;:15;:17::i;1812:125::-;1886:7;1912:18;:8;1924:5;1912:11;:18::i;8957:169::-;1275:6;:13;9054:4;;9037:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;9077:42:::1;9109:9;9077:6;9084;9077:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;:31;;:42;;;;:::i;9166:157::-:0;1275:6;:13;9256:7;;9239:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;9282:34:::1;:6;9289;9282:14;;;;;;;;:::i;:::-;;;;;;;;;;;:25;;:32;:34::i;9850:617::-:0;1144:9;:16;10006:7;;9970:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;474:31:63::1;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::1;;;;;;;;;;;469:68;10045:6:83::2;:13:::0;;10068::::2;::::0;::::2;::::0;;;10025:17:::2;10068:13:::0;;;10045;;:6;:13;;10121:17;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10148:19:::0;;;10121:17;-1:-1:-1;10196:16:83::2;:4:::0;;:16:::2;:::i;:::-;10177;::::0;::::2;::::0;:35:::2;::::0;;:16;:35:::2;:::i;:::-;-1:-1:-1::0;10222:11:83::2;::::0;::::2;:46:::0;;-1:-1:-1;;10222:46:83::2;::::0;;10292:11:::2;;::::0;::::2;::::0;::::2;:::i;:::-;10278:25;::::0;:11:::2;::::0;::::2;::::0;:25:::2;:::i;:::-;;10314:9;10324;10314:20;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;:26:::2;:20;::::0;;::::2;;:26:::0;;;::::2;:42:::0;;::::2;::::0;::::2;::::0;;;;;;;::::2;::::0;;;10366:68:::2;::::0;-1:-1:-1;;;10366:68:83;;-1:-1:-1;;;;;10377:3:83::2;10366:31;::::0;::::2;::::0;:68:::2;::::0;10406:4:::2;::::0;10413:9;;10346;;10366:68:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;10451:9:83;;9850:617;-1:-1:-1;;;;;;;;9850:617:83:o;2150:130::-;2223:7;2249:24;:15;:22;:24::i;2320:139::-;2401:7;2427:25;:15;2446:5;2427:18;:25::i;3858:301::-;474:31:63;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1;;;514:23:63;;;;;;;;;;;469:68;11375:4:59;4343:19;;;:12;:19;;;;;;3958:74:83::1;;4007:25;;-1:-1:-1::0;;;4007:25:83::1;;;;;;;;;;;3958:74;4042:33;:15;4065:9:::0;4042:22:::1;:33::i;:::-;-1:-1:-1::0;4085:67:83::1;::::0;-1:-1:-1;;;4085:67:83;;4135:4:::1;4085:67;::::0;::::1;7826:51:89::0;7893:18;;;7886:34;;;4096:3:83::1;-1:-1:-1::0;;;;;4085:41:83::1;::::0;::::1;::::0;7799:18:89;;4085:67:83::1;7652:274:89::0;2499:147:83;2581:4;4343:19:59;;;:12;:19;;;;;;:24;;2604:35:83;11298:144:59;6576:259:83;1144:9;:16;6663:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;474:31:63::1;:10;494;474:19;:31::i;:::-;469:68;;514:23;;-1:-1:-1::0;;;514:23:63::1;;;;;;;;;;;469:68;6700:43:83::2;6733:9;6700;6710;6700:20;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;:32;;:43;;;;:::i;:::-;-1:-1:-1::0;6753:75:83::2;::::0;-1:-1:-1;;;6753:75:83;;-1:-1:-1;;;;;6764:3:83::2;6753:38;::::0;::::2;::::0;:75:::2;::::0;6800:4:::2;::::0;6807:9;;6818;;6753:75:::2;;;:::i;1977:133::-:0;2052:4;4343:19:59;;;:12;:19;;;;;;:24;;2075:28:83;11298:144:59;671:119:63;737:7;763:20;:10;777:5;763:13;:20::i;8756:161:83:-;1275:6;:13;8852:7;;8835:6;;1265:23;;1261:58;;1297:22;;-1:-1:-1;;;1297:22:83;;;;;;;;;;;1261:58;8878:32:::1;8904:5;8878:6;8885;8878:14;;;;;;;;:::i;:::-;;;;;;;;;;;:22;;:25;;:32;;;;:::i;929:106:63:-:0;1094:13:19;:11;:13::i;:::-;1005:23:63::1;:10;1020:7:::0;1005:14:::1;:23::i;4522:447:83:-:0;4601:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4601:28:83;1144:9;:16;4585:5;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;4641:33:::1;4677:9;4687:5;4677:16;;;;;;;;:::i;:::-;;;;;;;;;;;4641:52;;4703:40;4746:188;;;;;;;;4786:7;:10;;;4746:188;;;;4823:7;:19;;4746:188;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;4746:188:83;;;-1:-1:-1;;4864:14:83::1;::::0;::::1;::::0;4746:188:::1;::::0;;::::1;::::0;4864:14:::1;;4746:188;::::0;::::1;;;;;;:::i;:::-;::::0;;4903:13:::1;::::0;;::::1;:20:::0;4746:188:::1;::::0;;::::1;::::0;;;;-1:-1:-1;4703:231:83;-1:-1:-1;4522:447:83;;;;:::o;12314:135::-;12409:33;12433:8;12409:23;:33::i;5424:187::-;1144:9;:16;5533:4;;5513:9;;1131:29;;1127:64;;1169:22;;-1:-1:-1;;;1169:22:83;;;;;;;;;;;1127:64;5556:48:::1;5594:9;5556;5566;5556:20;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;:37;;:48;;;;:::i;11298:144:59:-:0;11375:4;4343:19;;;:12;;;;;:19;;;;;;:24;;;11298:144::o;10785:129::-;10852:4;10875:32;10880:3;10900:5;10875:4;:32::i;8852:165::-;-1:-1:-1;;;;;8985:23:59;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;4247:127;11082:135;11152:4;11175:35;11183:3;11203:5;11175:7;:35::i;7015:211:58:-;7092:7;;;;7151:21;7154:3;7166:5;7151:2;:21::i;:::-;7120:52;;-1:-1:-1;7120:52:58;-1:-1:-1;;;7015:211:58;;;;;;:::o;7735:147::-;7811:7;7845:29;7849:3;7869;7845;:29::i;11523:112:59:-;11583:7;11609:19;11617:3;4537:18;;4455:107;11977:135;12048:7;12082:22;12086:3;12098:5;12082:3;:22::i;6333:145:58:-;6414:4;6437:34;6446:3;6466;6437:8;:34::i;5768:191::-;5884:4;5907:45;5911:3;5931;5945:5;5907:3;:45::i;1359:130:19:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:19;719:10:47;1422:23:19;1414:68;;;;-1:-1:-1;;;1414:68:19;;14432:2:89;1414:68:19;;;14414:21:89;;;14451:18;;;14444:30;14510:34;14490:18;;;14483:62;14562:18;;1414:68:19;;;;;;;;2433:187;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:19;;;-1:-1:-1;;;;;;2541:17:19;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;8615:156:59:-;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:59;;8711:7;:53::i;6561:117:58:-;6627:7;6653:18;6660:3;6653:6;:18::i;8297:150:59:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:59;;8390:4;:50::i;2081:198:19:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:19;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:19;;14793:2:89;2161:73:19::1;::::0;::::1;14775:21:89::0;14832:2;14812:18;;;14805:30;14871:34;14851:18;;;14844:62;-1:-1:-1;;;14922:18:89;;;14915:36;14968:19;;2161:73:19::1;14591:402:89::0;2161:73:19::1;2244:28;2263:8;2244:18;:28::i;2206:404:59:-:0;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:59;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:59;2581:12;;2778:1388;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:59;;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;;;;;3856:191:58;3939:7;;;3981:19;:3;3994:5;3981:12;:19::i;:::-;4023:16;;;;:11;;;;;:16;;;;;;;;;3856:191;-1:-1:-1;;;;3856:191:58:o;4637:247::-;4719:7;4754:16;;;:11;;;:16;;;;;;4788:10;;;;:32;;;4802:18;4811:3;4816;4802:8;:18::i;:::-;4780:75;;;;-1:-1:-1;;;4780:75:58;;15465:2:89;4780:75:58;;;15447:21:89;15504:2;15484:18;;;15477:30;15543:32;15523:18;;;15516:60;15593:18;;4780:75:58;15263:354:89;4904:118:59;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;3150:140:58:-;3237:4;4343:19:59;;;:12;;;:19;;;;;;:24;;3260:23:58;11298:144:59;2535:204:58;2657:4;2673:16;;;:11;;;:16;;;;;:24;;;2714:18;2673:3;2685;2714:13;:18::i;3380:123::-;3452:7;3478:18;:3;:16;:18::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:180:89;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:89;;14:180;-1:-1:-1;14:180:89:o;199:248::-;267:6;275;328:2;316:9;307:7;303:23;299:32;296:52;;;344:1;341;334:12;296:52;-1:-1:-1;;367:23:89;;;437:2;422:18;;;409:32;;-1:-1:-1;199:248:89:o;887:423::-;929:3;967:5;961:12;994:6;989:3;982:19;1019:1;1029:162;1043:6;1040:1;1037:13;1029:162;;;1105:4;1161:13;;;1157:22;;1151:29;1133:11;;;1129:20;;1122:59;1058:12;1029:162;;;1033:3;1236:1;1229:4;1220:6;1215:3;1211:16;1207:27;1200:38;1299:4;1292:2;1288:7;1283:2;1275:6;1271:15;1267:29;1262:3;1258:39;1254:50;1247:57;;;887:423;;;;:::o;1315:127::-;1376:10;1371:3;1367:20;1364:1;1357:31;1407:4;1404:1;1397:15;1431:4;1428:1;1421:15;1447:212;1530:1;1523:5;1520:12;1510:143;;1575:10;1570:3;1566:20;1563:1;1556:31;1610:4;1607:1;1600:15;1638:4;1635:1;1628:15;1664:1114;1810:4;1839:2;1868;1857:9;1850:21;1913:6;1907:13;1902:2;1891:9;1887:18;1880:41;1968:2;1960:6;1956:15;1950:22;2008:4;2003:2;1992:9;1988:18;1981:32;2036:52;2083:3;2072:9;2068:19;2054:12;2036:52;:::i;:::-;2022:66;;2137:2;2129:6;2125:15;2119:22;2150:48;2183:14;2150:48;:::i;:::-;2229:2;2214:18;;;2207:42;;;;2286:15;;2280:22;2344;;;-1:-1:-1;;2340:36:89;2333:4;2318:20;;2311:66;2426:21;;2456:22;;;2532:23;;;;-1:-1:-1;;2494:15:89;;;;2583:169;2597:6;2594:1;2591:13;2583:169;;;2658:13;;2646:26;;2727:15;;;;2619:1;2612:9;;;;;2692:12;;;;2583:169;;;-1:-1:-1;2769:3:89;1664:1114;-1:-1:-1;;;;;;1664:1114:89:o;2783:161::-;2849:5;2894:2;2885:6;2880:3;2876:16;2872:25;2869:45;;;2910:1;2907;2900:12;2949:437;3051:6;3059;3112:2;3100:9;3091:7;3087:23;3083:32;3080:52;;;3128:1;3125;3118:12;3080:52;3164:9;3151:23;3141:33;;3225:2;3214:9;3210:18;3197:32;3252:18;3244:6;3241:30;3238:50;;;3284:1;3281;3274:12;3238:50;3307:73;3372:7;3363:6;3352:9;3348:22;3307:73;:::i;:::-;3297:83;;;2949:437;;;;;:::o;3391:458::-;3490:6;3498;3551:2;3539:9;3530:7;3526:23;3522:32;3519:52;;;3567:1;3564;3557:12;3519:52;3603:9;3590:23;3580:33;;3664:2;3653:9;3649:18;3636:32;3691:18;3683:6;3680:30;3677:50;;;3723:1;3720;3713:12;3677:50;3746:22;;3802:2;3784:16;;;3780:25;3777:45;;;3818:1;3815;3808:12;3777:45;3841:2;3831:12;;;3391:458;;;;;:::o;3854:286::-;3913:6;3966:2;3954:9;3945:7;3941:23;3937:32;3934:52;;;3982:1;3979;3972:12;3934:52;4008:23;;-1:-1:-1;;;;;4060:31:89;;4050:42;;4040:70;;4106:1;4103;4096:12;4337:393;4430:6;4483:2;4471:9;4462:7;4458:23;4454:32;4451:52;;;4499:1;4496;4489:12;4451:52;4539:9;4526:23;4572:18;4564:6;4561:30;4558:50;;;4604:1;4601;4594:12;4558:50;4627:22;;4683:2;4665:16;;;4661:25;4658:45;;;4699:1;4696;4689:12;4735:316;4812:6;4820;4828;4881:2;4869:9;4860:7;4856:23;4852:32;4849:52;;;4897:1;4894;4887:12;4849:52;-1:-1:-1;;4920:23:89;;;4990:2;4975:18;;4962:32;;-1:-1:-1;5041:2:89;5026:18;;;5013:32;;4735:316;-1:-1:-1;4735:316:89:o;5056:127::-;5117:10;5112:3;5108:20;5105:1;5098:31;5148:4;5145:1;5138:15;5172:4;5169:1;5162:15;5188:922;5257:6;5310:2;5298:9;5289:7;5285:23;5281:32;5278:52;;;5326:1;5323;5316:12;5278:52;5366:9;5353:23;5395:18;5436:2;5428:6;5425:14;5422:34;;;5452:1;5449;5442:12;5422:34;5490:6;5479:9;5475:22;5465:32;;5535:7;5528:4;5524:2;5520:13;5516:27;5506:55;;5557:1;5554;5547:12;5506:55;5593:2;5580:16;5615:2;5611;5608:10;5605:36;;;5621:18;;:::i;:::-;5696:2;5690:9;5664:2;5750:13;;-1:-1:-1;;5746:22:89;;;5770:2;5742:31;5738:40;5726:53;;;5794:18;;;5814:22;;;5791:46;5788:72;;;5840:18;;:::i;:::-;5880:10;5876:2;5869:22;5915:2;5907:6;5900:18;5955:7;5950:2;5945;5941;5937:11;5933:20;5930:33;5927:53;;;5976:1;5973;5966:12;5927:53;6032:2;6027;6023;6019:11;6014:2;6006:6;6002:15;5989:46;6077:1;6055:15;;;6072:2;6051:24;6044:35;;;;-1:-1:-1;6059:6:89;5188:922;-1:-1:-1;;;;;5188:922:89:o;6115:220::-;6264:2;6253:9;6246:21;6227:4;6284:45;6325:2;6314:9;6310:18;6302:6;6284:45;:::i;6987:660::-;7176:2;7165:9;7158:21;7221:6;7215:13;7210:2;7199:9;7195:18;7188:41;7139:4;7276:2;7268:6;7264:15;7258:22;7316:4;7311:2;7300:9;7296:18;7289:32;7344:52;7391:3;7380:9;7376:19;7362:12;7344:52;:::i;:::-;7330:66;;7445:2;7437:6;7433:15;7427:22;7458:48;7491:14;7458:48;:::i;:::-;7542:14;7537:2;7526:9;7522:18;7515:42;;7613:2;7605:6;7601:15;7595:22;7588:4;7577:9;7573:20;7566:52;7635:6;7627:14;;;6987:660;;;;:::o;7931:127::-;7992:10;7987:3;7983:20;7980:1;7973:31;8023:4;8020:1;8013:15;8047:4;8044:1;8037:15;8063:345;-1:-1:-1;;;;;8283:32:89;;;;8265:51;;8347:2;8332:18;;8325:34;;;;8390:2;8375:18;;8368:34;8253:2;8238:18;;8063:345::o;8413:380::-;8492:1;8488:12;;;;8535;;;8556:61;;8610:4;8602:6;8598:17;8588:27;;8556:61;8663:2;8655:6;8652:14;8632:18;8629:38;8626:161;;8709:10;8704:3;8700:20;8697:1;8690:31;8744:4;8741:1;8734:15;8772:4;8769:1;8762:15;8798:522;8876:4;8882:6;8942:11;8929:25;9036:2;9032:7;9021:8;9005:14;9001:29;8997:43;8977:18;8973:68;8963:96;;9055:1;9052;9045:12;8963:96;9082:33;;9134:20;;;-1:-1:-1;9177:18:89;9166:30;;9163:50;;;9209:1;9206;9199:12;9163:50;9242:4;9230:17;;-1:-1:-1;9273:14:89;9269:27;;;9259:38;;9256:58;;;9310:1;9307;9300:12;9451:545;9553:2;9548:3;9545:11;9542:448;;;9589:1;9614:5;9610:2;9603:17;9659:4;9655:2;9645:19;9729:2;9717:10;9713:19;9710:1;9706:27;9700:4;9696:38;9765:4;9753:10;9750:20;9747:47;;;-1:-1:-1;9788:4:89;9747:47;9843:2;9838:3;9834:12;9831:1;9827:20;9821:4;9817:31;9807:41;;9898:82;9916:2;9909:5;9906:13;9898:82;;;9961:17;;;9942:1;9931:13;9898:82;;;9902:3;;;9542:448;9451:545;;;:::o;10172:1206::-;10296:18;10291:3;10288:27;10285:53;;;10318:18;;:::i;:::-;10347:94;10437:3;10397:38;10429:4;10423:11;10397:38;:::i;:::-;10391:4;10347:94;:::i;:::-;10467:1;10492:2;10487:3;10484:11;10509:1;10504:616;;;;11164:1;11181:3;11178:93;;;-1:-1:-1;11237:19:89;;;11224:33;11178:93;-1:-1:-1;;10129:1:89;10125:11;;;10121:24;10117:29;10107:40;10153:1;10149:11;;;10104:57;11284:78;;10477:895;;10504:616;9398:1;9391:14;;;9435:4;9422:18;;-1:-1:-1;;10540:17:89;;;10641:9;10663:229;10677:7;10674:1;10671:14;10663:229;;;10766:19;;;10753:33;10738:49;;10873:4;10858:20;;;;10826:1;10814:14;;;;10693:12;10663:229;;;10667:3;10920;10911:7;10908:16;10905:159;;;11044:1;11040:6;11034:3;11028;11025:1;11021:11;11017:21;11013:34;11009:39;10996:9;10991:3;10987:19;10974:33;10970:79;10962:6;10955:95;10905:159;;;11107:1;11101:3;11098:1;11094:11;11090:19;11084:4;11077:33;10477:895;;10172:1206;;;:::o;11383:112::-;11469:1;11462:5;11459:12;11449:40;;11485:1;11482;11475:12;11500:277;11578:6;11631:2;11619:9;11610:7;11606:23;11602:32;11599:52;;;11647:1;11644;11637:12;11599:52;11686:9;11673:23;11705:42;11741:5;11705:42;:::i;12061:545::-;12154:4;12160:6;12220:11;12207:25;12314:2;12310:7;12299:8;12283:14;12279:29;12275:43;12255:18;12251:68;12241:96;;12333:1;12330;12323:12;12241:96;12360:33;;12412:20;;;-1:-1:-1;12455:18:89;12444:30;;12441:50;;;12487:1;12484;12477:12;12441:50;12520:4;12508:17;;-1:-1:-1;12571:1:89;12567:14;;;12551;12547:35;12537:46;;12534:66;;;12596:1;12593;12586:12;12611:127;12672:10;12667:3;12663:20;12660:1;12653:31;12703:4;12700:1;12693:15;12727:4;12724:1;12717:15;12743:125;12808:9;;;12829:10;;;12826:36;;;12842:18;;:::i;12873:1352::-;12999:3;12993:10;13026:18;13018:6;13015:30;13012:56;;;13048:18;;:::i;:::-;13077:97;13167:6;13127:38;13159:4;13153:11;13127:38;:::i;:::-;13121:4;13077:97;:::i;:::-;13229:4;;13293:2;13282:14;;13310:1;13305:663;;;;14012:1;14029:6;14026:89;;;-1:-1:-1;14081:19:89;;;14075:26;14026:89;-1:-1:-1;;10129:1:89;10125:11;;;10121:24;10117:29;10107:40;10153:1;10149:11;;;10104:57;14128:81;;13275:944;;13305:663;9398:1;9391:14;;;9435:4;9422:18;;-1:-1:-1;;13341:20:89;;;13459:236;13473:7;13470:1;13467:14;13459:236;;;13562:19;;;13556:26;13541:42;;13654:27;;;;13622:1;13610:14;;;;13489:19;;13459:236;;;13463:3;13723:6;13714:7;13711:19;13708:201;;;13784:19;;;13778:26;-1:-1:-1;;13867:1:89;13863:14;;;13879:3;13859:24;13855:37;13851:42;13836:58;13821:74;;13708:201;-1:-1:-1;;;;;13955:1:89;13939:14;;;13935:22;13922:36;;-1:-1:-1;12873:1352:89:o;14998:128::-;15065:9;;;15086:11;;;15083:37;;;15100:18;;:::i;15131:127::-;15192:10;15187:3;15183:20;15180:1;15173:31;15223:4;15220:1;15213:15;15247:4;15244:1;15237:15"},"methodIdentifiers":{"HUB()":"a4c52b86","addProjectMember(uint256,uint256)":"c7ea81fc","addTaskMember(uint256,uint256)":"1599bea5","addToWhitelist(address)":"e43252d7","approvePendingMember(uint256)":"06e30412","createProject((string))":"41aafef7","createTask(uint256,(string,uint256[]))":"afcefa71","getMember(uint256)":"ab3545e5","getMemberCount()":"997072f7","getMetadataURI()":"86a92af7","getPendingMember(uint256)":"c591493f","getPendingMemberCount()":"bd9d867c","getProject(uint256)":"f0f3f2c8","getProjectCount()":"3bcff3b0","getProjectMember(uint256,uint256)":"49386c56","getProjectMemberCount(uint256)":"254c290d","getTask(uint256)":"1d65e77e","getTask(uint256,uint256)":"52dd4eb1","getTaskCount(uint256)":"76a79dcc","getTaskLoggedTime(uint256,uint256)":"07450adc","getTaskLoggedTimeCount(uint256)":"ad91a095","getTaskLoggedTimeOfProfile(uint256,uint256)":"0e1e20a2","getTaskMember(uint256,uint256)":"daf91ffc","getTaskMemberCount(uint256)":"2825ee48","getWhitelistCount()":"3edff20f","getWhitelistMember(uint256)":"d7511957","isMember(uint256)":"d50c7377","isPendingMember(uint256)":"c763bbf4","isProjectMember(uint256,uint256)":"fad001a2","isTaskMember(uint256,uint256)":"ab4fbac3","isWhitelisted(address)":"3af32abf","join(uint256)":"049878f3","leave(uint256)":"67dfd4c9","owner()":"8da5cb5b","rejectPendingMember(uint256)":"c59db1af","removeFromWhitelist(address)":"8ab1d681","removeProjectMember(uint256,uint256)":"7d542a4f","removeTaskMember(uint256,uint256)":"3e2de334","renounceOwnership()":"715018a6","setMetadataURI(string)":"750521f5","transferOwnership(address)":"f2fde38b","updateProject(uint256,(string,uint8))":"2565d6c5","updateTask(uint256,(string,uint8,uint256[]))":"2a10fb85","updateTaskTime(uint256,uint256,uint256)":"6989fd6b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPendingMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotWhitelisted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"HUB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"addProjectMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"addTaskMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"approvePendingMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"internalType\":\"struct DataTypes.CreateProject\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createProject\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.CreateTask\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"createTask\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMetadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getPendingMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPendingMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getProject\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.ProjectStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"taskCount\",\"type\":\"uint256\"}],\"internalType\":\"struct DataTypes.ProjectView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProjectCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getProjectMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"getProjectMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.TaskView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTask\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.TaskView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"}],\"name\":\"getTaskCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTimeCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"getTaskLoggedTimeOfProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getTaskMember\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"}],\"name\":\"getTaskMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhitelistCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getWhitelistMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isPendingMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isProjectMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"isTaskMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"join\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"leave\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"rejectPendingMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeFromWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"removeProjectMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"removeTaskMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"setMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.ProjectStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct DataTypes.UpdateProject\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateProject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"},{\"internalType\":\"enum DataTypes.TaskStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"skills\",\"type\":\"uint256[]\"}],\"internalType\":\"struct DataTypes.UpdateTask\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"updateTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"taskId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"updateTaskTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/organizations/Organization.sol\":\"Organization\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/access/HubControllable.sol\":{\"keccak256\":\"0x8c68d5aa9dc7626e1b305fcb8b228b0d5acbf18e6be59b6ac1ee0f8dc41836df\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1bd2471fbfd6c3fdacd2f3b82ab0e74fda462bcc6569d40c5b28220629bc4f9\",\"dweb:/ipfs/QmS1Hx3javGZ2UHoxGLXFcrxd7poMdiPMpExaQNNXRdF7g\"]},\"contracts/common/access/Whitelistable.sol\":{\"keccak256\":\"0xd215d9966a24259575d481a03c5199f255211c1605f4517ef6c07ce3ad24e531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3264720e7252181265201ecf52ee600feaaacbbef27e64906528a47661818d23\",\"dweb:/ipfs/QmZ4CV9A6oSinNDGKfEZWWE8kMedkT7cocS3ETFq25aR5J\"]},\"contracts/common/interfaces/IMy3SecHub.sol\":{\"keccak256\":\"0x1b543b136330ede3d6560c6e2c786c1797918b89d7bee06a427fd9f1b0e7a555\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73365639c6951757949d4a0ddf4d82aa67d1ffce4b925a7c4802fef7327558aa\",\"dweb:/ipfs/QmZS91FvD64aMuqek4rZCwqZrxZcUAr1DKNA6JfYHVu5wZ\"]},\"contracts/common/interfaces/IOrganization.sol\":{\"keccak256\":\"0x4a96b08a8f7f75a29a5f4f6eda73dfa2583187de578a822ca9eb7eef1a206905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02db94ed3a665e79d621226b0b5a49dc955564fd64e4f52821de893d9d72148f\",\"dweb:/ipfs/QmerdWzdMHujppA6jQ6KPt7uFGm1feGWAywcNfeKz2idaL\"]},\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/common/libraries/Events.sol\":{\"keccak256\":\"0xf94eef9e2c5a858a588565f639b15930f7f3aa70f52710c697f98cf11676dd8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cecefefa1e1df6b7a37cf2f1141c6f9e2f04d425b0c5066ad0e06083b45d1c\",\"dweb:/ipfs/Qmeetc3HCLA3HLySwHJrr73srfa5wG51hTSRcHAu2yCyax\"]},\"contracts/organizations/Organization.sol\":{\"keccak256\":\"0x2a2c97fe5a0ae44cfc1b41a8e224c080e61f4bbe600288d6482cd5ea78036916\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62234c106528c7f1e97a98f4680ccb71b4cb559a7afacf74ec781b6ee2230f6d\",\"dweb:/ipfs/QmVacTpzDX3dSQMwEziFmJgCT981Lx6zQ44mDPa9mXFfte\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":5535,"contract":"contracts/organizations/Organization.sol:Organization","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":21138,"contract":"contracts/organizations/Organization.sol:Organization","label":"_whitelist","offset":0,"slot":"1","type":"t_struct(AddressSet)19533_storage"},{"astId":23064,"contract":"contracts/organizations/Organization.sol:Organization","label":"_metadataURI","offset":0,"slot":"3","type":"t_string_storage"},{"astId":23067,"contract":"contracts/organizations/Organization.sol:Organization","label":"_members","offset":0,"slot":"4","type":"t_struct(UintSet)19690_storage"},{"astId":23070,"contract":"contracts/organizations/Organization.sol:Organization","label":"_pendingMembers","offset":0,"slot":"6","type":"t_struct(UintSet)19690_storage"},{"astId":23074,"contract":"contracts/organizations/Organization.sol:Organization","label":"_projects","offset":0,"slot":"8","type":"t_array(t_struct(Project)22053_storage)dyn_storage"},{"astId":23078,"contract":"contracts/organizations/Organization.sol:Organization","label":"_tasks","offset":0,"slot":"9","type":"t_array(t_struct(Task)22100_storage)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_array(t_struct(Project)22053_storage)dyn_storage":{"base":"t_struct(Project)22053_storage","encoding":"dynamic_array","label":"struct DataTypes.Project[]","numberOfBytes":"32"},"t_array(t_struct(Task)22100_storage)dyn_storage":{"base":"t_struct(Task)22100_storage","encoding":"dynamic_array","label":"struct DataTypes.Task[]","numberOfBytes":"32"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_enum(ProjectStatus)22030":{"encoding":"inplace","label":"enum DataTypes.ProjectStatus","numberOfBytes":"1"},"t_enum(TaskStatus)22068":{"encoding":"inplace","label":"enum DataTypes.TaskStatus","numberOfBytes":"1"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(AddressSet)19533_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","members":[{"astId":19532,"contract":"contracts/organizations/Organization.sol:Organization","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)19218_storage"}],"numberOfBytes":"64"},"t_struct(Bytes32Set)19412_storage":{"encoding":"inplace","label":"struct EnumerableSet.Bytes32Set","members":[{"astId":19411,"contract":"contracts/organizations/Organization.sol:Organization","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)19218_storage"}],"numberOfBytes":"64"},"t_struct(Bytes32ToBytes32Map)18101_storage":{"encoding":"inplace","label":"struct EnumerableMap.Bytes32ToBytes32Map","members":[{"astId":18096,"contract":"contracts/organizations/Organization.sol:Organization","label":"_keys","offset":0,"slot":"0","type":"t_struct(Bytes32Set)19412_storage"},{"astId":18100,"contract":"contracts/organizations/Organization.sol:Organization","label":"_values","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_bytes32)"}],"numberOfBytes":"96"},"t_struct(Project)22053_storage":{"encoding":"inplace","label":"struct DataTypes.Project","members":[{"astId":22041,"contract":"contracts/organizations/Organization.sol:Organization","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":22043,"contract":"contracts/organizations/Organization.sol:Organization","label":"metadataURI","offset":0,"slot":"1","type":"t_string_storage"},{"astId":22046,"contract":"contracts/organizations/Organization.sol:Organization","label":"status","offset":0,"slot":"2","type":"t_enum(ProjectStatus)22030"},{"astId":22049,"contract":"contracts/organizations/Organization.sol:Organization","label":"members","offset":0,"slot":"3","type":"t_struct(UintSet)19690_storage"},{"astId":22052,"contract":"contracts/organizations/Organization.sol:Organization","label":"tasks","offset":0,"slot":"5","type":"t_array(t_uint256)dyn_storage"}],"numberOfBytes":"192"},"t_struct(Set)19218_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","members":[{"astId":19213,"contract":"contracts/organizations/Organization.sol:Organization","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":19217,"contract":"contracts/organizations/Organization.sol:Organization","label":"_indexes","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}],"numberOfBytes":"64"},"t_struct(Task)22100_storage":{"encoding":"inplace","label":"struct DataTypes.Task","members":[{"astId":22085,"contract":"contracts/organizations/Organization.sol:Organization","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":22087,"contract":"contracts/organizations/Organization.sol:Organization","label":"metadataURI","offset":0,"slot":"1","type":"t_string_storage"},{"astId":22090,"contract":"contracts/organizations/Organization.sol:Organization","label":"status","offset":0,"slot":"2","type":"t_enum(TaskStatus)22068"},{"astId":22093,"contract":"contracts/organizations/Organization.sol:Organization","label":"skills","offset":0,"slot":"3","type":"t_array(t_uint256)dyn_storage"},{"astId":22096,"contract":"contracts/organizations/Organization.sol:Organization","label":"members","offset":0,"slot":"4","type":"t_struct(UintSet)19690_storage"},{"astId":22099,"contract":"contracts/organizations/Organization.sol:Organization","label":"loggedTime","offset":0,"slot":"6","type":"t_struct(UintToUintMap)18331_storage"}],"numberOfBytes":"288"},"t_struct(UintSet)19690_storage":{"encoding":"inplace","label":"struct EnumerableSet.UintSet","members":[{"astId":19689,"contract":"contracts/organizations/Organization.sol:Organization","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)19218_storage"}],"numberOfBytes":"64"},"t_struct(UintToUintMap)18331_storage":{"encoding":"inplace","label":"struct EnumerableMap.UintToUintMap","members":[{"astId":18330,"contract":"contracts/organizations/Organization.sol:Organization","label":"_inner","offset":0,"slot":"0","type":"t_struct(Bytes32ToBytes32Map)18101_storage"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}},"contracts/organizations/OrganizationFactory.sol":{"OrganizationFactory":{"abi":[{"inputs":[{"internalType":"address","name":"hub","type":"address"},{"internalType":"string","name":"metadataURI","type":"string"}],"name":"createOrganization","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061300e806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d8ecd92514610030575b600080fd5b61004361003e36600461010c565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b600080848484604051610071906100ff565b61007d9392919061019d565b604051809103906000f080158015610099573d6000803e3d6000fd5b5060405163f2fde38b60e01b81523360048201529091506001600160a01b0382169063f2fde38b90602401600060405180830381600087803b1580156100de57600080fd5b505af11580156100f2573d6000803e3d6000fd5b5092979650505050505050565b612dfb806101de83390190565b60008060006040848603121561012157600080fd5b83356001600160a01b038116811461013857600080fd5b9250602084013567ffffffffffffffff8082111561015557600080fd5b818601915086601f83011261016957600080fd5b81358181111561017857600080fd5b87602082850101111561018a57600080fd5b6020830194508093505050509250925092565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f191601019291505056fe60a06040523480156200001157600080fd5b5060405162002dfb38038062002dfb8339810160408190526200003491620000f1565b816001600160a01b0381166200005d576040516348be0eb360e01b815260040160405180910390fd5b6001600160a01b031660805262000074336200008b565b600362000082828262000276565b50505062000342565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200010557600080fd5b82516001600160a01b03811681146200011d57600080fd5b602084810151919350906001600160401b03808211156200013d57600080fd5b818601915086601f8301126200015257600080fd5b815181811115620001675762000167620000db565b604051601f8201601f19908116603f01168101908382118183101715620001925762000192620000db565b816040528281528986848701011115620001ab57600080fd5b600093505b82841015620001cf5784840186015181850187015292850192620001b0565b60008684830101528096505050505050509250929050565b600181811c90821680620001fc57607f821691505b6020821081036200021d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027157600081815260208120601f850160051c810160208610156200024c5750805b601f850160051c820191505b818110156200026d5782815560010162000258565b5050505b505050565b81516001600160401b03811115620002925762000292620000db565b620002aa81620002a38454620001e7565b8462000223565b602080601f831160018114620002e25760008415620002c95750858301515b600019600386901b1c1916600185901b1785556200026d565b600085815260208120601f198616915b828110156200031357888601518255948401946001909101908401620002f2565b5085821015620003325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051612a42620003b9600039600081816104ae0152818161060d0152818161070f0152818161093d01528181610c9b01528181610eec0152818161102c01528181611123015281816113cd015281816114f00152818161174001528181611a0201528181611b0c0152611bf30152612a426000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80637d542a4f11610151578063c591493f116100c3578063d751195711610087578063d751195714610583578063daf91ffc14610596578063e43252d7146105a9578063f0f3f2c8146105bc578063f2fde38b146105dc578063fad001a2146105ef57600080fd5b8063c591493f14610524578063c59db1af14610537578063c763bbf41461054a578063c7ea81fc1461055d578063d50c73771461057057600080fd5b8063a4c52b8611610115578063a4c52b86146104a9578063ab3545e5146104d0578063ab4fbac3146104e3578063ad91a095146104f6578063afcefa7114610509578063bd9d867c1461051c57600080fd5b80637d542a4f1461044157806386a92af7146104545780638ab1d681146104695780638da5cb5b1461047c578063997072f7146104a157600080fd5b80633bcff3b0116101ea57806352dd4eb1116101ae57806352dd4eb1146103da57806367dfd4c9146103ed5780636989fd6b14610400578063715018a614610413578063750521f51461041b57806376a79dcc1461042e57600080fd5b80633bcff3b0146103915780633e2de334146103995780633edff20f146103ac57806341aafef7146103b457806349386c56146103c757600080fd5b80631d65e77e1161023c5780631d65e77e14610302578063254c290d146103225780632565d6c5146103355780632825ee48146103485780632a10fb851461035b5780633af32abf1461036e57600080fd5b8063049878f31461027957806306e304121461028e57806307450adc146102a15780630e1e20a2146102ce5780631599bea5146102ef575b600080fd5b61028c610287366004612325565b610602565b005b61028c61029c366004612325565b610687565b6102b46102af36600461233e565b610777565b604080519283526020830191909152015b60405180910390f35b6102e16102dc36600461233e565b6107e2565b6040519081526020016102c5565b61028c6102fd36600461233e565b610847565b610315610310366004612325565b6109ae565b6040516102c591906123da565b6102e1610330366004612325565b610b48565b61028c610343366004612475565b610ba2565b6102e1610356366004612325565b610d05565b61028c6103693660046124bc565b610d58565b61038161037c36600461250a565b610f23565b60405190151581526020016102c5565b6008546102e1565b61028c6103a736600461233e565b610f36565b6102e1611065565b6102e16103c2366004612533565b611076565b6102e16103d536600461233e565b611187565b6103156103e836600461233e565b6111e4565b61028c6103fb366004612325565b6113c2565b61028c61040e36600461256e565b611465565b61028c611609565b61028c6104293660046125b0565b61161d565b6102e161043c366004612325565b611651565b61028c61044f36600461233e565b6116a6565b61045c611779565b6040516102c59190612661565b61028c61047736600461250a565b61180b565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102c5565b6102e161181e565b6104897f000000000000000000000000000000000000000000000000000000000000000081565b6102e16104de366004612325565b61182a565b6103816104f136600461233e565b611837565b6102e1610504366004612325565b611894565b6102e1610517366004612475565b6118e7565b6102e1611a77565b6102e1610532366004612325565b611a83565b61028c610545366004612325565b611a90565b610381610558366004612325565b611b43565b61028c61056b36600461233e565b611b59565b61038161057e366004612325565b611c2c565b610489610591366004612325565b611c42565b6102e16105a436600461233e565b611c4f565b61028c6105b736600461250a565b611cac565b6105cf6105ca366004612325565b611cbf565b6040516102c59190612674565b61028c6105ea36600461250a565b611e13565b6103816105fd36600461233e565b611e1c565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461064b576040516313bd2e8360e31b815260040160405180910390fd5b60008181526005602052604090205415610678576040516340803a5f60e11b815260040160405180910390fd5b610683600682611e91565b5050565b610692600133611e9d565b6106af57604051630b094f2760e31b815260040160405180910390fd5b6000818152600760205260409020546106db57604051637146096160e01b815260040160405180910390fd5b6106e6600682611ebf565b506106f2600482611e91565b506040516316b726e560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906316b726e5906044015b600060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b5050505050565b6000808360098054905081106107a05760405163aba4733960e01b815260040160405180910390fd5b6107d684600987815481106107b7576107b76126c5565b9060005260206000209060090201600601611ecb90919063ffffffff16565b92509250509250929050565b600954600090839081106108095760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110610820576108206126c5565b9060005260206000209060090201600601611ee990919063ffffffff16565b949350505050565b6009548290811061086b5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610881576108816126c5565b600091825260209091206002600990920201015460ff1660038111156108a9576108a96123a6565b036108c75760405163195332a560e01b815260040160405180910390fd5b6108d2600133611e9d565b6108ef57604051630b094f2760e31b815260040160405180910390fd5b6109258360098681548110610906576109066126c5565b9060005260206000209060090201600401611e9190919063ffffffff16565b506040516305edb40160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632f6da00890610976903090889088906004016126db565b600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6040805160808101825260008082526060602083018190529282015281810191909152600954829081106109f55760405163aba4733960e01b815260040160405180910390fd5b600060098481548110610a0a57610a0a6126c5565b906000526020600020906009020190506000604051806080016040528083600001548152602001836001018054610a40906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c906126fc565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050509183525050600284015460209091019060ff166003811115610ae057610ae06123a6565b815260200183600301805480602002602001604051908101604052809291908181526020018280548015610b3357602002820191906000526020600020905b815481526020019060010190808311610b1f575b50505091909252509094505050505b50919050565b60085460009082908110610b6f5760405163aba4733960e01b815260040160405180910390fd5b610b9b60088481548110610b8557610b856126c5565b9060005260206000209060060201600301611ef5565b9392505050565b60085482908110610bc65760405163aba4733960e01b815260040160405180910390fd5b610bd1600133611e9d565b610bee57604051630b094f2760e31b815260040160405180910390fd5b610bf88280612730565b60088581548110610c0b57610c0b6126c5565b90600052602060002090600602016001019182610c299291906127c6565b50610c3a6040830160208401612893565b60088481548110610c4d57610c4d6126c5565b60009182526020909120600260069092020101805460ff19166001836003811115610c7a57610c7a6123a6565b02179055506040516396937b4360e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396937b43906044015b600060405180830381600087803b158015610ce857600080fd5b505af1158015610cfc573d6000803e3d6000fd5b50505050505050565b60095460009082908110610d2c5760405163aba4733960e01b815260040160405180910390fd5b610b9b60098481548110610d4257610d426126c5565b9060005260206000209060090201600401611ef5565b60095482908110610d7c5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610d9257610d926126c5565b600091825260209091206002600990920201015460ff166003811115610dba57610dba6123a6565b03610dd85760405163195332a560e01b815260040160405180910390fd5b610de3600133611e9d565b610e0057604051630b094f2760e31b815260040160405180910390fd5b610e0a8380612730565b60098681548110610e1d57610e1d6126c5565b90600052602060002090600902016001019182610e3b9291906127c6565b50610e4c6040840160208501612893565b60098581548110610e5f57610e5f6126c5565b60009182526020909120600260099092020101805460ff19166001836003811115610e8c57610e8c6123a6565b0217905550610e9e60408401846128b0565b60098681548110610eb157610eb16126c5565b90600052602060002090600902016003019190610ecf9291906122c5565b50604051633698763160e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d30ec6290604401610976565b6000610f30600183611e9d565b92915050565b60095482908110610f5a5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610f7057610f706126c5565b600091825260209091206002600990920201015460ff166003811115610f9857610f986123a6565b03610fb65760405163195332a560e01b815260040160405180910390fd5b610fc1600133611e9d565b610fde57604051630b094f2760e31b815260040160405180910390fd5b6110148360098681548110610ff557610ff56126c5565b9060005260206000209060090201600401611ebf90919063ffffffff16565b506040516314e2f8e960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063538be3a490610976903090889088906004016126db565b60006110716001611ef5565b905090565b6000611083600133611e9d565b6110a057604051630b094f2760e31b815260040160405180910390fd5b60088054600181018083556000838152919290839081106110c3576110c36126c5565b6000918252602090912060069091020182815590506110e28480612730565b60018301916110f29190836127c6565b5060028101805460ff19169055604051630a843ddb60e31b8152306004820152602481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635421eed890604401600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b50939695505050505050565b600854600090839081106111ae5760405163aba4733960e01b815260040160405180910390fd5b61083f83600886815481106111c5576111c56126c5565b9060005260206000209060060201600301611eff90919063ffffffff16565b60408051608081018252600080825260606020830181905292820152818101919091526008548390811061122b5760405163aba4733960e01b815260040160405180910390fd5b600060088581548110611240576112406126c5565b90600052602060002090600602016005018481548110611262576112626126c5565b90600052602060002001549050600060098281548110611284576112846126c5565b9060005260206000209060090201905060006040518060800160405280836000015481526020018360010180546112ba906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546112e6906126fc565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b5050509183525050600284015460209091019060ff16600381111561135a5761135a6123a6565b8152602001836003018054806020026020016040519081016040528092919081815260200182805480156113ad57602002820191906000526020600020905b815481526020019060010190808311611399575b50505091909252509098975050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461140b576040516313bd2e8360e31b815260040160405180910390fd5b6000818152600760205260409020541561142a57610683600682611ebf565b6000818152600560205260409020541561144957610683600482611ebf565b60405163148fe22160e11b815260040160405180910390fd5b50565b600954829081106114895760405163aba4733960e01b815260040160405180910390fd5b8260026009828154811061149f5761149f6126c5565b600091825260209091206002600990920201015460ff1660038111156114c7576114c76123a6565b036114e55760405163195332a560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461152e576040516313bd2e8360e31b815260040160405180910390fd5b6115388486611837565b6115555760405163148fe22160e11b815260040160405180910390fd5b61158b856009868154811061156c5761156c6126c5565b9060005260206000209060090201600601611f0b90919063ffffffff16565b6115cd576115c78584600987815481106115a7576115a76126c5565b9060005260206000209060090201600601611f179092919063ffffffff16565b50610770565b60006115e68660098781548110610820576108206126c5565b9050610cfc866115f68684612910565b600988815481106115a7576115a76126c5565b611611611f24565b61161b6000611f83565b565b611628600133611e9d565b61164557604051630b094f2760e31b815260040160405180910390fd5b60036106838282612923565b600854600090829081106116785760405163aba4733960e01b815260040160405180910390fd5b6008838154811061168b5761168b6126c5565b60009182526020909120600560069092020101549392505050565b600854829081106116ca5760405163aba4733960e01b815260040160405180910390fd5b6116d5600133611e9d565b6116f257604051630b094f2760e31b815260040160405180910390fd5b6117288260088581548110611709576117096126c5565b9060005260206000209060060201600301611ebf90919063ffffffff16565b5060405163249ea98f60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063927aa63c90610cce903090879087906004016126db565b606060038054611788906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546117b4906126fc565b80156118015780601f106117d657610100808354040283529160200191611801565b820191906000526020600020905b8154815290600101906020018083116117e457829003601f168201915b5050505050905090565b611813611f24565b610683600182611fd3565b60006110716004611ef5565b6000610f30600483611eff565b6009546000908390811061185e5760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611875576118756126c5565b9060005260206000209060090201600401611e7990919063ffffffff16565b600954600090829081106118bb5760405163aba4733960e01b815260040160405180910390fd5b610b9b600984815481106118d1576118d16126c5565b9060005260206000209060090201600601611fe8565b6008546000908390811061190e5760405163aba4733960e01b815260040160405180910390fd5b611919600133611e9d565b61193657604051630b094f2760e31b815260040160405180910390fd5b6009805460018101808355600083815291929083908110611959576119596126c5565b6000918252602090912060099091020182815590506119788580612730565b60018301916119889190836127c6565b5060028101805460ff191690556119a260208601866128b0565b6119b09160038401916122c5565b50600886815481106119c4576119c46126c5565b60009182526020808320600560069093020191909101805460018101825590835291200182905560405163546c8d8160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a8d91b0290611a3b9030908a9087906004016126db565b600060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b509398975050505050505050565b60006110716006611ef5565b6000610f30600683611eff565b611a9b600133611e9d565b611ab857604051630b094f2760e31b815260040160405180910390fd5b600081815260076020526040902054611ae457604051637146096160e01b815260040160405180910390fd5b611aef600682611ebf565b5060405163ed94a4d560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ed94a4d590604401610742565b6000818152600760205260408120541515610f30565b60085482908110611b7d5760405163aba4733960e01b815260040160405180910390fd5b611b88600133611e9d565b611ba557604051630b094f2760e31b815260040160405180910390fd5b611bdb8260088581548110611bbc57611bbc6126c5565b9060005260206000209060060201600301611e9190919063ffffffff16565b50604051630f20644960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c81912490610cce903090879087906004016126db565b6000818152600560205260408120541515610f30565b6000610f30600183611eff565b60095460009083908110611c765760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611c8d57611c8d6126c5565b9060005260206000209060090201600401611eff90919063ffffffff16565b611cb4611f24565b610683600182611ff3565b611cea6040805160808101825260008082526060602083015290918201908152602001600081525090565b60085482908110611d0e5760405163aba4733960e01b815260040160405180910390fd5b600060088481548110611d2357611d236126c5565b906000526020600020906006020190506000604051806080016040528083600001548152602001836001018054611d59906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d85906126fc565b8015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b5050509183525050600284015460209091019060ff166003811115611df957611df96123a6565b815260059093015460209093019290925250915050919050565b61146281612008565b60085460009083908110611e435760405163aba4733960e01b815260040160405180910390fd5b61083f8360088681548110611e5a57611e5a6126c5565b9060005260206000209060060201600301611e7990919063ffffffff16565b60009081526001919091016020526040902054151590565b6000610b9b838361207e565b6001600160a01b03811660009081526001830160205260408120541515610b9b565b6000610b9b83836120cd565b6000808080611eda86866121c0565b909450925050505b9250929050565b6000610b9b83836121eb565b6000610f30825490565b6000610b9b838361225b565b6000610b9b8383612285565b600061083f84848461229d565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b9b836001600160a01b0384166120cd565b6000610f30826122ba565b6000610b9b836001600160a01b03841661207e565b612010611f24565b6001600160a01b0381166120755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611f7a565b61146281611f83565b60008181526001830160205260408120546120c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f30565b506000610f30565b600081815260018301602052604081205480156121b65760006120f16001836129e3565b8554909150600090612105906001906129e3565b905081811461216a576000866000018281548110612125576121256126c5565b9060005260206000200154905080876000018481548110612148576121486126c5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061217b5761217b6129f6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f30565b6000915050610f30565b600080806121ce8585611eff565b600081815260029690960160205260409095205494959350505050565b60008181526002830160205260408120548015158061220f575061220f8484612285565b610b9b5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401611f7a565b6000826000018281548110612272576122726126c5565b9060005260206000200154905092915050565b60008181526001830160205260408120541515610b9b565b6000828152600284016020526040812082905561083f8484611e91565b6000610f3082611ef5565b828054828255906000526020600020908101928215612300579160200282015b828111156123005782358255916020019190600101906122e5565b5061230c929150612310565b5090565b5b8082111561230c5760008155600101612311565b60006020828403121561233757600080fd5b5035919050565b6000806040838503121561235157600080fd5b50508035926020909101359150565b6000815180845260005b818110156123865760208185018101518683018201520161236a565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6004811061146257634e487b7160e01b600052602160045260246000fd5b6000602080835283518184015280840151608060408501526123ff60a0850182612360565b9050604085015161240f816123bc565b606085810191909152850151848203601f19016080860152805180835290830191600091908401905b808310156124585783518252928401926001929092019190840190612438565b509695505050505050565b600060408284031215610b4257600080fd5b6000806040838503121561248857600080fd5b82359150602083013567ffffffffffffffff8111156124a657600080fd5b6124b285828601612463565b9150509250929050565b600080604083850312156124cf57600080fd5b82359150602083013567ffffffffffffffff8111156124ed57600080fd5b8301606081860312156124ff57600080fd5b809150509250929050565b60006020828403121561251c57600080fd5b81356001600160a01b0381168114610b9b57600080fd5b60006020828403121561254557600080fd5b813567ffffffffffffffff81111561255c57600080fd5b820160208185031215610b9b57600080fd5b60008060006060848603121561258357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156125c257600080fd5b813567ffffffffffffffff808211156125da57600080fd5b818401915084601f8301126125ee57600080fd5b8135818111156126005761260061259a565b604051601f8201601f19908116603f011681019083821181831017156126285761262861259a565b8160405282815287602084870101111561264157600080fd5b826020860160208301376000928101602001929092525095945050505050565b602081526000610b9b6020830184612360565b6020815281516020820152600060208301516080604084015261269a60a0840182612360565b905060408401516126aa816123bc565b80606085015250606084015160808401528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b600181811c9082168061271057607f821691505b602082108103610b4257634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261274757600080fd5b83018035915067ffffffffffffffff82111561276257600080fd5b602001915036819003821315611ee257600080fd5b601f8211156127c157600081815260208120601f850160051c8101602086101561279e5750805b601f850160051c820191505b818110156127bd578281556001016127aa565b5050505b505050565b67ffffffffffffffff8311156127de576127de61259a565b6127f2836127ec83546126fc565b83612777565b6000601f841160018114612826576000851561280e5750838201355b600019600387901b1c1916600186901b178355610770565b600083815260209020601f19861690835b828110156128575786850135825560209485019460019092019101612837565b50868210156128745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6004811061146257600080fd5b6000602082840312156128a557600080fd5b8135610b9b81612886565b6000808335601e198436030181126128c757600080fd5b83018035915067ffffffffffffffff8211156128e257600080fd5b6020019150600581901b3603821315611ee257600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610f3057610f306128fa565b815167ffffffffffffffff81111561293d5761293d61259a565b6129518161294b84546126fc565b84612777565b602080601f831160018114612986576000841561296e5750858301515b600019600386901b1c1916600185901b1785556127bd565b600085815260208120601f198616915b828110156129b557888601518255948401946001909101908401612996565b50858210156129d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610f3057610f306128fa565b634e487b7160e01b600052603160045260246000fdfea264697066735822122043646037aad8e0a325f3f5495dc99ecdd5d04d14719e319ffac2e33e9493f94264736f6c63430008110033a26469706673582212203bea7ff09947456759969c76e070232cee8a5d56330352ccf06015dc0e6a2d2d64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x300E 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 0xD8ECD925 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x10C JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x71 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2DFB DUP1 PUSH2 0x1DE DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x18A 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2DFB CODESIZE SUB DUP1 PUSH3 0x2DFB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xF1 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x5D JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 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 AND PUSH1 0x80 MSTORE PUSH3 0x74 CALLER PUSH3 0x8B JUMP JUMPDEST PUSH1 0x3 PUSH3 0x82 DUP3 DUP3 PUSH3 0x276 JUMP JUMPDEST POP POP POP PUSH3 0x342 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x11D 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 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0xDB 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 0x192 JUMPI PUSH3 0x192 PUSH3 0xDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH3 0x1CF JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH3 0x1B0 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x21D 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 0x271 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 0x24C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x26D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x258 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 0x292 JUMPI PUSH3 0x292 PUSH3 0xDB JUMP JUMPDEST PUSH3 0x2AA DUP2 PUSH3 0x2A3 DUP5 SLOAD PUSH3 0x1E7 JUMP JUMPDEST DUP5 PUSH3 0x223 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x2E2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x2C9 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 0x26D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x313 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2F2 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x332 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 0x2A42 PUSH3 0x3B9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4AE ADD MSTORE DUP2 DUP2 PUSH2 0x60D ADD MSTORE DUP2 DUP2 PUSH2 0x70F ADD MSTORE DUP2 DUP2 PUSH2 0x93D ADD MSTORE DUP2 DUP2 PUSH2 0xC9B ADD MSTORE DUP2 DUP2 PUSH2 0xEEC ADD MSTORE DUP2 DUP2 PUSH2 0x102C ADD MSTORE DUP2 DUP2 PUSH2 0x1123 ADD MSTORE DUP2 DUP2 PUSH2 0x13CD ADD MSTORE DUP2 DUP2 PUSH2 0x14F0 ADD MSTORE DUP2 DUP2 PUSH2 0x1740 ADD MSTORE DUP2 DUP2 PUSH2 0x1A02 ADD MSTORE DUP2 DUP2 PUSH2 0x1B0C ADD MSTORE PUSH2 0x1BF3 ADD MSTORE PUSH2 0x2A42 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 0x274 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D542A4F GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xC591493F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xD7511957 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xD7511957 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0xDAF91FFC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xE43252D7 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF0F3F2C8 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5DC JUMPI DUP1 PUSH4 0xFAD001A2 EQ PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC591493F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0xC59DB1AF EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xC763BBF4 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0xC7EA81FC EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xD50C7377 EQ PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA4C52B86 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xAB3545E5 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xAB4FBAC3 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAD91A095 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xAFCEFA71 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xBD9D867C EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D542A4F EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x86A92AF7 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x8AB1D681 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x997072F7 EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x52DD4EB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x52DD4EB1 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x67DFD4C9 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x6989FD6B EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0x750521F5 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x76A79DCC EQ PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0x3E2DE334 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x3EDFF20F EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x41AAFEF7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x49386C56 EQ PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0x254C290D EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2565D6C5 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x2825EE48 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x2A10FB85 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49878F3 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x6E30412 EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x7450ADC EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xE1E20A2 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x1599BEA5 EQ PUSH2 0x2EF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28C PUSH2 0x29C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x687 JUMP JUMPDEST PUSH2 0x2B4 PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xD05 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x24BC JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2E1 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0xF36 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2533 JUMP JUMPDEST PUSH2 0x1076 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1187 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x256E JUMP JUMPDEST PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x1609 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x25B0 JUMP JUMPDEST PUSH2 0x161D JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x45C PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x180B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x181E JUMP JUMPDEST PUSH2 0x489 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x182A JUMP JUMPDEST PUSH2 0x381 PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0x18E7 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1A77 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x532 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x558 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1B59 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x57E CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C2C JUMP JUMPDEST PUSH2 0x489 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1C4F JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1CAC JUMP JUMPDEST PUSH2 0x5CF PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1E13 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1E1C JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x678 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40803A5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x692 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6E6 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH2 0x6F2 PUSH1 0x4 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x16B726E5 PUSH1 0xE0 SHL 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 0x16B726E5 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x770 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x9 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x7A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1EE9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x881 JUMPI PUSH2 0x881 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH2 0x8A9 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x8C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8D2 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x8EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x906 JUMPI PUSH2 0x906 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x5EDB401 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2F6DA008 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xA0A JUMPI PUSH2 0xA0A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xA40 SWAP1 PUSH2 0x26FC 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 0xA6C SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAB9 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 0xA9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0xB33 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 0xB1F JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP5 POP POP POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB85 JUMPI PUSH2 0xB85 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EF5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xBC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xBEE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBF8 DUP3 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC0B JUMPI PUSH2 0xC0B PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xC29 SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xC3A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC7A PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD PUSH4 0x96937B43 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x96937B43 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD92 JUMPI PUSH2 0xD92 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDBA JUMPI PUSH2 0xDBA PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xDD8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDE3 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xE00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE0A DUP4 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xE1D JUMPI PUSH2 0xE1D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xE4C PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x9 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xE5F JUMPI PUSH2 0xE5F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE8C JUMPI PUSH2 0xE8C PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE9E PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x28B0 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xEB1 JUMPI PUSH2 0xEB1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x3 ADD SWAP2 SWAP1 PUSH2 0xECF SWAP3 SWAP2 SWAP1 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x36987631 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6D30EC62 SWAP1 PUSH1 0x44 ADD PUSH2 0x976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1E9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xF70 JUMPI PUSH2 0xF70 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF98 JUMPI PUSH2 0xF98 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xFB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFC1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFDE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1014 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xFF5 JUMPI PUSH2 0xFF5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x14E2F8E9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x538BE3A4 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x1 PUSH2 0x1EF5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1083 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x10A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x10C3 JUMPI PUSH2 0x10C3 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x10E2 DUP5 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x10F2 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0xA843DDB PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x5421EED8 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x117B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x11AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x11C5 JUMPI PUSH2 0x11C5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x8 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x122B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1240 JUMPI PUSH2 0x1240 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1262 JUMPI PUSH2 0x1262 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x12BA SWAP1 PUSH2 0x26FC 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 0x12E6 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1333 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1308 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1333 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 0x1316 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x135A JUMPI PUSH2 0x135A PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0x13AD 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 0x1399 JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x140B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x142A JUMPI PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1449 JUMPI PUSH2 0x683 PUSH1 0x4 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1489 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x149F JUMPI PUSH2 0x149F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C7 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x14E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x152E JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1538 DUP5 DUP7 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1555 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x158B DUP6 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x156C JUMPI PUSH2 0x156C PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F0B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15CD JUMPI PUSH2 0x15C7 DUP6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x770 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP7 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 POP PUSH2 0xCFC DUP7 PUSH2 0x15F6 DUP7 DUP5 PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x9 DUP9 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST PUSH2 0x1611 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x161B PUSH1 0x0 PUSH2 0x1F83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1628 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1645 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x683 DUP3 DUP3 PUSH2 0x2923 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x168B JUMPI PUSH2 0x168B PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD SLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16D5 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1728 DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1709 JUMPI PUSH2 0x1709 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x249EA98F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x927AA63C SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1788 SWAP1 PUSH2 0x26FC 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 0x17B4 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1801 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17D6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1801 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 0x17E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1813 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FD3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x4 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x4 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1875 JUMPI PUSH2 0x1875 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x18BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x18D1 JUMPI PUSH2 0x18D1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1FE8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1919 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1936 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1959 JUMPI PUSH2 0x1959 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x9 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x1978 DUP6 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x1988 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x19A2 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0x19B0 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x546C8D81 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA8D91B02 SWAP1 PUSH2 0x1A3B SWAP1 ADDRESS SWAP1 DUP11 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x6 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x6 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x1A9B PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1AB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1AE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AEF PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xED94A4D5 PUSH1 0xE0 SHL 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 0xED94A4D5 SWAP1 PUSH1 0x44 ADD PUSH2 0x742 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1B7D JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B88 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1BA5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDB DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF206449 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3C819124 SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1C76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1C8D JUMPI PUSH2 0x1C8D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1CB4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FF3 JUMP JUMPDEST PUSH2 0x1CEA PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1D0E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1D23 JUMPI PUSH2 0x1D23 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1D59 SWAP1 PUSH2 0x26FC 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 0x1D85 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1DA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DD2 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 0x1DB5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1DF9 JUMPI PUSH2 0x1DF9 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP4 ADD SLOAD PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1E43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1E5A JUMPI PUSH2 0x1E5A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1EDA DUP7 DUP7 PUSH2 0x21C0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x2285 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83F DUP5 DUP5 DUP5 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x161B 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x207E JUMP JUMPDEST PUSH2 0x2010 PUSH2 0x1F24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x1F83 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x20C5 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 0xF30 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21B6 JUMPI PUSH1 0x0 PUSH2 0x20F1 PUSH1 0x1 DUP4 PUSH2 0x29E3 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2105 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x216A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2125 JUMPI PUSH2 0x2125 PUSH2 0x26C5 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 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x26C5 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 0x217B JUMPI PUSH2 0x217B PUSH2 0x29F6 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 0xF30 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x21CE DUP6 DUP6 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0x220F JUMPI POP PUSH2 0x220F DUP5 DUP5 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0xB9B 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2272 JUMPI PUSH2 0x2272 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x83F DUP5 DUP5 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x1EF5 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2300 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2300 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22E5 JUMP JUMPDEST POP PUSH2 0x230C SWAP3 SWAP2 POP PUSH2 0x2310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x230C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2311 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2386 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x236A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x23FF PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x240F DUP2 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x1F NOT ADD PUSH1 0x80 DUP7 ADD MSTORE DUP1 MLOAD DUP1 DUP4 MSTORE SWAP1 DUP4 ADD SWAP2 PUSH1 0x0 SWAP2 SWAP1 DUP5 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2458 JUMPI DUP4 MLOAD DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x2438 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24B2 DUP6 DUP3 DUP7 ADD PUSH2 0x2463 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x60 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x24FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x255C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2600 JUMPI PUSH2 0x2600 PUSH2 0x259A 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 0x2628 JUMPI PUSH2 0x2628 PUSH2 0x259A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB9B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x269A PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x26AA DUP2 PUSH2 0x23BC JUMP JUMPDEST DUP1 PUSH1 0x60 DUP6 ADD MSTORE POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2710 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xB42 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x27C1 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 0x279E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27BD JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27AA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x27DE JUMPI PUSH2 0x27DE PUSH2 0x259A JUMP JUMPDEST PUSH2 0x27F2 DUP4 PUSH2 0x27EC DUP4 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP4 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2826 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x280E 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 0x770 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2857 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2837 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x2874 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 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB9B DUP2 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x28C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293D PUSH2 0x259A JUMP JUMPDEST PUSH2 0x2951 DUP2 PUSH2 0x294B DUP5 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP5 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2986 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x296E 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 0x27BD JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x29B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2996 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x29D3 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 DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA 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 NUMBER PUSH5 0x6037AAD8E0 LOG3 0x25 RETURN CREATE2 0x49 0x5D 0xC9 SWAP15 0xCD 0xD5 0xD0 0x4D EQ PUSH18 0x9E319FFAC2E33E9493F94264736F6C634300 ADDMOD GT STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE 0xEA PUSH32 0xF09947456759969C76E070232CEE8A5D56330352CCF06015DC0E6A2D2D64736F PUSH13 0x63430008110033000000000000 ","sourceMap":"152:304:84:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@createOrganization_24266":{"entryPoint":95,"id":24266,"parameterSlots":3,"returnSlots":1},"abi_decode_tuple_t_addresst_string_calldata_ptr":{"entryPoint":268,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed":{"entryPoint":413,"id":null,"parameterSlots":4,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1482:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"121:659:89","statements":[{"body":{"nodeType":"YulBlock","src":"167:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"176:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"179:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:89"},"nodeType":"YulFunctionCall","src":"169:12:89"},"nodeType":"YulExpressionStatement","src":"169:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"142:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"151:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"138:3:89"},"nodeType":"YulFunctionCall","src":"138:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"163:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"134:3:89"},"nodeType":"YulFunctionCall","src":"134:32:89"},"nodeType":"YulIf","src":"131:52:89"},{"nodeType":"YulVariableDeclaration","src":"192:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"218:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"205:12:89"},"nodeType":"YulFunctionCall","src":"205:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"196:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"291:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"300:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"303:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"293:6:89"},"nodeType":"YulFunctionCall","src":"293:12:89"},"nodeType":"YulExpressionStatement","src":"293:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"250:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"261:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"276:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"281:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"272:3:89"},"nodeType":"YulFunctionCall","src":"272:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"285:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"268:3:89"},"nodeType":"YulFunctionCall","src":"268:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"257:3:89"},"nodeType":"YulFunctionCall","src":"257:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"247:2:89"},"nodeType":"YulFunctionCall","src":"247:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"240:6:89"},"nodeType":"YulFunctionCall","src":"240:50:89"},"nodeType":"YulIf","src":"237:70:89"},{"nodeType":"YulAssignment","src":"316:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"326:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"316:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"340:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"371:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"382:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"367:3:89"},"nodeType":"YulFunctionCall","src":"367:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"354:12:89"},"nodeType":"YulFunctionCall","src":"354:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"344:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"395:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"405:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"399:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"450:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"459:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"462:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"452:6:89"},"nodeType":"YulFunctionCall","src":"452:12:89"},"nodeType":"YulExpressionStatement","src":"452:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"438:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"446:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"435:2:89"},"nodeType":"YulFunctionCall","src":"435:14:89"},"nodeType":"YulIf","src":"432:34:89"},{"nodeType":"YulVariableDeclaration","src":"475:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"489:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"500:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"485:3:89"},"nodeType":"YulFunctionCall","src":"485:22:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"479:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"555:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"564:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"567:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"557:6:89"},"nodeType":"YulFunctionCall","src":"557:12:89"},"nodeType":"YulExpressionStatement","src":"557:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"534:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"538:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"530:3:89"},"nodeType":"YulFunctionCall","src":"530:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"545:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"526:3:89"},"nodeType":"YulFunctionCall","src":"526:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"519:6:89"},"nodeType":"YulFunctionCall","src":"519:35:89"},"nodeType":"YulIf","src":"516:55:89"},{"nodeType":"YulVariableDeclaration","src":"580:30:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"607:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"594:12:89"},"nodeType":"YulFunctionCall","src":"594:16:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"584:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"637:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"646:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"649:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"639:6:89"},"nodeType":"YulFunctionCall","src":"639:12:89"},"nodeType":"YulExpressionStatement","src":"639:12:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"625:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"633:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"622:2:89"},"nodeType":"YulFunctionCall","src":"622:14:89"},"nodeType":"YulIf","src":"619:34:89"},{"body":{"nodeType":"YulBlock","src":"703:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"712:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"715:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"705:6:89"},"nodeType":"YulFunctionCall","src":"705:12:89"},"nodeType":"YulExpressionStatement","src":"705:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"676:2:89"},{"name":"length","nodeType":"YulIdentifier","src":"680:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"672:3:89"},"nodeType":"YulFunctionCall","src":"672:15:89"},{"kind":"number","nodeType":"YulLiteral","src":"689:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"668:3:89"},"nodeType":"YulFunctionCall","src":"668:24:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"694:7:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"665:2:89"},"nodeType":"YulFunctionCall","src":"665:37:89"},"nodeType":"YulIf","src":"662:57:89"},{"nodeType":"YulAssignment","src":"728:21:89","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"742:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"746:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:89"},"nodeType":"YulFunctionCall","src":"738:11:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"728:6:89"}]},{"nodeType":"YulAssignment","src":"758:16:89","value":{"name":"length","nodeType":"YulIdentifier","src":"768:6:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"758:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_string_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"71:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"82:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"94:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"102:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"110:6:89","type":""}],"src":"14:766:89"},{"body":{"nodeType":"YulBlock","src":"886:102:89","statements":[{"nodeType":"YulAssignment","src":"896:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"908:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"919:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"904:3:89"},"nodeType":"YulFunctionCall","src":"904:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"896:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"938:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"953:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"969:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"974:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"965:3:89"},"nodeType":"YulFunctionCall","src":"965:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"978:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"961:3:89"},"nodeType":"YulFunctionCall","src":"961:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"949:3:89"},"nodeType":"YulFunctionCall","src":"949:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"931:6:89"},"nodeType":"YulFunctionCall","src":"931:51:89"},"nodeType":"YulExpressionStatement","src":"931:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"855:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"866:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"877:4:89","type":""}],"src":"785:203:89"},{"body":{"nodeType":"YulBlock","src":"1152:328:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1169:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1184:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1200:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1205:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1196:3:89"},"nodeType":"YulFunctionCall","src":"1196:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1209:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1192:3:89"},"nodeType":"YulFunctionCall","src":"1192:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1180:3:89"},"nodeType":"YulFunctionCall","src":"1180:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1162:6:89"},"nodeType":"YulFunctionCall","src":"1162:51:89"},"nodeType":"YulExpressionStatement","src":"1162:51:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1233:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1244:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1229:3:89"},"nodeType":"YulFunctionCall","src":"1229:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"1249:2:89","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1222:6:89"},"nodeType":"YulFunctionCall","src":"1222:30:89"},"nodeType":"YulExpressionStatement","src":"1222:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1272:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1283:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1268:3:89"},"nodeType":"YulFunctionCall","src":"1268:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"1288:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1261:6:89"},"nodeType":"YulFunctionCall","src":"1261:34:89"},"nodeType":"YulExpressionStatement","src":"1261:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1321:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1332:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1317:3:89"},"nodeType":"YulFunctionCall","src":"1317:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"1337:6:89"},{"name":"value2","nodeType":"YulIdentifier","src":"1345:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1304:12:89"},"nodeType":"YulFunctionCall","src":"1304:48:89"},"nodeType":"YulExpressionStatement","src":"1304:48:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1376:9:89"},{"name":"value2","nodeType":"YulIdentifier","src":"1387:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1372:3:89"},"nodeType":"YulFunctionCall","src":"1372:22:89"},{"kind":"number","nodeType":"YulLiteral","src":"1396:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1368:3:89"},"nodeType":"YulFunctionCall","src":"1368:31:89"},{"kind":"number","nodeType":"YulLiteral","src":"1401:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1361:6:89"},"nodeType":"YulFunctionCall","src":"1361:42:89"},"nodeType":"YulExpressionStatement","src":"1361:42:89"},{"nodeType":"YulAssignment","src":"1412:62:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1428:9:89"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1447:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1455:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1443:3:89"},"nodeType":"YulFunctionCall","src":"1443:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1464:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1460:3:89"},"nodeType":"YulFunctionCall","src":"1460:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1439:3:89"},"nodeType":"YulFunctionCall","src":"1439:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1424:3:89"},"nodeType":"YulFunctionCall","src":"1424:45:89"},{"kind":"number","nodeType":"YulLiteral","src":"1471:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1420:3:89"},"nodeType":"YulFunctionCall","src":"1420:54:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1412:4:89"}]}]},"name":"abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1105:9:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1116:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1124:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1132:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1143:4:89","type":""}],"src":"993:487:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_addresst_string_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, sub(shl(160, 1), 1)))) { 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, length), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 64)\n        mstore(add(headStart, 64), value2)\n        calldatacopy(add(headStart, 96), value1, value2)\n        mstore(add(add(headStart, value2), 96), 0)\n        tail := add(add(headStart, and(add(value2, 31), not(31))), 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d8ecd92514610030575b600080fd5b61004361003e36600461010c565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b600080848484604051610071906100ff565b61007d9392919061019d565b604051809103906000f080158015610099573d6000803e3d6000fd5b5060405163f2fde38b60e01b81523360048201529091506001600160a01b0382169063f2fde38b90602401600060405180830381600087803b1580156100de57600080fd5b505af11580156100f2573d6000803e3d6000fd5b5092979650505050505050565b612dfb806101de83390190565b60008060006040848603121561012157600080fd5b83356001600160a01b038116811461013857600080fd5b9250602084013567ffffffffffffffff8082111561015557600080fd5b818601915086601f83011261016957600080fd5b81358181111561017857600080fd5b87602082850101111561018a57600080fd5b6020830194508093505050509250925092565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f191601019291505056fe60a06040523480156200001157600080fd5b5060405162002dfb38038062002dfb8339810160408190526200003491620000f1565b816001600160a01b0381166200005d576040516348be0eb360e01b815260040160405180910390fd5b6001600160a01b031660805262000074336200008b565b600362000082828262000276565b50505062000342565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200010557600080fd5b82516001600160a01b03811681146200011d57600080fd5b602084810151919350906001600160401b03808211156200013d57600080fd5b818601915086601f8301126200015257600080fd5b815181811115620001675762000167620000db565b604051601f8201601f19908116603f01168101908382118183101715620001925762000192620000db565b816040528281528986848701011115620001ab57600080fd5b600093505b82841015620001cf5784840186015181850187015292850192620001b0565b60008684830101528096505050505050509250929050565b600181811c90821680620001fc57607f821691505b6020821081036200021d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027157600081815260208120601f850160051c810160208610156200024c5750805b601f850160051c820191505b818110156200026d5782815560010162000258565b5050505b505050565b81516001600160401b03811115620002925762000292620000db565b620002aa81620002a38454620001e7565b8462000223565b602080601f831160018114620002e25760008415620002c95750858301515b600019600386901b1c1916600185901b1785556200026d565b600085815260208120601f198616915b828110156200031357888601518255948401946001909101908401620002f2565b5085821015620003325787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051612a42620003b9600039600081816104ae0152818161060d0152818161070f0152818161093d01528181610c9b01528181610eec0152818161102c01528181611123015281816113cd015281816114f00152818161174001528181611a0201528181611b0c0152611bf30152612a426000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80637d542a4f11610151578063c591493f116100c3578063d751195711610087578063d751195714610583578063daf91ffc14610596578063e43252d7146105a9578063f0f3f2c8146105bc578063f2fde38b146105dc578063fad001a2146105ef57600080fd5b8063c591493f14610524578063c59db1af14610537578063c763bbf41461054a578063c7ea81fc1461055d578063d50c73771461057057600080fd5b8063a4c52b8611610115578063a4c52b86146104a9578063ab3545e5146104d0578063ab4fbac3146104e3578063ad91a095146104f6578063afcefa7114610509578063bd9d867c1461051c57600080fd5b80637d542a4f1461044157806386a92af7146104545780638ab1d681146104695780638da5cb5b1461047c578063997072f7146104a157600080fd5b80633bcff3b0116101ea57806352dd4eb1116101ae57806352dd4eb1146103da57806367dfd4c9146103ed5780636989fd6b14610400578063715018a614610413578063750521f51461041b57806376a79dcc1461042e57600080fd5b80633bcff3b0146103915780633e2de334146103995780633edff20f146103ac57806341aafef7146103b457806349386c56146103c757600080fd5b80631d65e77e1161023c5780631d65e77e14610302578063254c290d146103225780632565d6c5146103355780632825ee48146103485780632a10fb851461035b5780633af32abf1461036e57600080fd5b8063049878f31461027957806306e304121461028e57806307450adc146102a15780630e1e20a2146102ce5780631599bea5146102ef575b600080fd5b61028c610287366004612325565b610602565b005b61028c61029c366004612325565b610687565b6102b46102af36600461233e565b610777565b604080519283526020830191909152015b60405180910390f35b6102e16102dc36600461233e565b6107e2565b6040519081526020016102c5565b61028c6102fd36600461233e565b610847565b610315610310366004612325565b6109ae565b6040516102c591906123da565b6102e1610330366004612325565b610b48565b61028c610343366004612475565b610ba2565b6102e1610356366004612325565b610d05565b61028c6103693660046124bc565b610d58565b61038161037c36600461250a565b610f23565b60405190151581526020016102c5565b6008546102e1565b61028c6103a736600461233e565b610f36565b6102e1611065565b6102e16103c2366004612533565b611076565b6102e16103d536600461233e565b611187565b6103156103e836600461233e565b6111e4565b61028c6103fb366004612325565b6113c2565b61028c61040e36600461256e565b611465565b61028c611609565b61028c6104293660046125b0565b61161d565b6102e161043c366004612325565b611651565b61028c61044f36600461233e565b6116a6565b61045c611779565b6040516102c59190612661565b61028c61047736600461250a565b61180b565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016102c5565b6102e161181e565b6104897f000000000000000000000000000000000000000000000000000000000000000081565b6102e16104de366004612325565b61182a565b6103816104f136600461233e565b611837565b6102e1610504366004612325565b611894565b6102e1610517366004612475565b6118e7565b6102e1611a77565b6102e1610532366004612325565b611a83565b61028c610545366004612325565b611a90565b610381610558366004612325565b611b43565b61028c61056b36600461233e565b611b59565b61038161057e366004612325565b611c2c565b610489610591366004612325565b611c42565b6102e16105a436600461233e565b611c4f565b61028c6105b736600461250a565b611cac565b6105cf6105ca366004612325565b611cbf565b6040516102c59190612674565b61028c6105ea36600461250a565b611e13565b6103816105fd36600461233e565b611e1c565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461064b576040516313bd2e8360e31b815260040160405180910390fd5b60008181526005602052604090205415610678576040516340803a5f60e11b815260040160405180910390fd5b610683600682611e91565b5050565b610692600133611e9d565b6106af57604051630b094f2760e31b815260040160405180910390fd5b6000818152600760205260409020546106db57604051637146096160e01b815260040160405180910390fd5b6106e6600682611ebf565b506106f2600482611e91565b506040516316b726e560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906316b726e5906044015b600060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b5050505050565b6000808360098054905081106107a05760405163aba4733960e01b815260040160405180910390fd5b6107d684600987815481106107b7576107b76126c5565b9060005260206000209060090201600601611ecb90919063ffffffff16565b92509250509250929050565b600954600090839081106108095760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110610820576108206126c5565b9060005260206000209060090201600601611ee990919063ffffffff16565b949350505050565b6009548290811061086b5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610881576108816126c5565b600091825260209091206002600990920201015460ff1660038111156108a9576108a96123a6565b036108c75760405163195332a560e01b815260040160405180910390fd5b6108d2600133611e9d565b6108ef57604051630b094f2760e31b815260040160405180910390fd5b6109258360098681548110610906576109066126c5565b9060005260206000209060090201600401611e9190919063ffffffff16565b506040516305edb40160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632f6da00890610976903090889088906004016126db565b600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b5050505050505050565b6040805160808101825260008082526060602083018190529282015281810191909152600954829081106109f55760405163aba4733960e01b815260040160405180910390fd5b600060098481548110610a0a57610a0a6126c5565b906000526020600020906009020190506000604051806080016040528083600001548152602001836001018054610a40906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c906126fc565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050509183525050600284015460209091019060ff166003811115610ae057610ae06123a6565b815260200183600301805480602002602001604051908101604052809291908181526020018280548015610b3357602002820191906000526020600020905b815481526020019060010190808311610b1f575b50505091909252509094505050505b50919050565b60085460009082908110610b6f5760405163aba4733960e01b815260040160405180910390fd5b610b9b60088481548110610b8557610b856126c5565b9060005260206000209060060201600301611ef5565b9392505050565b60085482908110610bc65760405163aba4733960e01b815260040160405180910390fd5b610bd1600133611e9d565b610bee57604051630b094f2760e31b815260040160405180910390fd5b610bf88280612730565b60088581548110610c0b57610c0b6126c5565b90600052602060002090600602016001019182610c299291906127c6565b50610c3a6040830160208401612893565b60088481548110610c4d57610c4d6126c5565b60009182526020909120600260069092020101805460ff19166001836003811115610c7a57610c7a6123a6565b02179055506040516396937b4360e01b8152306004820152602481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906396937b43906044015b600060405180830381600087803b158015610ce857600080fd5b505af1158015610cfc573d6000803e3d6000fd5b50505050505050565b60095460009082908110610d2c5760405163aba4733960e01b815260040160405180910390fd5b610b9b60098481548110610d4257610d426126c5565b9060005260206000209060090201600401611ef5565b60095482908110610d7c5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610d9257610d926126c5565b600091825260209091206002600990920201015460ff166003811115610dba57610dba6123a6565b03610dd85760405163195332a560e01b815260040160405180910390fd5b610de3600133611e9d565b610e0057604051630b094f2760e31b815260040160405180910390fd5b610e0a8380612730565b60098681548110610e1d57610e1d6126c5565b90600052602060002090600902016001019182610e3b9291906127c6565b50610e4c6040840160208501612893565b60098581548110610e5f57610e5f6126c5565b60009182526020909120600260099092020101805460ff19166001836003811115610e8c57610e8c6123a6565b0217905550610e9e60408401846128b0565b60098681548110610eb157610eb16126c5565b90600052602060002090600902016003019190610ecf9291906122c5565b50604051633698763160e11b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d30ec6290604401610976565b6000610f30600183611e9d565b92915050565b60095482908110610f5a5760405163aba4733960e01b815260040160405180910390fd5b82600260098281548110610f7057610f706126c5565b600091825260209091206002600990920201015460ff166003811115610f9857610f986123a6565b03610fb65760405163195332a560e01b815260040160405180910390fd5b610fc1600133611e9d565b610fde57604051630b094f2760e31b815260040160405180910390fd5b6110148360098681548110610ff557610ff56126c5565b9060005260206000209060090201600401611ebf90919063ffffffff16565b506040516314e2f8e960e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063538be3a490610976903090889088906004016126db565b60006110716001611ef5565b905090565b6000611083600133611e9d565b6110a057604051630b094f2760e31b815260040160405180910390fd5b60088054600181018083556000838152919290839081106110c3576110c36126c5565b6000918252602090912060069091020182815590506110e28480612730565b60018301916110f29190836127c6565b5060028101805460ff19169055604051630a843ddb60e31b8152306004820152602481018390526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635421eed890604401600060405180830381600087803b15801561116757600080fd5b505af115801561117b573d6000803e3d6000fd5b50939695505050505050565b600854600090839081106111ae5760405163aba4733960e01b815260040160405180910390fd5b61083f83600886815481106111c5576111c56126c5565b9060005260206000209060060201600301611eff90919063ffffffff16565b60408051608081018252600080825260606020830181905292820152818101919091526008548390811061122b5760405163aba4733960e01b815260040160405180910390fd5b600060088581548110611240576112406126c5565b90600052602060002090600602016005018481548110611262576112626126c5565b90600052602060002001549050600060098281548110611284576112846126c5565b9060005260206000209060090201905060006040518060800160405280836000015481526020018360010180546112ba906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546112e6906126fc565b80156113335780601f1061130857610100808354040283529160200191611333565b820191906000526020600020905b81548152906001019060200180831161131657829003601f168201915b5050509183525050600284015460209091019060ff16600381111561135a5761135a6123a6565b8152602001836003018054806020026020016040519081016040528092919081815260200182805480156113ad57602002820191906000526020600020905b815481526020019060010190808311611399575b50505091909252509098975050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461140b576040516313bd2e8360e31b815260040160405180910390fd5b6000818152600760205260409020541561142a57610683600682611ebf565b6000818152600560205260409020541561144957610683600482611ebf565b60405163148fe22160e11b815260040160405180910390fd5b50565b600954829081106114895760405163aba4733960e01b815260040160405180910390fd5b8260026009828154811061149f5761149f6126c5565b600091825260209091206002600990920201015460ff1660038111156114c7576114c76123a6565b036114e55760405163195332a560e01b815260040160405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461152e576040516313bd2e8360e31b815260040160405180910390fd5b6115388486611837565b6115555760405163148fe22160e11b815260040160405180910390fd5b61158b856009868154811061156c5761156c6126c5565b9060005260206000209060090201600601611f0b90919063ffffffff16565b6115cd576115c78584600987815481106115a7576115a76126c5565b9060005260206000209060090201600601611f179092919063ffffffff16565b50610770565b60006115e68660098781548110610820576108206126c5565b9050610cfc866115f68684612910565b600988815481106115a7576115a76126c5565b611611611f24565b61161b6000611f83565b565b611628600133611e9d565b61164557604051630b094f2760e31b815260040160405180910390fd5b60036106838282612923565b600854600090829081106116785760405163aba4733960e01b815260040160405180910390fd5b6008838154811061168b5761168b6126c5565b60009182526020909120600560069092020101549392505050565b600854829081106116ca5760405163aba4733960e01b815260040160405180910390fd5b6116d5600133611e9d565b6116f257604051630b094f2760e31b815260040160405180910390fd5b6117288260088581548110611709576117096126c5565b9060005260206000209060060201600301611ebf90919063ffffffff16565b5060405163249ea98f60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063927aa63c90610cce903090879087906004016126db565b606060038054611788906126fc565b80601f01602080910402602001604051908101604052809291908181526020018280546117b4906126fc565b80156118015780601f106117d657610100808354040283529160200191611801565b820191906000526020600020905b8154815290600101906020018083116117e457829003601f168201915b5050505050905090565b611813611f24565b610683600182611fd3565b60006110716004611ef5565b6000610f30600483611eff565b6009546000908390811061185e5760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611875576118756126c5565b9060005260206000209060090201600401611e7990919063ffffffff16565b600954600090829081106118bb5760405163aba4733960e01b815260040160405180910390fd5b610b9b600984815481106118d1576118d16126c5565b9060005260206000209060090201600601611fe8565b6008546000908390811061190e5760405163aba4733960e01b815260040160405180910390fd5b611919600133611e9d565b61193657604051630b094f2760e31b815260040160405180910390fd5b6009805460018101808355600083815291929083908110611959576119596126c5565b6000918252602090912060099091020182815590506119788580612730565b60018301916119889190836127c6565b5060028101805460ff191690556119a260208601866128b0565b6119b09160038401916122c5565b50600886815481106119c4576119c46126c5565b60009182526020808320600560069093020191909101805460018101825590835291200182905560405163546c8d8160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a8d91b0290611a3b9030908a9087906004016126db565b600060405180830381600087803b158015611a5557600080fd5b505af1158015611a69573d6000803e3d6000fd5b509398975050505050505050565b60006110716006611ef5565b6000610f30600683611eff565b611a9b600133611e9d565b611ab857604051630b094f2760e31b815260040160405180910390fd5b600081815260076020526040902054611ae457604051637146096160e01b815260040160405180910390fd5b611aef600682611ebf565b5060405163ed94a4d560e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ed94a4d590604401610742565b6000818152600760205260408120541515610f30565b60085482908110611b7d5760405163aba4733960e01b815260040160405180910390fd5b611b88600133611e9d565b611ba557604051630b094f2760e31b815260040160405180910390fd5b611bdb8260088581548110611bbc57611bbc6126c5565b9060005260206000209060060201600301611e9190919063ffffffff16565b50604051630f20644960e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c81912490610cce903090879087906004016126db565b6000818152600560205260408120541515610f30565b6000610f30600183611eff565b60095460009083908110611c765760405163aba4733960e01b815260040160405180910390fd5b61083f8360098681548110611c8d57611c8d6126c5565b9060005260206000209060090201600401611eff90919063ffffffff16565b611cb4611f24565b610683600182611ff3565b611cea6040805160808101825260008082526060602083015290918201908152602001600081525090565b60085482908110611d0e5760405163aba4733960e01b815260040160405180910390fd5b600060088481548110611d2357611d236126c5565b906000526020600020906006020190506000604051806080016040528083600001548152602001836001018054611d59906126fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d85906126fc565b8015611dd25780601f10611da757610100808354040283529160200191611dd2565b820191906000526020600020905b815481529060010190602001808311611db557829003601f168201915b5050509183525050600284015460209091019060ff166003811115611df957611df96123a6565b815260059093015460209093019290925250915050919050565b61146281612008565b60085460009083908110611e435760405163aba4733960e01b815260040160405180910390fd5b61083f8360088681548110611e5a57611e5a6126c5565b9060005260206000209060060201600301611e7990919063ffffffff16565b60009081526001919091016020526040902054151590565b6000610b9b838361207e565b6001600160a01b03811660009081526001830160205260408120541515610b9b565b6000610b9b83836120cd565b6000808080611eda86866121c0565b909450925050505b9250929050565b6000610b9b83836121eb565b6000610f30825490565b6000610b9b838361225b565b6000610b9b8383612285565b600061083f84848461229d565b6000546001600160a01b0316331461161b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610b9b836001600160a01b0384166120cd565b6000610f30826122ba565b6000610b9b836001600160a01b03841661207e565b612010611f24565b6001600160a01b0381166120755760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611f7a565b61146281611f83565b60008181526001830160205260408120546120c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f30565b506000610f30565b600081815260018301602052604081205480156121b65760006120f16001836129e3565b8554909150600090612105906001906129e3565b905081811461216a576000866000018281548110612125576121256126c5565b9060005260206000200154905080876000018481548110612148576121486126c5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061217b5761217b6129f6565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f30565b6000915050610f30565b600080806121ce8585611eff565b600081815260029690960160205260409095205494959350505050565b60008181526002830160205260408120548015158061220f575061220f8484612285565b610b9b5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401611f7a565b6000826000018281548110612272576122726126c5565b9060005260206000200154905092915050565b60008181526001830160205260408120541515610b9b565b6000828152600284016020526040812082905561083f8484611e91565b6000610f3082611ef5565b828054828255906000526020600020908101928215612300579160200282015b828111156123005782358255916020019190600101906122e5565b5061230c929150612310565b5090565b5b8082111561230c5760008155600101612311565b60006020828403121561233757600080fd5b5035919050565b6000806040838503121561235157600080fd5b50508035926020909101359150565b6000815180845260005b818110156123865760208185018101518683018201520161236a565b506000602082860101526020601f19601f83011685010191505092915050565b634e487b7160e01b600052602160045260246000fd5b6004811061146257634e487b7160e01b600052602160045260246000fd5b6000602080835283518184015280840151608060408501526123ff60a0850182612360565b9050604085015161240f816123bc565b606085810191909152850151848203601f19016080860152805180835290830191600091908401905b808310156124585783518252928401926001929092019190840190612438565b509695505050505050565b600060408284031215610b4257600080fd5b6000806040838503121561248857600080fd5b82359150602083013567ffffffffffffffff8111156124a657600080fd5b6124b285828601612463565b9150509250929050565b600080604083850312156124cf57600080fd5b82359150602083013567ffffffffffffffff8111156124ed57600080fd5b8301606081860312156124ff57600080fd5b809150509250929050565b60006020828403121561251c57600080fd5b81356001600160a01b0381168114610b9b57600080fd5b60006020828403121561254557600080fd5b813567ffffffffffffffff81111561255c57600080fd5b820160208185031215610b9b57600080fd5b60008060006060848603121561258357600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156125c257600080fd5b813567ffffffffffffffff808211156125da57600080fd5b818401915084601f8301126125ee57600080fd5b8135818111156126005761260061259a565b604051601f8201601f19908116603f011681019083821181831017156126285761262861259a565b8160405282815287602084870101111561264157600080fd5b826020860160208301376000928101602001929092525095945050505050565b602081526000610b9b6020830184612360565b6020815281516020820152600060208301516080604084015261269a60a0840182612360565b905060408401516126aa816123bc565b80606085015250606084015160808401528091505092915050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039390931683526020830191909152604082015260600190565b600181811c9082168061271057607f821691505b602082108103610b4257634e487b7160e01b600052602260045260246000fd5b6000808335601e1984360301811261274757600080fd5b83018035915067ffffffffffffffff82111561276257600080fd5b602001915036819003821315611ee257600080fd5b601f8211156127c157600081815260208120601f850160051c8101602086101561279e5750805b601f850160051c820191505b818110156127bd578281556001016127aa565b5050505b505050565b67ffffffffffffffff8311156127de576127de61259a565b6127f2836127ec83546126fc565b83612777565b6000601f841160018114612826576000851561280e5750838201355b600019600387901b1c1916600186901b178355610770565b600083815260209020601f19861690835b828110156128575786850135825560209485019460019092019101612837565b50868210156128745760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6004811061146257600080fd5b6000602082840312156128a557600080fd5b8135610b9b81612886565b6000808335601e198436030181126128c757600080fd5b83018035915067ffffffffffffffff8211156128e257600080fd5b6020019150600581901b3603821315611ee257600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610f3057610f306128fa565b815167ffffffffffffffff81111561293d5761293d61259a565b6129518161294b84546126fc565b84612777565b602080601f831160018114612986576000841561296e5750858301515b600019600386901b1c1916600185901b1785556127bd565b600085815260208120601f198616915b828110156129b557888601518255948401946001909101908401612996565b50858210156129d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115610f3057610f306128fa565b634e487b7160e01b600052603160045260246000fdfea264697066735822122043646037aad8e0a325f3f5495dc99ecdd5d04d14719e319ffac2e33e9493f94264736f6c63430008110033a26469706673582212203bea7ff09947456759969c76e070232cee8a5d56330352ccf06015dc0e6a2d2d64736f6c63430008110033","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 0xD8ECD925 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x10C JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x71 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH2 0x7D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x19D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF2FDE38B PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xF2FDE38B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2DFB DUP1 PUSH2 0x1DE DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x121 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x18A 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE DUP2 DUP4 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x60 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP3 SWAP2 POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2DFB CODESIZE SUB DUP1 PUSH3 0x2DFB DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0xF1 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x5D JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 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 AND PUSH1 0x80 MSTORE PUSH3 0x74 CALLER PUSH3 0x8B JUMP JUMPDEST PUSH1 0x3 PUSH3 0x82 DUP3 DUP3 PUSH3 0x276 JUMP JUMPDEST POP POP POP PUSH3 0x342 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x11D 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 0x13D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0xDB 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 0x192 JUMPI PUSH3 0x192 PUSH3 0xDB JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 DUP7 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP4 POP JUMPDEST DUP3 DUP5 LT ISZERO PUSH3 0x1CF JUMPI DUP5 DUP5 ADD DUP7 ADD MLOAD DUP2 DUP6 ADD DUP8 ADD MSTORE SWAP3 DUP6 ADD SWAP3 PUSH3 0x1B0 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP7 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1FC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x21D 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 0x271 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 0x24C JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x26D JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x258 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 0x292 JUMPI PUSH3 0x292 PUSH3 0xDB JUMP JUMPDEST PUSH3 0x2AA DUP2 PUSH3 0x2A3 DUP5 SLOAD PUSH3 0x1E7 JUMP JUMPDEST DUP5 PUSH3 0x223 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x2E2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x2C9 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 0x26D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x313 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x2F2 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x332 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 0x2A42 PUSH3 0x3B9 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x4AE ADD MSTORE DUP2 DUP2 PUSH2 0x60D ADD MSTORE DUP2 DUP2 PUSH2 0x70F ADD MSTORE DUP2 DUP2 PUSH2 0x93D ADD MSTORE DUP2 DUP2 PUSH2 0xC9B ADD MSTORE DUP2 DUP2 PUSH2 0xEEC ADD MSTORE DUP2 DUP2 PUSH2 0x102C ADD MSTORE DUP2 DUP2 PUSH2 0x1123 ADD MSTORE DUP2 DUP2 PUSH2 0x13CD ADD MSTORE DUP2 DUP2 PUSH2 0x14F0 ADD MSTORE DUP2 DUP2 PUSH2 0x1740 ADD MSTORE DUP2 DUP2 PUSH2 0x1A02 ADD MSTORE DUP2 DUP2 PUSH2 0x1B0C ADD MSTORE PUSH2 0x1BF3 ADD MSTORE PUSH2 0x2A42 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 0x274 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D542A4F GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xC591493F GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xD7511957 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xD7511957 EQ PUSH2 0x583 JUMPI DUP1 PUSH4 0xDAF91FFC EQ PUSH2 0x596 JUMPI DUP1 PUSH4 0xE43252D7 EQ PUSH2 0x5A9 JUMPI DUP1 PUSH4 0xF0F3F2C8 EQ PUSH2 0x5BC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5DC JUMPI DUP1 PUSH4 0xFAD001A2 EQ PUSH2 0x5EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC591493F EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0xC59DB1AF EQ PUSH2 0x537 JUMPI DUP1 PUSH4 0xC763BBF4 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0xC7EA81FC EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xD50C7377 EQ PUSH2 0x570 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA4C52B86 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xA4C52B86 EQ PUSH2 0x4A9 JUMPI DUP1 PUSH4 0xAB3545E5 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xAB4FBAC3 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xAD91A095 EQ PUSH2 0x4F6 JUMPI DUP1 PUSH4 0xAFCEFA71 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xBD9D867C EQ PUSH2 0x51C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D542A4F EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0x86A92AF7 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0x8AB1D681 EQ PUSH2 0x469 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0x997072F7 EQ PUSH2 0x4A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x52DD4EB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x52DD4EB1 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0x67DFD4C9 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x6989FD6B EQ PUSH2 0x400 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x413 JUMPI DUP1 PUSH4 0x750521F5 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x76A79DCC EQ PUSH2 0x42E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3BCFF3B0 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0x3E2DE334 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x3EDFF20F EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x41AAFEF7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x49386C56 EQ PUSH2 0x3C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D65E77E GT PUSH2 0x23C JUMPI DUP1 PUSH4 0x1D65E77E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0x254C290D EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2565D6C5 EQ PUSH2 0x335 JUMPI DUP1 PUSH4 0x2825EE48 EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x2A10FB85 EQ PUSH2 0x35B JUMPI DUP1 PUSH4 0x3AF32ABF EQ PUSH2 0x36E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49878F3 EQ PUSH2 0x279 JUMPI DUP1 PUSH4 0x6E30412 EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x7450ADC EQ PUSH2 0x2A1 JUMPI DUP1 PUSH4 0xE1E20A2 EQ PUSH2 0x2CE JUMPI DUP1 PUSH4 0x1599BEA5 EQ PUSH2 0x2EF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x28C PUSH2 0x287 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28C PUSH2 0x29C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x687 JUMP JUMPDEST PUSH2 0x2B4 PUSH2 0x2AF CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x777 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x847 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x9AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x23DA JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x343 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x356 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0xD05 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x369 CALLDATASIZE PUSH1 0x4 PUSH2 0x24BC JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x37C CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0xF23 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2E1 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0xF36 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2533 JUMP JUMPDEST PUSH2 0x1076 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1187 JUMP JUMPDEST PUSH2 0x315 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x11E4 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x13C2 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x256E JUMP JUMPDEST PUSH2 0x1465 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x1609 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x429 CALLDATASIZE PUSH1 0x4 PUSH2 0x25B0 JUMP JUMPDEST PUSH2 0x161D JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x45C PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x477 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x180B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2C5 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x181E JUMP JUMPDEST PUSH2 0x489 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x4DE CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x182A JUMP JUMPDEST PUSH2 0x381 PUSH2 0x4F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x504 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1894 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x517 CALLDATASIZE PUSH1 0x4 PUSH2 0x2475 JUMP JUMPDEST PUSH2 0x18E7 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x1A77 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x532 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A83 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x558 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x56B CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1B59 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x57E CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C2C JUMP JUMPDEST PUSH2 0x489 PUSH2 0x591 CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x2E1 PUSH2 0x5A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1C4F JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1CAC JUMP JUMPDEST PUSH2 0x5CF PUSH2 0x5CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2325 JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2C5 SWAP2 SWAP1 PUSH2 0x2674 JUMP JUMPDEST PUSH2 0x28C PUSH2 0x5EA CALLDATASIZE PUSH1 0x4 PUSH2 0x250A JUMP JUMPDEST PUSH2 0x1E13 JUMP JUMPDEST PUSH2 0x381 PUSH2 0x5FD CALLDATASIZE PUSH1 0x4 PUSH2 0x233E JUMP JUMPDEST PUSH2 0x1E1C JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x64B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x678 JUMPI PUSH1 0x40 MLOAD PUSH4 0x40803A5F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x692 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x6AF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x6DB JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6E6 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH2 0x6F2 PUSH1 0x4 DUP3 PUSH2 0x1E91 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x16B726E5 PUSH1 0xE0 SHL 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 0x16B726E5 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x770 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x9 DUP1 SLOAD SWAP1 POP DUP2 LT PUSH2 0x7A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x7B7 JUMPI PUSH2 0x7B7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1ECB SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x809 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1EE9 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x86B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x881 JUMPI PUSH2 0x881 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH2 0x8A9 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x8C7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8D2 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x8EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x925 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x906 JUMPI PUSH2 0x906 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x5EDB401 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x2F6DA008 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x9F5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xA0A JUMPI PUSH2 0xA0A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xA40 SWAP1 PUSH2 0x26FC 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 0xA6C SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0xAB9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA8E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xAB9 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 0xA9C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xAE0 JUMPI PUSH2 0xAE0 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0xB33 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 0xB1F JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP5 POP POP POP POP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xB6F JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xB85 JUMPI PUSH2 0xB85 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EF5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xBC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBD1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xBEE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBF8 DUP3 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC0B JUMPI PUSH2 0xC0B PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xC29 SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xC3A PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xC4D JUMPI PUSH2 0xC4D PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC7A PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD PUSH4 0x96937B43 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x96937B43 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCFC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0xD2C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xD42 JUMPI PUSH2 0xD42 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD92 JUMPI PUSH2 0xD92 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xDBA JUMPI PUSH2 0xDBA PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xDD8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDE3 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xE00 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE0A DUP4 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xE1D JUMPI PUSH2 0xE1D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x1 ADD SWAP2 DUP3 PUSH2 0xE3B SWAP3 SWAP2 SWAP1 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH2 0xE4C PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x2893 JUMP JUMPDEST PUSH1 0x9 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xE5F JUMPI PUSH2 0xE5F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE8C JUMPI PUSH2 0xE8C PUSH2 0x23A6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0xE9E PUSH1 0x40 DUP5 ADD DUP5 PUSH2 0x28B0 JUMP JUMPDEST PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xEB1 JUMPI PUSH2 0xEB1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x3 ADD SWAP2 SWAP1 PUSH2 0xECF SWAP3 SWAP2 SWAP1 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x36987631 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6D30EC62 SWAP1 PUSH1 0x44 ADD PUSH2 0x976 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1E9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0xF5A JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xF70 JUMPI PUSH2 0xF70 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF98 JUMPI PUSH2 0xF98 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0xFB6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFC1 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0xFDE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1014 DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xFF5 JUMPI PUSH2 0xFF5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x14E2F8E9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x538BE3A4 SWAP1 PUSH2 0x976 SWAP1 ADDRESS SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x1 PUSH2 0x1EF5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1083 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x10A0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x10C3 JUMPI PUSH2 0x10C3 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x10E2 DUP5 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x10F2 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0xA843DDB PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x5421EED8 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x117B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x11AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x11C5 JUMPI PUSH2 0x11C5 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE SWAP3 DUP3 ADD MSTORE DUP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x8 SLOAD DUP4 SWAP1 DUP2 LT PUSH2 0x122B JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1240 JUMPI PUSH2 0x1240 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1262 JUMPI PUSH2 0x1262 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1284 JUMPI PUSH2 0x1284 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x12BA SWAP1 PUSH2 0x26FC 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 0x12E6 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1333 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1308 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1333 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 0x1316 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x135A JUMPI PUSH2 0x135A PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x3 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 0x13AD 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 0x1399 JUMPI JUMPDEST POP POP POP SWAP2 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x140B JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x142A JUMPI PUSH2 0x683 PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1449 JUMPI PUSH2 0x683 PUSH1 0x4 DUP3 PUSH2 0x1EBF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1489 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x9 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x149F JUMPI PUSH2 0x149F PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 PUSH1 0x9 SWAP1 SWAP3 MUL ADD ADD SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C7 PUSH2 0x23A6 JUMP JUMPDEST SUB PUSH2 0x14E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x195332A5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x152E JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1538 DUP5 DUP7 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1555 JUMPI PUSH1 0x40 MLOAD PUSH4 0x148FE221 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x158B DUP6 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x156C JUMPI PUSH2 0x156C PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F0B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x15CD JUMPI PUSH2 0x15C7 DUP6 DUP5 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1F17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0x770 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E6 DUP7 PUSH1 0x9 DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 POP PUSH2 0xCFC DUP7 PUSH2 0x15F6 DUP7 DUP5 PUSH2 0x2910 JUMP JUMPDEST PUSH1 0x9 DUP9 DUP2 SLOAD DUP2 LT PUSH2 0x15A7 JUMPI PUSH2 0x15A7 PUSH2 0x26C5 JUMP JUMPDEST PUSH2 0x1611 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x161B PUSH1 0x0 PUSH2 0x1F83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1628 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1645 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x683 DUP3 DUP3 PUSH2 0x2923 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1678 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x168B JUMPI PUSH2 0x168B PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP3 MUL ADD ADD SLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x16CA JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x16D5 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x16F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1728 DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1709 JUMPI PUSH2 0x1709 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1EBF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x249EA98F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x927AA63C SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1788 SWAP1 PUSH2 0x26FC 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 0x17B4 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1801 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x17D6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1801 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 0x17E4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1813 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FD3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x4 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x4 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1875 JUMPI PUSH2 0x1875 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x18BB JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9B PUSH1 0x9 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x18D1 JUMPI PUSH2 0x18D1 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x6 ADD PUSH2 0x1FE8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1919 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1936 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP3 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1959 JUMPI PUSH2 0x1959 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x9 SWAP1 SWAP2 MUL ADD DUP3 DUP2 SSTORE SWAP1 POP PUSH2 0x1978 DUP6 DUP1 PUSH2 0x2730 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SWAP2 PUSH2 0x1988 SWAP2 SWAP1 DUP4 PUSH2 0x27C6 JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x19A2 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x28B0 JUMP JUMPDEST PUSH2 0x19B0 SWAP2 PUSH1 0x3 DUP5 ADD SWAP2 PUSH2 0x22C5 JUMP JUMPDEST POP PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x26C5 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 PUSH1 0x5 PUSH1 0x6 SWAP1 SWAP4 MUL ADD SWAP2 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP1 DUP4 MSTORE SWAP2 KECCAK256 ADD DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x546C8D81 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0xA8D91B02 SWAP1 PUSH2 0x1A3B SWAP1 ADDRESS SWAP1 DUP11 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A69 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1071 PUSH1 0x6 PUSH2 0x1EF5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x6 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH2 0x1A9B PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1AB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1AE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x71460961 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1AEF PUSH1 0x6 DUP3 PUSH2 0x1EBF JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xED94A4D5 PUSH1 0xE0 SHL 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 0xED94A4D5 SWAP1 PUSH1 0x44 ADD PUSH2 0x742 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1B7D JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1B88 PUSH1 0x1 CALLER PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1BA5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB094F27 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1BDB DUP3 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1BBC JUMPI PUSH2 0x1BBC PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E91 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0xF206449 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x3C819124 SWAP1 PUSH2 0xCCE SWAP1 ADDRESS SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26DB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 PUSH1 0x1 DUP4 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1C76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x9 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1C8D JUMPI PUSH2 0x1C8D PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x9 MUL ADD PUSH1 0x4 ADD PUSH2 0x1EFF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1CB4 PUSH2 0x1F24 JUMP JUMPDEST PUSH2 0x683 PUSH1 0x1 DUP3 PUSH2 0x1FF3 JUMP JUMPDEST PUSH2 0x1CEA PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x60 PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD DUP3 SWAP1 DUP2 LT PUSH2 0x1D0E JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1D23 JUMPI PUSH2 0x1D23 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x1D59 SWAP1 PUSH2 0x26FC 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 0x1D85 SWAP1 PUSH2 0x26FC JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1DA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DD2 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 0x1DB5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP SWAP2 DUP4 MSTORE POP POP PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1DF9 JUMPI PUSH2 0x1DF9 PUSH2 0x23A6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP4 ADD SLOAD PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0x1E43 JUMPI PUSH1 0x40 MLOAD PUSH4 0xABA47339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x83F DUP4 PUSH1 0x8 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1E5A JUMPI PUSH2 0x1E5A PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x3 ADD PUSH2 0x1E79 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1EDA DUP7 DUP7 PUSH2 0x21C0 JUMP JUMPDEST SWAP1 SWAP5 POP SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x21EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x225B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 DUP4 PUSH2 0x2285 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x83F DUP5 DUP5 DUP5 PUSH2 0x229D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x161B 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 JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x22BA JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB9B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x207E JUMP JUMPDEST PUSH2 0x2010 PUSH2 0x1F24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2075 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH2 0x1462 DUP2 PUSH2 0x1F83 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x20C5 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 0xF30 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21B6 JUMPI PUSH1 0x0 PUSH2 0x20F1 PUSH1 0x1 DUP4 PUSH2 0x29E3 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2105 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x29E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x216A JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2125 JUMPI PUSH2 0x2125 PUSH2 0x26C5 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 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x26C5 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 0x217B JUMPI PUSH2 0x217B PUSH2 0x29F6 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 0xF30 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xF30 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x21CE DUP6 DUP6 PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0x220F JUMPI POP PUSH2 0x220F DUP5 DUP5 PUSH2 0x2285 JUMP JUMPDEST PUSH2 0xB9B 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x1F7A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2272 JUMPI PUSH2 0x2272 PUSH2 0x26C5 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x83F DUP5 DUP5 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF30 DUP3 PUSH2 0x1EF5 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2300 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2300 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x22E5 JUMP JUMPDEST POP PUSH2 0x230C SWAP3 SWAP2 POP PUSH2 0x2310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x230C JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2311 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2337 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2351 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2386 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x236A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP2 DUP5 ADD MSTORE DUP1 DUP5 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x23FF PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP6 ADD MLOAD PUSH2 0x240F DUP2 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x60 DUP6 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x1F NOT ADD PUSH1 0x80 DUP7 ADD MSTORE DUP1 MLOAD DUP1 DUP4 MSTORE SWAP1 DUP4 ADD SWAP2 PUSH1 0x0 SWAP2 SWAP1 DUP5 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x2458 JUMPI DUP4 MLOAD DUP3 MSTORE SWAP3 DUP5 ADD SWAP3 PUSH1 0x1 SWAP3 SWAP1 SWAP3 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0x2438 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24B2 DUP6 DUP3 DUP7 ADD PUSH2 0x2463 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x60 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x24FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x251C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x255C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x20 DUP2 DUP6 SUB SLT ISZERO PUSH2 0xB9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2583 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x25EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2600 JUMPI PUSH2 0x2600 PUSH2 0x259A 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 0x2628 JUMPI PUSH2 0x2628 PUSH2 0x259A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB9B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2360 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x80 PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x269A PUSH1 0xA0 DUP5 ADD DUP3 PUSH2 0x2360 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x26AA DUP2 PUSH2 0x23BC JUMP JUMPDEST DUP1 PUSH1 0x60 DUP6 ADD MSTORE POP PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2710 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xB42 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x2747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x27C1 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 0x279E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27BD JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x27AA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x27DE JUMPI PUSH2 0x27DE PUSH2 0x259A JUMP JUMPDEST PUSH2 0x27F2 DUP4 PUSH2 0x27EC DUP4 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP4 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP5 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2826 JUMPI PUSH1 0x0 DUP6 ISZERO PUSH2 0x280E 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 0x770 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP1 DUP4 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2857 JUMPI DUP7 DUP6 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x2837 JUMP JUMPDEST POP DUP7 DUP3 LT ISZERO PUSH2 0x2874 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 0x4 DUP2 LT PUSH2 0x1462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB9B DUP2 PUSH2 0x2886 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x28C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP PUSH1 0x5 DUP2 SWAP1 SHL CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x1EE2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x293D JUMPI PUSH2 0x293D PUSH2 0x259A JUMP JUMPDEST PUSH2 0x2951 DUP2 PUSH2 0x294B DUP5 SLOAD PUSH2 0x26FC JUMP JUMPDEST DUP5 PUSH2 0x2777 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2986 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x296E 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 0x27BD JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x29B5 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x2996 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x29D3 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 DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xF30 JUMPI PUSH2 0xF30 PUSH2 0x28FA 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 NUMBER PUSH5 0x6037AAD8E0 LOG3 0x25 RETURN CREATE2 0x49 0x5D 0xC9 SWAP15 0xCD 0xD5 0xD0 0x4D EQ PUSH18 0x9E319FFAC2E33E9493F94264736F6C634300 ADDMOD GT STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODESIZE 0xEA PUSH32 0xF09947456759969C76E070232CEE8A5D56330352CCF06015DC0E6A2D2D64736F PUSH13 0x63430008110033000000000000 ","sourceMap":"152:304:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:267;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;949:32:89;;;931:51;;919:2;904:18;187:267:84;;;;;;;;275:7;294:26;340:3;345:11;;323:34;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;367:42:84;;-1:-1:-1;;;367:42:84;;398:10;367:42;;;931:51:89;294:63:84;;-1:-1:-1;;;;;;367:30:84;;;;;904:18:89;;367:42:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:12:84;;187:267;-1:-1:-1;;;;;;;187:267:84:o;-1:-1:-1:-;;;;;;;;:::o;14:766:89:-;94:6;102;110;163:2;151:9;142:7;138:23;134:32;131:52;;;179:1;176;169:12;131:52;205:23;;-1:-1:-1;;;;;257:31:89;;247:42;;237:70;;303:1;300;293:12;237:70;326:5;-1:-1:-1;382:2:89;367:18;;354:32;405:18;435:14;;;432:34;;;462:1;459;452:12;432:34;500:6;489:9;485:22;475:32;;545:7;538:4;534:2;530:13;526:27;516:55;;567:1;564;557:12;516:55;607:2;594:16;633:2;625:6;622:14;619:34;;;649:1;646;639:12;619:34;694:7;689:2;680:6;676:2;672:15;668:24;665:37;662:57;;;715:1;712;705:12;662:57;746:2;742;738:11;728:21;;768:6;758:16;;;;;14:766;;;;;:::o;993:487::-;-1:-1:-1;;;;;1180:32:89;;1162:51;;1249:2;1244;1229:18;;1222:30;;;1268:18;;1261:34;;;1288:6;1337;1332:2;1317:18;;1304:48;1401:1;1372:22;;;1396:2;1368:31;;;1361:42;;;;1464:2;1443:15;;;-1:-1:-1;;1439:29:89;1424:45;1420:54;;993:487;-1:-1:-1;;993:487:89:o"},"methodIdentifiers":{"createOrganization(address,string)":"d8ecd925"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"metadataURI\",\"type\":\"string\"}],\"name\":\"createOrganization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/organizations/OrganizationFactory.sol\":\"OrganizationFactory\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5094b17cb46143943f3206d0738b91a05a7005e979681af7210d534cd3e72f54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a55fbc9ee8080ec3b397e8e32e5dafcff2c377ce44d553bfc93dfce1be2d5b12\",\"dweb:/ipfs/QmYSk6bNHnpKRyNWXmEBKbkPxXi7Hco9JZHHyxMdrZGWpb\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"contracts/common/access/HubControllable.sol\":{\"keccak256\":\"0x8c68d5aa9dc7626e1b305fcb8b228b0d5acbf18e6be59b6ac1ee0f8dc41836df\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f1bd2471fbfd6c3fdacd2f3b82ab0e74fda462bcc6569d40c5b28220629bc4f9\",\"dweb:/ipfs/QmS1Hx3javGZ2UHoxGLXFcrxd7poMdiPMpExaQNNXRdF7g\"]},\"contracts/common/access/Whitelistable.sol\":{\"keccak256\":\"0xd215d9966a24259575d481a03c5199f255211c1605f4517ef6c07ce3ad24e531\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3264720e7252181265201ecf52ee600feaaacbbef27e64906528a47661818d23\",\"dweb:/ipfs/QmZ4CV9A6oSinNDGKfEZWWE8kMedkT7cocS3ETFq25aR5J\"]},\"contracts/common/interfaces/IMy3SecHub.sol\":{\"keccak256\":\"0x1b543b136330ede3d6560c6e2c786c1797918b89d7bee06a427fd9f1b0e7a555\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73365639c6951757949d4a0ddf4d82aa67d1ffce4b925a7c4802fef7327558aa\",\"dweb:/ipfs/QmZS91FvD64aMuqek4rZCwqZrxZcUAr1DKNA6JfYHVu5wZ\"]},\"contracts/common/interfaces/IOrganization.sol\":{\"keccak256\":\"0x4a96b08a8f7f75a29a5f4f6eda73dfa2583187de578a822ca9eb7eef1a206905\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02db94ed3a665e79d621226b0b5a49dc955564fd64e4f52821de893d9d72148f\",\"dweb:/ipfs/QmerdWzdMHujppA6jQ6KPt7uFGm1feGWAywcNfeKz2idaL\"]},\"contracts/common/interfaces/IWhitelistable.sol\":{\"keccak256\":\"0xe1c808c0e5fde30b155b532c537d7d1ff1362ca039f0ede95ba35a3fe035becb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15193420c441d5208cc0856e5c402ab744d183c85976c622d545fc26b3be7c0a\",\"dweb:/ipfs/QmXtpsX2roYUqpCgGG7Kp3dD9fvE1ikbr3jGPy9BUKg9Go\"]},\"contracts/common/libraries/DataTypes.sol\":{\"keccak256\":\"0xc5749debe85233b6b2dc6670999e5b2b9a610f2e455046dfa2b90081ab3c4689\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://58ebe4147564136cc37819a3e262c361e48f06886bdbad61e241ccd9446060d8\",\"dweb:/ipfs/QmQSstPzgGGDrwvWnjnVY4pT3U6nLP6rbJq9wJffSwGqmv\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/common/libraries/Events.sol\":{\"keccak256\":\"0xf94eef9e2c5a858a588565f639b15930f7f3aa70f52710c697f98cf11676dd8e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cecefefa1e1df6b7a37cf2f1141c6f9e2f04d425b0c5066ad0e06083b45d1c\",\"dweb:/ipfs/Qmeetc3HCLA3HLySwHJrr73srfa5wG51hTSRcHAu2yCyax\"]},\"contracts/organizations/Organization.sol\":{\"keccak256\":\"0x2a2c97fe5a0ae44cfc1b41a8e224c080e61f4bbe600288d6482cd5ea78036916\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62234c106528c7f1e97a98f4680ccb71b4cb559a7afacf74ec781b6ee2230f6d\",\"dweb:/ipfs/QmVacTpzDX3dSQMwEziFmJgCT981Lx6zQ44mDPa9mXFfte\"]},\"contracts/organizations/OrganizationFactory.sol\":{\"keccak256\":\"0xda86cc27ec627575a15abdbfd9c2320d6c6a2c31522853359fc1f40af3cbfd72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37b2554e8536056eb5534fe6153a57cfd091dd03e1467ae539704f7af3bce8d9\",\"dweb:/ipfs/QmS3GTPXhvGMfN1hRF5jrE82tt1DJ5DDK35TedAEFpJDsS\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/profiles/EnergyWallet.sol":{"EnergyWallet":{"abi":[{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"__HubControllable_init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"allocatedEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"createEnergyFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroyEnergyFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"energizedBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"energizersOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"freeEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"giveEnergy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"receivedEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeEnergy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"setHub","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergizedBy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergizersOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"totalEnergyOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610e5b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637d94dfc9116100a2578063d072007d11610071578063d072007d14610260578063e3bfe61b14610273578063ea6866ad14610286578063f2fde38b14610299578063f414c97d146102ac57600080fd5b80637d94dfc9146101ff5780638da5cb5b146102125780639dfbfa761461022d578063c4d66de81461024d57600080fd5b80633d107d4d116100e95780633d107d4d1461019e57806343b521bd146101b157806352c5fb8a146101c4578063540e3199146101d7578063715018a6146101f757600080fd5b806325b98c081461011b5780632d34e2241461014857806331962cdc14610169578063319d684e1461017e575b600080fd5b61012e610129366004610cf8565b6102bf565b604080519283526020830191909152015b60405180910390f35b61015b610156366004610d1a565b6102e5565b60405190815260200161013f565b61017c610177366004610d33565b610302565b005b61015b61018c366004610d1a565b60009081526067602052604090205490565b61015b6101ac366004610d1a565b610353565b61012e6101bf366004610cf8565b61036a565b61017c6101d2366004610cf8565b610384565b61015b6101e5366004610d1a565b60009081526066602052604090205490565b61017c6103d6565b61017c61020d366004610d5c565b6103ea565b6033546040516001600160a01b03909116815260200161013f565b61015b61023b366004610d1a565b60009081526068602052604090205490565b61017c61025b366004610d33565b610563565b61017c61026e366004610d5c565b610676565b61017c610281366004610cf8565b610804565b61015b610294366004610d1a565b6108f2565b61017c6102a7366004610d33565b610916565b61017c6102ba366004610d33565b61098f565b600082815260696020526040812081906102d990846109c7565b915091505b9250929050565b6000818152606a602052604081206102fc906109e3565b92915050565b61030a6109ee565b6001600160a01b038116610331576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526069602052604081206102fc906109e3565b6000828152606a6020526040812081906102d990846109c7565b6065546001600160a01b031633146103af576040516313bd2e8360e31b815260040160405180910390fd5b600082815260666020526040812080548392906103cd908490610d9e565b90915550505050565b6103de6109ee565b6103e86000610a48565b565b6065546001600160a01b03163314610415576040516313bd2e8360e31b815260040160405180910390fd5b8282036104695760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206769766520656e6572677920746f20796f757273656c66000060448201526064015b60405180910390fd5b610472836108f2565b8111156104b75760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e7420656e6572677960681b6044820152606401610460565b600083815260676020526040812080548392906104d5908490610d9e565b909155505060008381526069602052604081206104f29084610a9a565b9150600090506105028383610d9e565b600086815260696020526040902090915061051e908583610aa9565b506000848152606a60205260409020610538908683610aa9565b5060008481526068602052604081208054859290610557908490610d9e565b90915550505050505050565b600054610100900460ff16158080156105835750600054600160ff909116105b8061059d5750303b15801561059d575060005460ff166001145b6106005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610460565b6000805460ff191660011790558015610623576000805461ff0019166101001790555b61062c8261098f565b8015610672576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6065546001600160a01b031633146106a1576040516313bd2e8360e31b815260040160405180910390fd5b60008281526069602052604090206106b99084610abe565b6106fe5760405162461bcd60e51b8152602060048201526016602482015275141c9bd99a5b19481b9bdd081c9959995c995b98d95960521b6044820152606401610460565b60008281526069602052604090206107169084610ad1565b81111561075d5760405162461bcd60e51b8152602060048201526015602482015274457863656564656420676976656e20656e6572677960581b6044820152606401610460565b6000838152606860205260408120805483929061077b908490610db1565b90915550506000828152606960205260408120829061079a9086610ad1565b6107a49190610db1565b60008481526069602052604090209091506107c0908583610aa9565b506000848152606a602052604090206107da908483610aa9565b50600083815260676020526040812080548492906107f9908490610db1565b909155505050505050565b6065546001600160a01b0316331461082f576040516313bd2e8360e31b815260040160405180910390fd5b610838826108f2565b81111561087e5760405162461bcd60e51b81526020600482015260146024820152734578636565646564206672656520656e6572677960601b6044820152606401610460565b6000828152606660205260409020548111156108d45760405162461bcd60e51b8152602060048201526015602482015274457863656564656420746f74616c20656e6572677960581b6044820152606401610460565b600082815260666020526040812080548392906103cd908490610db1565b60008181526067602090815260408083205460669092528220546102fc9190610db1565b61091e6109ee565b6001600160a01b0381166109835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610460565b61098c81610a48565b50565b600054610100900460ff166109b65760405162461bcd60e51b815260040161046090610dc4565b6109be610add565b61098c81610302565b60008080806109d68686610b0c565b9097909650945050505050565b60006102fc82610b37565b6033546001600160a01b031633146103e85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610460565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806109d68686610b42565b6000610ab6848484610b7c565b949350505050565b6000610aca8383610b99565b9392505050565b6000610aca8383610ba5565b600054610100900460ff16610b045760405162461bcd60e51b815260040161046090610dc4565b6103e8610c15565b60008080610b1a8585610c45565b600081815260029690960160205260409095205494959350505050565b60006102fc82610c51565b6000818152600283016020526040812054819080610b7157610b648585610b99565b9250600091506102de9050565b6001925090506102de565b60008281526002840160205260408120829055610ab68484610c5b565b6000610aca8383610c67565b600081815260028301602052604081205480151580610bc95750610bc98484610b99565b610aca5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610460565b600054610100900460ff16610c3c5760405162461bcd60e51b815260040161046090610dc4565b6103e833610a48565b6000610aca8383610c7f565b60006102fc825490565b6000610aca8383610ca9565b60008181526001830160205260408120541515610aca565b6000826000018281548110610c9657610c96610e0f565b9060005260206000200154905092915050565b6000818152600183016020526040812054610cf0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60008060408385031215610d0b57600080fd5b50508035926020909101359150565b600060208284031215610d2c57600080fd5b5035919050565b600060208284031215610d4557600080fd5b81356001600160a01b0381168114610aca57600080fd5b600080600060608486031215610d7157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102fc576102fc610d88565b818103818111156102fc576102fc610d88565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122037edad9bf55b539a7311d903b5dd3ba43bf2cf2ae9c6da71dfcc76398d0359bd64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE5B 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 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D94DFC9 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xD072007D GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD072007D EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xE3BFE61B EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xEA6866AD EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D94DFC9 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x9DFBFA76 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3D107D4D GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x3D107D4D EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x43B521BD EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x52C5FB8A EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x540E3199 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x25B98C08 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x2D34E224 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x31962CDC EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x319D684E EQ PUSH2 0x17E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F JUMP JUMPDEST PUSH2 0x17C PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x302 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH2 0x18C CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1AC CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x36A JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1D2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x384 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x3D6 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2A7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x916 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x98F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x2D9 SWAP1 DUP5 PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x2FC SWAP1 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x30A PUSH2 0x9EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x331 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x2FC SWAP1 PUSH2 0x9E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x2D9 SWAP1 DUP5 PUSH2 0x9C7 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x3CD SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x3DE PUSH2 0x9EE JUMP JUMPDEST PUSH2 0x3E8 PUSH1 0x0 PUSH2 0xA48 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x415 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 SUB PUSH2 0x469 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 0x43616E6E6F74206769766520656E6572677920746F20796F757273656C660000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x472 DUP4 PUSH2 0x8F2 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E73756666696369656E7420656E65726779 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x4D5 SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x4F2 SWAP1 DUP5 PUSH2 0xA9A JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP PUSH2 0x502 DUP4 DUP4 PUSH2 0xD9E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x51E SWAP1 DUP6 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x538 SWAP1 DUP7 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x557 SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x583 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x59D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x623 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x62C DUP3 PUSH2 0x98F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x6B9 SWAP1 DUP5 PUSH2 0xABE JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141C9BD99A5B19481B9BDD081C9959995C995B98D959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x716 SWAP1 DUP5 PUSH2 0xAD1 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x75D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x457863656564656420676976656E20656E65726779 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x77B SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 PUSH2 0x79A SWAP1 DUP7 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x7C0 SWAP1 DUP6 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7DA SWAP1 DUP5 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x7F9 SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x82F JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP3 PUSH2 0x8F2 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x4578636565646564206672656520656E65726779 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x457863656564656420746F74616C20656E65726779 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x3CD SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x66 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH2 0x91E PUSH2 0x9EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x983 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x460 JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0xA48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0xADD JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x302 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x9D6 DUP7 DUP7 PUSH2 0xB0C JUMP JUMPDEST SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3E8 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 0x460 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x9D6 DUP7 DUP7 PUSH2 0xB42 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB6 DUP5 DUP5 DUP5 PUSH2 0xB7C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xB04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x3E8 PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0xB1A DUP6 DUP6 PUSH2 0xC45 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0xB71 JUMPI PUSH2 0xB64 DUP6 DUP6 PUSH2 0xB99 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x2DE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SWAP3 POP SWAP1 POP PUSH2 0x2DE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0xAB6 DUP5 DUP5 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xC67 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0xBC9 JUMPI POP PUSH2 0xBC9 DUP5 DUP5 PUSH2 0xB99 JUMP JUMPDEST PUSH2 0xACA 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xC3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x3E8 CALLER PUSH2 0xA48 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xC7F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xACA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC96 JUMPI PUSH2 0xC96 PUSH2 0xE0F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xCF0 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 0x2FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD0B 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 0xD2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0xD88 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY 0xED 0xAD SWAP12 CREATE2 JUMPDEST MSTORE8 SWAP11 PUSH20 0x11D903B5DD3BA43BF2CF2AE9C6DA71DFCC76398D SUB MSIZE 0xBD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"352:3894:85:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__HubControllable_init_21096":{"entryPoint":2447,"id":21096,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_26":{"entryPoint":2781,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_37":{"entryPoint":3093,"id":37,"parameterSlots":0,"returnSlots":0},"@_add_4578":{"entryPoint":3241,"id":4578,"parameterSlots":2,"returnSlots":1},"@_at_4712":{"entryPoint":3199,"id":4712,"parameterSlots":2,"returnSlots":1},"@_checkOwner_68":{"entryPoint":2542,"id":68,"parameterSlots":0,"returnSlots":0},"@_contains_4681":{"entryPoint":null,"id":4681,"parameterSlots":2,"returnSlots":1},"@_length_4695":{"entryPoint":null,"id":4695,"parameterSlots":1,"returnSlots":1},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_125":{"entryPoint":2632,"id":125,"parameterSlots":1,"returnSlots":0},"@add_4748":{"entryPoint":3163,"id":4748,"parameterSlots":2,"returnSlots":1},"@allocatedEnergyOf_24361":{"entryPoint":null,"id":24361,"parameterSlots":1,"returnSlots":1},"@at_3533":{"entryPoint":2828,"id":3533,"parameterSlots":2,"returnSlots":2},"@at_3767":{"entryPoint":2503,"id":3767,"parameterSlots":2,"returnSlots":2},"@at_4817":{"entryPoint":3141,"id":4817,"parameterSlots":2,"returnSlots":1},"@contains_3489":{"entryPoint":2969,"id":3489,"parameterSlots":2,"returnSlots":1},"@contains_3718":{"entryPoint":2750,"id":3718,"parameterSlots":2,"returnSlots":1},"@contains_4784":{"entryPoint":3175,"id":4784,"parameterSlots":2,"returnSlots":1},"@createEnergyFor_24613":{"entryPoint":900,"id":24613,"parameterSlots":2,"returnSlots":0},"@destroyEnergyFor_24649":{"entryPoint":2052,"id":24649,"parameterSlots":2,"returnSlots":0},"@energizedBy_24396":{"entryPoint":703,"id":24396,"parameterSlots":2,"returnSlots":2},"@energizersOf_24417":{"entryPoint":874,"id":24417,"parameterSlots":2,"returnSlots":2},"@freeEnergyOf_24347":{"entryPoint":2290,"id":24347,"parameterSlots":1,"returnSlots":1},"@get_3610":{"entryPoint":2981,"id":3610,"parameterSlots":2,"returnSlots":1},"@get_3825":{"entryPoint":2769,"id":3825,"parameterSlots":2,"returnSlots":1},"@giveEnergy_24520":{"entryPoint":1002,"id":24520,"parameterSlots":3,"returnSlots":0},"@initialize_24315":{"entryPoint":1379,"id":24315,"parameterSlots":1,"returnSlots":0},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@length_3504":{"entryPoint":2871,"id":3504,"parameterSlots":1,"returnSlots":1},"@length_3733":{"entryPoint":2531,"id":3733,"parameterSlots":1,"returnSlots":1},"@length_4799":{"entryPoint":3153,"id":4799,"parameterSlots":1,"returnSlots":1},"@owner_54":{"entryPoint":null,"id":54,"parameterSlots":0,"returnSlots":1},"@receivedEnergyOf_24375":{"entryPoint":null,"id":24375,"parameterSlots":1,"returnSlots":1},"@removeEnergy_24595":{"entryPoint":1654,"id":24595,"parameterSlots":3,"returnSlots":0},"@renounceOwnership_82":{"entryPoint":982,"id":82,"parameterSlots":0,"returnSlots":0},"@setHub_21120":{"entryPoint":770,"id":21120,"parameterSlots":1,"returnSlots":0},"@set_3447":{"entryPoint":2940,"id":3447,"parameterSlots":3,"returnSlots":1},"@set_3676":{"entryPoint":2729,"id":3676,"parameterSlots":3,"returnSlots":1},"@totalEnergizedBy_24432":{"entryPoint":851,"id":24432,"parameterSlots":1,"returnSlots":1},"@totalEnergizersOf_24447":{"entryPoint":741,"id":24447,"parameterSlots":1,"returnSlots":1},"@totalEnergyOf_24329":{"entryPoint":null,"id":24329,"parameterSlots":1,"returnSlots":1},"@transferOwnership_105":{"entryPoint":2326,"id":105,"parameterSlots":1,"returnSlots":0},"@tryGet_3577":{"entryPoint":2882,"id":3577,"parameterSlots":2,"returnSlots":2},"@tryGet_3801":{"entryPoint":2714,"id":3801,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3379,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3354,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":3320,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":3420,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_0ac263490fa06ae58e2547b14e1f30b53014daac4826688ccc38b2bdefecd9ee__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_34bca9b6f3fd9283a1e3fafb2d4eaac3048a50f986da0cf542eb56c2e64a633b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5063b8e6d23d3d1c698a1ea77680e864d0275a612c1fbca9fffe87eb2fe8c650__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5509eaac3f8c6b2721e3ec2f5d6f63fbd5d9a12085608540a7d03038a34d38c7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_592e09bacd405731eee343cd57450a7507a7b04ec07ea21d6e405ffccb5f8c34__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3524,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e4daae0f26d94412d5beed0cb134ac8dc9b9e7af1f9aa9d4cd4e2254b6baed14__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},"checked_add_t_uint256":{"entryPoint":3486,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":3505,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":3464,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":3599,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6491:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"101:161:89","statements":[{"body":{"nodeType":"YulBlock","src":"147:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"156:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"149:6:89"},"nodeType":"YulFunctionCall","src":"149:12:89"},"nodeType":"YulExpressionStatement","src":"149:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"122:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"131:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"118:3:89"},"nodeType":"YulFunctionCall","src":"118:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"143:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"114:3:89"},"nodeType":"YulFunctionCall","src":"114:32:89"},"nodeType":"YulIf","src":"111:52:89"},{"nodeType":"YulAssignment","src":"172:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"182:12:89"},"nodeType":"YulFunctionCall","src":"182:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"172:6:89"}]},{"nodeType":"YulAssignment","src":"214:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"241:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"252:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"237:3:89"},"nodeType":"YulFunctionCall","src":"237:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"224:12:89"},"nodeType":"YulFunctionCall","src":"224:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"214:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"59:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"70:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"82:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"90:6:89","type":""}],"src":"14:248:89"},{"body":{"nodeType":"YulBlock","src":"396:119:89","statements":[{"nodeType":"YulAssignment","src":"406:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"418:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"429:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"414:3:89"},"nodeType":"YulFunctionCall","src":"414:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"406:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"448:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"459:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"441:6:89"},"nodeType":"YulFunctionCall","src":"441:25:89"},"nodeType":"YulExpressionStatement","src":"441:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"486:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"497:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"482:3:89"},"nodeType":"YulFunctionCall","src":"482:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"502:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"475:6:89"},"nodeType":"YulFunctionCall","src":"475:34:89"},"nodeType":"YulExpressionStatement","src":"475:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"357:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"368:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"376:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"387:4:89","type":""}],"src":"267:248:89"},{"body":{"nodeType":"YulBlock","src":"590:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"636:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"645:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"648:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"638:6:89"},"nodeType":"YulFunctionCall","src":"638:12:89"},"nodeType":"YulExpressionStatement","src":"638:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"611:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"620:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"607:3:89"},"nodeType":"YulFunctionCall","src":"607:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"632:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"603:3:89"},"nodeType":"YulFunctionCall","src":"603:32:89"},"nodeType":"YulIf","src":"600:52:89"},{"nodeType":"YulAssignment","src":"661:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"684:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"671:12:89"},"nodeType":"YulFunctionCall","src":"671:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"661:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"556:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"567:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"579:6:89","type":""}],"src":"520:180:89"},{"body":{"nodeType":"YulBlock","src":"806:76:89","statements":[{"nodeType":"YulAssignment","src":"816:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"828:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"839:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"824:3:89"},"nodeType":"YulFunctionCall","src":"824:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"816:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"869:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"851:6:89"},"nodeType":"YulFunctionCall","src":"851:25:89"},"nodeType":"YulExpressionStatement","src":"851:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"775:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"786:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"797:4:89","type":""}],"src":"705:177:89"},{"body":{"nodeType":"YulBlock","src":"957:216:89","statements":[{"body":{"nodeType":"YulBlock","src":"1003:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1012:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1015:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1005:6:89"},"nodeType":"YulFunctionCall","src":"1005:12:89"},"nodeType":"YulExpressionStatement","src":"1005:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"978:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"987:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"974:3:89"},"nodeType":"YulFunctionCall","src":"974:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"999:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"970:3:89"},"nodeType":"YulFunctionCall","src":"970:32:89"},"nodeType":"YulIf","src":"967:52:89"},{"nodeType":"YulVariableDeclaration","src":"1028:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1054:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1041:12:89"},"nodeType":"YulFunctionCall","src":"1041:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1032:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1127:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1136:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1139:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1129:6:89"},"nodeType":"YulFunctionCall","src":"1129:12:89"},"nodeType":"YulExpressionStatement","src":"1129:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1086:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1097:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1112:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1117:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1108:3:89"},"nodeType":"YulFunctionCall","src":"1108:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1121:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1104:3:89"},"nodeType":"YulFunctionCall","src":"1104:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1093:3:89"},"nodeType":"YulFunctionCall","src":"1093:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1083:2:89"},"nodeType":"YulFunctionCall","src":"1083:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1076:6:89"},"nodeType":"YulFunctionCall","src":"1076:50:89"},"nodeType":"YulIf","src":"1073:70:89"},{"nodeType":"YulAssignment","src":"1152:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"1162:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1152:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"923:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"934:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"946:6:89","type":""}],"src":"887:286:89"},{"body":{"nodeType":"YulBlock","src":"1282:212:89","statements":[{"body":{"nodeType":"YulBlock","src":"1328:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1337:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1340:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1330:6:89"},"nodeType":"YulFunctionCall","src":"1330:12:89"},"nodeType":"YulExpressionStatement","src":"1330:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1303:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1312:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1299:3:89"},"nodeType":"YulFunctionCall","src":"1299:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1324:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1295:3:89"},"nodeType":"YulFunctionCall","src":"1295:32:89"},"nodeType":"YulIf","src":"1292:52:89"},{"nodeType":"YulAssignment","src":"1353:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1376:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1363:12:89"},"nodeType":"YulFunctionCall","src":"1363:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1353:6:89"}]},{"nodeType":"YulAssignment","src":"1395:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1433:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:89"},"nodeType":"YulFunctionCall","src":"1418:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1405:12:89"},"nodeType":"YulFunctionCall","src":"1405:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1395:6:89"}]},{"nodeType":"YulAssignment","src":"1446:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1473:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1484:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1469:3:89"},"nodeType":"YulFunctionCall","src":"1469:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1456:12:89"},"nodeType":"YulFunctionCall","src":"1456:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1446:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1232:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1243:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1255:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1263:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1271:6:89","type":""}],"src":"1178:316:89"},{"body":{"nodeType":"YulBlock","src":"1600:102:89","statements":[{"nodeType":"YulAssignment","src":"1610:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1622:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1633:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1618:3:89"},"nodeType":"YulFunctionCall","src":"1618:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1610:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1652:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1667:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1683:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1688:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1679:3:89"},"nodeType":"YulFunctionCall","src":"1679:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"1692:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1675:3:89"},"nodeType":"YulFunctionCall","src":"1675:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1663:3:89"},"nodeType":"YulFunctionCall","src":"1663:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1645:6:89"},"nodeType":"YulFunctionCall","src":"1645:51:89"},"nodeType":"YulExpressionStatement","src":"1645:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1569:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1580:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1591:4:89","type":""}],"src":"1499:203:89"},{"body":{"nodeType":"YulBlock","src":"1739:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1756:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1763:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1768:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1759:3:89"},"nodeType":"YulFunctionCall","src":"1759:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1749:6:89"},"nodeType":"YulFunctionCall","src":"1749:31:89"},"nodeType":"YulExpressionStatement","src":"1749:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1796:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1799:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1789:6:89"},"nodeType":"YulFunctionCall","src":"1789:15:89"},"nodeType":"YulExpressionStatement","src":"1789:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1820:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1823:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1813:6:89"},"nodeType":"YulFunctionCall","src":"1813:15:89"},"nodeType":"YulExpressionStatement","src":"1813:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"1707:127:89"},{"body":{"nodeType":"YulBlock","src":"1887:77:89","statements":[{"nodeType":"YulAssignment","src":"1897:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1908:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"1911:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1904:3:89"},"nodeType":"YulFunctionCall","src":"1904:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1897:3:89"}]},{"body":{"nodeType":"YulBlock","src":"1936:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"1938:16:89"},"nodeType":"YulFunctionCall","src":"1938:18:89"},"nodeType":"YulExpressionStatement","src":"1938:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1928:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"1931:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1925:2:89"},"nodeType":"YulFunctionCall","src":"1925:10:89"},"nodeType":"YulIf","src":"1922:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1870:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"1873:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1879:3:89","type":""}],"src":"1839:125:89"},{"body":{"nodeType":"YulBlock","src":"2143:180:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2160:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2171:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2153:6:89"},"nodeType":"YulFunctionCall","src":"2153:21:89"},"nodeType":"YulExpressionStatement","src":"2153:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2194:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2205:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2190:3:89"},"nodeType":"YulFunctionCall","src":"2190:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2210:2:89","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2183:6:89"},"nodeType":"YulFunctionCall","src":"2183:30:89"},"nodeType":"YulExpressionStatement","src":"2183:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2233:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2244:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2229:3:89"},"nodeType":"YulFunctionCall","src":"2229:18:89"},{"hexValue":"43616e6e6f74206769766520656e6572677920746f20796f757273656c66","kind":"string","nodeType":"YulLiteral","src":"2249:32:89","type":"","value":"Cannot give energy to yourself"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2222:6:89"},"nodeType":"YulFunctionCall","src":"2222:60:89"},"nodeType":"YulExpressionStatement","src":"2222:60:89"},{"nodeType":"YulAssignment","src":"2291:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2303:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2314:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2299:3:89"},"nodeType":"YulFunctionCall","src":"2299:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2291:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_592e09bacd405731eee343cd57450a7507a7b04ec07ea21d6e405ffccb5f8c34__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2120:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2134:4:89","type":""}],"src":"1969:354:89"},{"body":{"nodeType":"YulBlock","src":"2502:169:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2519:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2530:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2512:6:89"},"nodeType":"YulFunctionCall","src":"2512:21:89"},"nodeType":"YulExpressionStatement","src":"2512:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2553:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2564:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2549:3:89"},"nodeType":"YulFunctionCall","src":"2549:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2569:2:89","type":"","value":"19"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2542:6:89"},"nodeType":"YulFunctionCall","src":"2542:30:89"},"nodeType":"YulExpressionStatement","src":"2542:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2592:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2603:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2588:3:89"},"nodeType":"YulFunctionCall","src":"2588:18:89"},{"hexValue":"496e73756666696369656e7420656e65726779","kind":"string","nodeType":"YulLiteral","src":"2608:21:89","type":"","value":"Insufficient energy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2581:6:89"},"nodeType":"YulFunctionCall","src":"2581:49:89"},"nodeType":"YulExpressionStatement","src":"2581:49:89"},{"nodeType":"YulAssignment","src":"2639:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2651:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2662:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2647:3:89"},"nodeType":"YulFunctionCall","src":"2647:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2639:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_5509eaac3f8c6b2721e3ec2f5d6f63fbd5d9a12085608540a7d03038a34d38c7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2479:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2493:4:89","type":""}],"src":"2328:343:89"},{"body":{"nodeType":"YulBlock","src":"2850:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2867:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2878:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2860:6:89"},"nodeType":"YulFunctionCall","src":"2860:21:89"},"nodeType":"YulExpressionStatement","src":"2860:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2901:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2912:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2897:3:89"},"nodeType":"YulFunctionCall","src":"2897:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2917:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2890:6:89"},"nodeType":"YulFunctionCall","src":"2890:30:89"},"nodeType":"YulExpressionStatement","src":"2890:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2940:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2936:3:89"},"nodeType":"YulFunctionCall","src":"2936:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"2956:34:89","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2929:6:89"},"nodeType":"YulFunctionCall","src":"2929:62:89"},"nodeType":"YulExpressionStatement","src":"2929:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3011:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3022:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3007:3:89"},"nodeType":"YulFunctionCall","src":"3007:18:89"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"3027:16:89","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3000:6:89"},"nodeType":"YulFunctionCall","src":"3000:44:89"},"nodeType":"YulExpressionStatement","src":"3000:44:89"},{"nodeType":"YulAssignment","src":"3053:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3065:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3076:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3061:3:89"},"nodeType":"YulFunctionCall","src":"3061:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3053:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2827:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2841:4:89","type":""}],"src":"2676:410:89"},{"body":{"nodeType":"YulBlock","src":"3198:87:89","statements":[{"nodeType":"YulAssignment","src":"3208:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:89"},"nodeType":"YulFunctionCall","src":"3216:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3250:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3265:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3273:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3261:3:89"},"nodeType":"YulFunctionCall","src":"3261:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3243:6:89"},"nodeType":"YulFunctionCall","src":"3243:36:89"},"nodeType":"YulExpressionStatement","src":"3243:36:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3167:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3178:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3189:4:89","type":""}],"src":"3091:194:89"},{"body":{"nodeType":"YulBlock","src":"3464:172:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3481:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3492:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3474:6:89"},"nodeType":"YulFunctionCall","src":"3474:21:89"},"nodeType":"YulExpressionStatement","src":"3474:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3515:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3526:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3511:3:89"},"nodeType":"YulFunctionCall","src":"3511:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3531:2:89","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3504:6:89"},"nodeType":"YulFunctionCall","src":"3504:30:89"},"nodeType":"YulExpressionStatement","src":"3504:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3554:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3565:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3550:3:89"},"nodeType":"YulFunctionCall","src":"3550:18:89"},{"hexValue":"50726f66696c65206e6f74207265666572656e636564","kind":"string","nodeType":"YulLiteral","src":"3570:24:89","type":"","value":"Profile not referenced"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3543:6:89"},"nodeType":"YulFunctionCall","src":"3543:52:89"},"nodeType":"YulExpressionStatement","src":"3543:52:89"},{"nodeType":"YulAssignment","src":"3604:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3616:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3627:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3612:3:89"},"nodeType":"YulFunctionCall","src":"3612:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3604:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_34bca9b6f3fd9283a1e3fafb2d4eaac3048a50f986da0cf542eb56c2e64a633b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3441:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3455:4:89","type":""}],"src":"3290:346:89"},{"body":{"nodeType":"YulBlock","src":"3815:171:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3832:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3843:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3825:6:89"},"nodeType":"YulFunctionCall","src":"3825:21:89"},"nodeType":"YulExpressionStatement","src":"3825:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3866:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3877:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3862:3:89"},"nodeType":"YulFunctionCall","src":"3862:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3882:2:89","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3855:6:89"},"nodeType":"YulFunctionCall","src":"3855:30:89"},"nodeType":"YulExpressionStatement","src":"3855:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3905:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3916:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3901:3:89"},"nodeType":"YulFunctionCall","src":"3901:18:89"},{"hexValue":"457863656564656420676976656e20656e65726779","kind":"string","nodeType":"YulLiteral","src":"3921:23:89","type":"","value":"Exceeded given energy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3894:6:89"},"nodeType":"YulFunctionCall","src":"3894:51:89"},"nodeType":"YulExpressionStatement","src":"3894:51:89"},{"nodeType":"YulAssignment","src":"3954:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3966:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3977:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3962:3:89"},"nodeType":"YulFunctionCall","src":"3962:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3954:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_5063b8e6d23d3d1c698a1ea77680e864d0275a612c1fbca9fffe87eb2fe8c650__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3792:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3806:4:89","type":""}],"src":"3641:345:89"},{"body":{"nodeType":"YulBlock","src":"4040:79:89","statements":[{"nodeType":"YulAssignment","src":"4050:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4062:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"4065:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4058:3:89"},"nodeType":"YulFunctionCall","src":"4058:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"4050:4:89"}]},{"body":{"nodeType":"YulBlock","src":"4091:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4093:16:89"},"nodeType":"YulFunctionCall","src":"4093:18:89"},"nodeType":"YulExpressionStatement","src":"4093:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"4082:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"4088:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4079:2:89"},"nodeType":"YulFunctionCall","src":"4079:11:89"},"nodeType":"YulIf","src":"4076:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4022:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"4025:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"4031:4:89","type":""}],"src":"3991:128:89"},{"body":{"nodeType":"YulBlock","src":"4298:170:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4315:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4326:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4308:6:89"},"nodeType":"YulFunctionCall","src":"4308:21:89"},"nodeType":"YulExpressionStatement","src":"4308:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4349:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:89"},"nodeType":"YulFunctionCall","src":"4345:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:89","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4338:6:89"},"nodeType":"YulFunctionCall","src":"4338:30:89"},"nodeType":"YulExpressionStatement","src":"4338:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4388:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4399:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4384:3:89"},"nodeType":"YulFunctionCall","src":"4384:18:89"},{"hexValue":"4578636565646564206672656520656e65726779","kind":"string","nodeType":"YulLiteral","src":"4404:22:89","type":"","value":"Exceeded free energy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4377:6:89"},"nodeType":"YulFunctionCall","src":"4377:50:89"},"nodeType":"YulExpressionStatement","src":"4377:50:89"},{"nodeType":"YulAssignment","src":"4436:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4448:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4459:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4444:3:89"},"nodeType":"YulFunctionCall","src":"4444:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4436:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_0ac263490fa06ae58e2547b14e1f30b53014daac4826688ccc38b2bdefecd9ee__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4275:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4289:4:89","type":""}],"src":"4124:344:89"},{"body":{"nodeType":"YulBlock","src":"4647:171:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4664:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4675:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4657:6:89"},"nodeType":"YulFunctionCall","src":"4657:21:89"},"nodeType":"YulExpressionStatement","src":"4657:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4698:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4709:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4694:3:89"},"nodeType":"YulFunctionCall","src":"4694:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"4714:2:89","type":"","value":"21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4687:6:89"},"nodeType":"YulFunctionCall","src":"4687:30:89"},"nodeType":"YulExpressionStatement","src":"4687:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4737:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4748:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4733:3:89"},"nodeType":"YulFunctionCall","src":"4733:18:89"},{"hexValue":"457863656564656420746f74616c20656e65726779","kind":"string","nodeType":"YulLiteral","src":"4753:23:89","type":"","value":"Exceeded total energy"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4726:6:89"},"nodeType":"YulFunctionCall","src":"4726:51:89"},"nodeType":"YulExpressionStatement","src":"4726:51:89"},{"nodeType":"YulAssignment","src":"4786:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:89"},"nodeType":"YulFunctionCall","src":"4794:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4786:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4daae0f26d94412d5beed0cb134ac8dc9b9e7af1f9aa9d4cd4e2254b6baed14__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4624:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4638:4:89","type":""}],"src":"4473:345:89"},{"body":{"nodeType":"YulBlock","src":"4997:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5014:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5025:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5007:6:89"},"nodeType":"YulFunctionCall","src":"5007:21:89"},"nodeType":"YulExpressionStatement","src":"5007:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5048:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5059:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5044:3:89"},"nodeType":"YulFunctionCall","src":"5044:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5064:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5037:6:89"},"nodeType":"YulFunctionCall","src":"5037:30:89"},"nodeType":"YulExpressionStatement","src":"5037:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5087:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5098:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5083:3:89"},"nodeType":"YulFunctionCall","src":"5083:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"5103:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5076:6:89"},"nodeType":"YulFunctionCall","src":"5076:62:89"},"nodeType":"YulExpressionStatement","src":"5076:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5158:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5169:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5154:3:89"},"nodeType":"YulFunctionCall","src":"5154:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"5174:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5147:6:89"},"nodeType":"YulFunctionCall","src":"5147:36:89"},"nodeType":"YulExpressionStatement","src":"5147:36:89"},{"nodeType":"YulAssignment","src":"5192:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5204:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5215:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5200:3:89"},"nodeType":"YulFunctionCall","src":"5200:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5192:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4974:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4988:4:89","type":""}],"src":"4823:402:89"},{"body":{"nodeType":"YulBlock","src":"5404:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5421:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5432:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5414:6:89"},"nodeType":"YulFunctionCall","src":"5414:21:89"},"nodeType":"YulExpressionStatement","src":"5414:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5455:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5466:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5451:3:89"},"nodeType":"YulFunctionCall","src":"5451:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5471:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5444:6:89"},"nodeType":"YulFunctionCall","src":"5444:30:89"},"nodeType":"YulExpressionStatement","src":"5444:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5494:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5505:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5490:3:89"},"nodeType":"YulFunctionCall","src":"5490:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"5510:34:89","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5483:6:89"},"nodeType":"YulFunctionCall","src":"5483:62:89"},"nodeType":"YulExpressionStatement","src":"5483:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5565:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5576:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5561:3:89"},"nodeType":"YulFunctionCall","src":"5561:18:89"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"5581:13:89","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5554:6:89"},"nodeType":"YulFunctionCall","src":"5554:41:89"},"nodeType":"YulExpressionStatement","src":"5554:41:89"},{"nodeType":"YulAssignment","src":"5604:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5616:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5627:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5612:3:89"},"nodeType":"YulFunctionCall","src":"5612:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5604:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5381:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5395:4:89","type":""}],"src":"5230:407:89"},{"body":{"nodeType":"YulBlock","src":"5816:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5833:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5844:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5826:6:89"},"nodeType":"YulFunctionCall","src":"5826:21:89"},"nodeType":"YulExpressionStatement","src":"5826:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5867:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5878:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5863:3:89"},"nodeType":"YulFunctionCall","src":"5863:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"5883:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5856:6:89"},"nodeType":"YulFunctionCall","src":"5856:30:89"},"nodeType":"YulExpressionStatement","src":"5856:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5906:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5917:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5902:3:89"},"nodeType":"YulFunctionCall","src":"5902:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"5922:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5895:6:89"},"nodeType":"YulFunctionCall","src":"5895:62:89"},"nodeType":"YulExpressionStatement","src":"5895:62:89"},{"nodeType":"YulAssignment","src":"5966:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5978:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5989:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5974:3:89"},"nodeType":"YulFunctionCall","src":"5974:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5966:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5793:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5807:4:89","type":""}],"src":"5642:356:89"},{"body":{"nodeType":"YulBlock","src":"6177:180:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6194:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6205:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6187:6:89"},"nodeType":"YulFunctionCall","src":"6187:21:89"},"nodeType":"YulExpressionStatement","src":"6187:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6228:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6239:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6224:3:89"},"nodeType":"YulFunctionCall","src":"6224:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6244:2:89","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6217:6:89"},"nodeType":"YulFunctionCall","src":"6217:30:89"},"nodeType":"YulExpressionStatement","src":"6217:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6267:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6278:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6263:3:89"},"nodeType":"YulFunctionCall","src":"6263:18:89"},{"hexValue":"456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579","kind":"string","nodeType":"YulLiteral","src":"6283:32:89","type":"","value":"EnumerableMap: nonexistent key"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6256:6:89"},"nodeType":"YulFunctionCall","src":"6256:60:89"},"nodeType":"YulExpressionStatement","src":"6256:60:89"},{"nodeType":"YulAssignment","src":"6325:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6337:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6348:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6333:3:89"},"nodeType":"YulFunctionCall","src":"6333:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6325:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6154:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6168:4:89","type":""}],"src":"6003:354:89"},{"body":{"nodeType":"YulBlock","src":"6394:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6411:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6418:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6423:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6414:3:89"},"nodeType":"YulFunctionCall","src":"6414:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6404:6:89"},"nodeType":"YulFunctionCall","src":"6404:31:89"},"nodeType":"YulExpressionStatement","src":"6404:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6451:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6454:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6444:6:89"},"nodeType":"YulFunctionCall","src":"6444:15:89"},"nodeType":"YulExpressionStatement","src":"6444:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6475:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6478:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6468:6:89"},"nodeType":"YulFunctionCall","src":"6468:15:89"},"nodeType":"YulExpressionStatement","src":"6468:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"6362:127:89"}]},"contents":"{\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_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_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_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_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_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_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        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_592e09bacd405731eee343cd57450a7507a7b04ec07ea21d6e405ffccb5f8c34__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), \"Cannot give energy to yourself\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5509eaac3f8c6b2721e3ec2f5d6f63fbd5d9a12085608540a7d03038a34d38c7__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), \"Insufficient energy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_stringliteral_34bca9b6f3fd9283a1e3fafb2d4eaac3048a50f986da0cf542eb56c2e64a633b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"Profile not referenced\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_5063b8e6d23d3d1c698a1ea77680e864d0275a612c1fbca9fffe87eb2fe8c650__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), \"Exceeded given energy\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_0ac263490fa06ae58e2547b14e1f30b53014daac4826688ccc38b2bdefecd9ee__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), \"Exceeded free energy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e4daae0f26d94412d5beed0cb134ac8dc9b9e7af1f9aa9d4cd4e2254b6baed14__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), \"Exceeded total energy\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072__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), \"EnumerableMap: nonexistent key\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101165760003560e01c80637d94dfc9116100a2578063d072007d11610071578063d072007d14610260578063e3bfe61b14610273578063ea6866ad14610286578063f2fde38b14610299578063f414c97d146102ac57600080fd5b80637d94dfc9146101ff5780638da5cb5b146102125780639dfbfa761461022d578063c4d66de81461024d57600080fd5b80633d107d4d116100e95780633d107d4d1461019e57806343b521bd146101b157806352c5fb8a146101c4578063540e3199146101d7578063715018a6146101f757600080fd5b806325b98c081461011b5780632d34e2241461014857806331962cdc14610169578063319d684e1461017e575b600080fd5b61012e610129366004610cf8565b6102bf565b604080519283526020830191909152015b60405180910390f35b61015b610156366004610d1a565b6102e5565b60405190815260200161013f565b61017c610177366004610d33565b610302565b005b61015b61018c366004610d1a565b60009081526067602052604090205490565b61015b6101ac366004610d1a565b610353565b61012e6101bf366004610cf8565b61036a565b61017c6101d2366004610cf8565b610384565b61015b6101e5366004610d1a565b60009081526066602052604090205490565b61017c6103d6565b61017c61020d366004610d5c565b6103ea565b6033546040516001600160a01b03909116815260200161013f565b61015b61023b366004610d1a565b60009081526068602052604090205490565b61017c61025b366004610d33565b610563565b61017c61026e366004610d5c565b610676565b61017c610281366004610cf8565b610804565b61015b610294366004610d1a565b6108f2565b61017c6102a7366004610d33565b610916565b61017c6102ba366004610d33565b61098f565b600082815260696020526040812081906102d990846109c7565b915091505b9250929050565b6000818152606a602052604081206102fc906109e3565b92915050565b61030a6109ee565b6001600160a01b038116610331576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526069602052604081206102fc906109e3565b6000828152606a6020526040812081906102d990846109c7565b6065546001600160a01b031633146103af576040516313bd2e8360e31b815260040160405180910390fd5b600082815260666020526040812080548392906103cd908490610d9e565b90915550505050565b6103de6109ee565b6103e86000610a48565b565b6065546001600160a01b03163314610415576040516313bd2e8360e31b815260040160405180910390fd5b8282036104695760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206769766520656e6572677920746f20796f757273656c66000060448201526064015b60405180910390fd5b610472836108f2565b8111156104b75760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e7420656e6572677960681b6044820152606401610460565b600083815260676020526040812080548392906104d5908490610d9e565b909155505060008381526069602052604081206104f29084610a9a565b9150600090506105028383610d9e565b600086815260696020526040902090915061051e908583610aa9565b506000848152606a60205260409020610538908683610aa9565b5060008481526068602052604081208054859290610557908490610d9e565b90915550505050505050565b600054610100900460ff16158080156105835750600054600160ff909116105b8061059d5750303b15801561059d575060005460ff166001145b6106005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610460565b6000805460ff191660011790558015610623576000805461ff0019166101001790555b61062c8261098f565b8015610672576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6065546001600160a01b031633146106a1576040516313bd2e8360e31b815260040160405180910390fd5b60008281526069602052604090206106b99084610abe565b6106fe5760405162461bcd60e51b8152602060048201526016602482015275141c9bd99a5b19481b9bdd081c9959995c995b98d95960521b6044820152606401610460565b60008281526069602052604090206107169084610ad1565b81111561075d5760405162461bcd60e51b8152602060048201526015602482015274457863656564656420676976656e20656e6572677960581b6044820152606401610460565b6000838152606860205260408120805483929061077b908490610db1565b90915550506000828152606960205260408120829061079a9086610ad1565b6107a49190610db1565b60008481526069602052604090209091506107c0908583610aa9565b506000848152606a602052604090206107da908483610aa9565b50600083815260676020526040812080548492906107f9908490610db1565b909155505050505050565b6065546001600160a01b0316331461082f576040516313bd2e8360e31b815260040160405180910390fd5b610838826108f2565b81111561087e5760405162461bcd60e51b81526020600482015260146024820152734578636565646564206672656520656e6572677960601b6044820152606401610460565b6000828152606660205260409020548111156108d45760405162461bcd60e51b8152602060048201526015602482015274457863656564656420746f74616c20656e6572677960581b6044820152606401610460565b600082815260666020526040812080548392906103cd908490610db1565b60008181526067602090815260408083205460669092528220546102fc9190610db1565b61091e6109ee565b6001600160a01b0381166109835760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610460565b61098c81610a48565b50565b600054610100900460ff166109b65760405162461bcd60e51b815260040161046090610dc4565b6109be610add565b61098c81610302565b60008080806109d68686610b0c565b9097909650945050505050565b60006102fc82610b37565b6033546001600160a01b031633146103e85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610460565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806109d68686610b42565b6000610ab6848484610b7c565b949350505050565b6000610aca8383610b99565b9392505050565b6000610aca8383610ba5565b600054610100900460ff16610b045760405162461bcd60e51b815260040161046090610dc4565b6103e8610c15565b60008080610b1a8585610c45565b600081815260029690960160205260409095205494959350505050565b60006102fc82610c51565b6000818152600283016020526040812054819080610b7157610b648585610b99565b9250600091506102de9050565b6001925090506102de565b60008281526002840160205260408120829055610ab68484610c5b565b6000610aca8383610c67565b600081815260028301602052604081205480151580610bc95750610bc98484610b99565b610aca5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610460565b600054610100900460ff16610c3c5760405162461bcd60e51b815260040161046090610dc4565b6103e833610a48565b6000610aca8383610c7f565b60006102fc825490565b6000610aca8383610ca9565b60008181526001830160205260408120541515610aca565b6000826000018281548110610c9657610c96610e0f565b9060005260206000200154905092915050565b6000818152600183016020526040812054610cf0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102fc565b5060006102fc565b60008060408385031215610d0b57600080fd5b50508035926020909101359150565b600060208284031215610d2c57600080fd5b5035919050565b600060208284031215610d4557600080fd5b81356001600160a01b0381168114610aca57600080fd5b600080600060608486031215610d7157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102fc576102fc610d88565b818103818111156102fc576102fc610d88565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122037edad9bf55b539a7311d903b5dd3ba43bf2cf2ae9c6da71dfcc76398d0359bd64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D94DFC9 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xD072007D GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD072007D EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0xE3BFE61B EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0xEA6866AD EQ PUSH2 0x286 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x2AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D94DFC9 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x212 JUMPI DUP1 PUSH4 0x9DFBFA76 EQ PUSH2 0x22D JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3D107D4D GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x3D107D4D EQ PUSH2 0x19E JUMPI DUP1 PUSH4 0x43B521BD EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x52C5FB8A EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0x540E3199 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x25B98C08 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x2D34E224 EQ PUSH2 0x148 JUMPI DUP1 PUSH4 0x31962CDC EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x319D684E EQ PUSH2 0x17E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x2BF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x156 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F JUMP JUMPDEST PUSH2 0x17C PUSH2 0x177 CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x302 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15B PUSH2 0x18C CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1AC CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x353 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1BF CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x36A JUMP JUMPDEST PUSH2 0x17C PUSH2 0x1D2 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x384 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x3D6 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x13F JUMP JUMPDEST PUSH2 0x15B PUSH2 0x23B CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x563 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0xD5C JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0xCF8 JUMP JUMPDEST PUSH2 0x804 JUMP JUMPDEST PUSH2 0x15B PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0xD1A JUMP JUMPDEST PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2A7 CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x916 JUMP JUMPDEST PUSH2 0x17C PUSH2 0x2BA CALLDATASIZE PUSH1 0x4 PUSH2 0xD33 JUMP JUMPDEST PUSH2 0x98F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x2D9 SWAP1 DUP5 PUSH2 0x9C7 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x2FC SWAP1 PUSH2 0x9E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x30A PUSH2 0x9EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x331 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x2FC SWAP1 PUSH2 0x9E3 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x2D9 SWAP1 DUP5 PUSH2 0x9C7 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x3CD SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x3DE PUSH2 0x9EE JUMP JUMPDEST PUSH2 0x3E8 PUSH1 0x0 PUSH2 0xA48 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x415 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 SUB PUSH2 0x469 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 0x43616E6E6F74206769766520656E6572677920746F20796F757273656C660000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x472 DUP4 PUSH2 0x8F2 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E73756666696369656E7420656E65726779 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x4D5 SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x4F2 SWAP1 DUP5 PUSH2 0xA9A JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP PUSH2 0x502 DUP4 DUP4 PUSH2 0xD9E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x51E SWAP1 DUP6 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x538 SWAP1 DUP7 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x557 SWAP1 DUP5 SWAP1 PUSH2 0xD9E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x583 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x59D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x59D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x623 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x62C DUP3 PUSH2 0x98F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x6B9 SWAP1 DUP5 PUSH2 0xABE JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x141C9BD99A5B19481B9BDD081C9959995C995B98D959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x716 SWAP1 DUP5 PUSH2 0xAD1 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x75D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x457863656564656420676976656E20656E65726779 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x77B SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 PUSH2 0x79A SWAP1 DUP7 PUSH2 0xAD1 JUMP JUMPDEST PUSH2 0x7A4 SWAP2 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x7C0 SWAP1 DUP6 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x7DA SWAP1 DUP5 DUP4 PUSH2 0xAA9 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x7F9 SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x82F JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x838 DUP3 PUSH2 0x8F2 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x87E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x4578636565646564206672656520656E65726779 PUSH1 0x60 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x457863656564656420746F74616C20656E65726779 PUSH1 0x58 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x3CD SWAP1 DUP5 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x66 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 SLOAD PUSH2 0x2FC SWAP2 SWAP1 PUSH2 0xDB1 JUMP JUMPDEST PUSH2 0x91E PUSH2 0x9EE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x983 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x460 JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0xA48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x9B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x9BE PUSH2 0xADD JUMP JUMPDEST PUSH2 0x98C DUP2 PUSH2 0x302 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x9D6 DUP7 DUP7 PUSH2 0xB0C JUMP JUMPDEST SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3E8 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 0x460 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x9D6 DUP7 DUP7 PUSH2 0xB42 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB6 DUP5 DUP5 DUP5 PUSH2 0xB7C JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xB04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x3E8 PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0xB1A DUP6 DUP6 PUSH2 0xC45 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 PUSH2 0xC51 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0xB71 JUMPI PUSH2 0xB64 DUP6 DUP6 PUSH2 0xB99 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x2DE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SWAP3 POP SWAP1 POP PUSH2 0x2DE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0xAB6 DUP5 DUP5 PUSH2 0xC5B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xC67 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO ISZERO DUP1 PUSH2 0xBC9 JUMPI POP PUSH2 0xBC9 DUP5 DUP5 PUSH2 0xB99 JUMP JUMPDEST PUSH2 0xACA 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 0x456E756D657261626C654D61703A206E6F6E6578697374656E74206B65790000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xC3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x460 SWAP1 PUSH2 0xDC4 JUMP JUMPDEST PUSH2 0x3E8 CALLER PUSH2 0xA48 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xC7F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP4 DUP4 PUSH2 0xCA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xACA JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC96 JUMPI PUSH2 0xC96 PUSH2 0xE0F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xCF0 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 0x2FC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD0B 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 0xD2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xACA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0xD88 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0xD88 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY 0xED 0xAD SWAP12 CREATE2 JUMPDEST MSTORE8 SWAP11 PUSH20 0x11D903B5DD3BA43BF2CF2AE9C6DA71DFCC76398D SUB MSIZE 0xBD PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"352:3894:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:170;;;;;;:::i;:::-;;:::i;:::-;;;;441:25:89;;;497:2;482:18;;475:34;;;;414:18;1725:170:85;;;;;;;;2334:149;;;;;;:::i;:::-;;:::i;:::-;;;851:25:89;;;839:2;824:18;2334:149:85;705:177:89;594:138:62;;;;;;:::i;:::-;;:::i;:::-;;1371::85;;;;;;:::i;:::-;1449:7;1475:27;;;:16;:27;;;;;;;1371:138;2153:141;;;;;;:::i;:::-;;:::i;1935:178::-;;;;;;:::i;:::-;;:::i;3778:136::-;;;;;;:::i;:::-;;:::i;1004:130::-;;;;;;:::i;:::-;1078:7;1104:23;;;:12;:23;;;;;;;1004:130;2071:101:0;;;:::i;2523:603:85:-;;;;;;:::i;:::-;;:::i;1441:85:0:-;1513:6;;1441:85;;-1:-1:-1;;;;;1513:6:0;;;1645:51:89;;1633:2;1618:18;1441:85:0;1499:203:89;1549:136:85;;;;;;:::i;:::-;1626:7;1652:26;;;:15;:26;;;;;;;1549:136;868:96;;;;;;:::i;:::-;;:::i;3166:572::-;;;;;;:::i;:::-;;:::i;3954:290::-;;;;;;:::i;:::-;;:::i;1174:157::-;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;465:123:62:-;;;;;;:::i;:::-;;:::i;1725:170:85:-;1812:7;1847:31;;;:20;:31;;;;;1812:7;;1847:41;;1882:5;1847:34;:41::i;:::-;1840:48;;;;1725:170;;;;;;:::o;2334:149::-;2403:7;2429:38;;;:27;:38;;;;;:47;;:45;:47::i;:::-;2422:54;2334:149;-1:-1:-1;;2334:149:85:o;594:138:62:-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;654:17:62;::::1;650:56;;680:26;;-1:-1:-1::0;;;680:26:62::1;;;;;;;;;;;650:56;716:3;:9:::0;;-1:-1:-1;;;;;;716:9:62::1;-1:-1:-1::0;;;;;716:9:62;;;::::1;::::0;;;::::1;::::0;;594:138::o;2153:141:85:-;2221:7;2247:31;;;:20;:31;;;;;:40;;:38;:40::i;1935:178::-;2023:7;2058:38;;;:27;:38;;;;;2023:7;;2058:48;;2100:5;2058:41;:48::i;3778:136::-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;3874:23:85::1;::::0;;;:12:::1;:23;::::0;;;;:33;;3901:6;;3874:23;:33:::1;::::0;3901:6;;3874:33:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;3778:136:85:o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2523:603:85:-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;2635:4:85::1;2629:2;:10:::0;2621:53:::1;;;::::0;-1:-1:-1;;;2621:53:85;;2171:2:89;2621:53:85::1;::::0;::::1;2153:21:89::0;2210:2;2190:18;;;2183:30;2249:32;2229:18;;;2222:60;2299:18;;2621:53:85::1;;;;;;;;;2702:18;2715:4;2702:12;:18::i;:::-;2692:6;:28;;2684:60;;;::::0;-1:-1:-1;;;2684:60:85;;2530:2:89;2684:60:85::1;::::0;::::1;2512:21:89::0;2569:2;2549:18;;;2542:30;-1:-1:-1;;;2588:18:89;;;2581:49;2647:18;;2684:60:85::1;2328:343:89::0;2684:60:85::1;2755:22;::::0;;;:16:::1;:22;::::0;;;;:32;;2781:6;;2755:22;:32:::1;::::0;2781:6;;2755:32:::1;:::i;:::-;::::0;;;-1:-1:-1;;2800:30:85::1;2834:26:::0;;;:20:::1;:26;::::0;;;;:37:::1;::::0;2868:2;2834:33:::1;:37::i;:::-;2797:74:::0;-1:-1:-1;2881:27:85::1;::::0;-1:-1:-1;2911:31:85::1;2936:6:::0;2797:74;2911:31:::1;:::i;:::-;2952:26;::::0;;;:20:::1;:26;::::0;;;;2881:61;;-1:-1:-1;2952:55:85::1;::::0;2983:2;2881:61;2952:30:::1;:55::i;:::-;-1:-1:-1::0;3017:31:85::1;::::0;;;:27:::1;:31;::::0;;;;:62:::1;::::0;3053:4;3059:19;3017:35:::1;:62::i;:::-;-1:-1:-1::0;3090:19:85::1;::::0;;;:15:::1;:19;::::0;;;;:29;;3113:6;;3090:19;:29:::1;::::0;3113:6;;3090:29:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;2523:603:85:o;868:96::-;3268:19:1;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:1;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:1;1476:19:9;:23;;;3376:66:1;;-1:-1:-1;3425:12:1;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:1;;2878:2:89;3314:201:1;;;2860:21:89;2917:2;2897:18;;;2890:30;2956:34;2936:18;;;2929:62;-1:-1:-1;;;3007:18:89;;;3000:44;3061:19;;3314:201:1;2676:410:89;3314:201:1;3525:12;:16;;-1:-1:-1;;3525:16:1;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:1;;;;;3551:65;930:27:85::1;953:3;930:22;:27::i;:::-;3640:14:1::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:1;;;3710:14;;-1:-1:-1;3243:36:89;;3710:14:1;;3231:2:89;3216:18;3710:14:1;;;;;;;3636:99;3258:483;868:96:85;:::o;3166:572::-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;3274:24:85::1;::::0;;;:20:::1;:24;::::0;;;;:39:::1;::::0;3308:4;3274:33:::1;:39::i;:::-;3266:74;;;::::0;-1:-1:-1;;;3266:74:85;;3492:2:89;3266:74:85::1;::::0;::::1;3474:21:89::0;3531:2;3511:18;;;3504:30;-1:-1:-1;;;3550:18:89;;;3543:52;3612:18;;3266:74:85::1;3290:346:89::0;3266:74:85::1;3368:24;::::0;;;:20:::1;:24;::::0;;;;:34:::1;::::0;3397:4;3368:28:::1;:34::i;:::-;3358:6;:44;;3350:78;;;::::0;-1:-1:-1;;;3350:78:85;;3843:2:89;3350:78:85::1;::::0;::::1;3825:21:89::0;3882:2;3862:18;;;3855:30;-1:-1:-1;;;3901:18:89;;;3894:51;3962:18;;3350:78:85::1;3641:345:89::0;3350:78:85::1;3439:21;::::0;;;:15:::1;:21;::::0;;;;:31;;3464:6;;3439:21;:31:::1;::::0;3464:6;;3439:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;3480:27:85::1;3510:24:::0;;;:20:::1;:24;::::0;;;;3547:6;;3510:34:::1;::::0;3539:4;3510:28:::1;:34::i;:::-;:43;;;;:::i;:::-;3563:24;::::0;;;:20:::1;:24;::::0;;;;3480:73;;-1:-1:-1;3563:55:85::1;::::0;3592:4;3480:73;3563:28:::1;:55::i;:::-;-1:-1:-1::0;3628:33:85::1;::::0;;;:27:::1;:33;::::0;;;;:62:::1;::::0;3666:2;3670:19;3628:37:::1;:62::i;:::-;-1:-1:-1::0;3701:20:85::1;::::0;;;:16:::1;:20;::::0;;;;:30;;3725:6;;3701:20;:30:::1;::::0;3725:6;;3701:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;3166:572:85:o;3954:290::-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;4069:23:85::1;4082:9;4069:12;:23::i;:::-;4059:6;:33;;4051:66;;;::::0;-1:-1:-1;;;4051:66:85;;4326:2:89;4051:66:85::1;::::0;::::1;4308:21:89::0;4365:2;4345:18;;;4338:30;-1:-1:-1;;;4384:18:89;;;4377:50;4444:18;;4051:66:85::1;4124:344:89::0;4051:66:85::1;4145:23;::::0;;;:12:::1;:23;::::0;;;;;4135:33;::::1;;4127:67;;;::::0;-1:-1:-1;;;4127:67:85;;4675:2:89;4127:67:85::1;::::0;::::1;4657:21:89::0;4714:2;4694:18;;;4687:30;-1:-1:-1;;;4733:18:89;;;4726:51;4794:18;;4127:67:85::1;4473:345:89::0;4127:67:85::1;4204:23;::::0;;;:12:::1;:23;::::0;;;;:33;;4231:6;;4204:23;:33:::1;::::0;4231:6;;4204:33:::1;:::i;1174:157::-:0;1245:7;1297:27;;;:16;:27;;;;;;;;;1271:12;:23;;;;;;:53;;1297:27;1271:53;:::i;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;5025:2:89;2401:73:0::1;::::0;::::1;5007:21:89::0;5064:2;5044:18;;;5037:30;5103:34;5083:18;;;5076:62;-1:-1:-1;;;5154:18:89;;;5147:36;5200:19;;2401:73:0::1;4823:402:89::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;465:123:62:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;544:16:62::1;:14;:16::i;:::-;570:11;577:3;570:6;:11::i;7070:211:15:-:0;7147:7;;;;7206:21;7209:3;7221:5;7206:2;:21::i;:::-;7175:52;;;;-1:-1:-1;7070:211:15;-1:-1:-1;;;;;7070:211:15:o;6616:117::-;6682:7;6708:18;6715:3;6708:6;:18::i;1599:130:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:10;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;5844:2:89;1654:68:0;;;5826:21:89;;;5863:18;;;5856:30;5922:34;5902:18;;;5895:62;5974:18;;1654:68:0;5642:356:89;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;7422:217:15:-;7501:4;;;;7558:32;7565:3;7585;7558:6;:32::i;5823:191::-;5939:4;5962:45;5966:3;5986;6000:5;5962:3;:45::i;:::-;5955:52;5823:191;-1:-1:-1;;;;5823:191:15:o;6388:145::-;6469:4;6492:34;6501:3;6521;6492:8;:34::i;:::-;6485:41;6388:145;-1:-1:-1;;;6388:145:15:o;7790:147::-;7866:7;7900:29;7904:3;7924;7900;:29::i;1003:95:0:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;3911:191:15:-:0;3994:7;;;4036:19;:3;4049:5;4036:12;:19::i;:::-;4078:16;;;;:11;;;;;:16;;;;;;;;;3911:191;-1:-1:-1;;;;3911:191:15:o;3435:123::-;3507:7;3533:18;:3;:16;:18::i;4243:298::-;4328:4;4369:16;;;:11;;;:16;;;;;;4328:4;;4369:16;4395:140;;4442:18;4451:3;4456;4442:8;:18::i;:::-;4434:39;-1:-1:-1;4470:1:15;;-1:-1:-1;4434:39:15;;-1:-1:-1;4434:39:15;4395:140;4512:4;;-1:-1:-1;4518:5:15;-1:-1:-1;4504:20:15;;2590:204;2712:4;2728:16;;;:11;;;:16;;;;;:24;;;2769:18;2728:3;2740;2769:13;:18::i;3205:140::-;3292:4;3315:23;:3;3334;3315:18;:23::i;4692:247::-;4774:7;4809:16;;;:11;;;:16;;;;;;4843:10;;;;:32;;;4857:18;4866:3;4871;4857:8;:18::i;:::-;4835:75;;;;-1:-1:-1;;;4835:75:15;;6205:2:89;4835:75:15;;;6187:21:89;6244:2;6224:18;;;6217:30;6283:32;6263:18;;;6256:60;6333:18;;4835:75:15;6003:354:89;1104:111:0;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:10::0;1176:18:0::1;:32::i;7099:129:16:-:0;7173:7;7199:22;7203:3;7215:5;7199:3;:22::i;6642:115::-;6705:7;6731:19;6739:3;4548:18;;4466:107;5922:123;5992:4;6015:23;6020:3;6032:5;6015:4;:23::i;6423:138::-;6503:4;4354:19;;;:12;;;:19;;;;;;:24;;6526:28;4258:127;4915:118;4982:7;5008:3;:11;;5020:5;5008:18;;;;;;;;:::i;:::-;;;;;;;;;5001:25;;4915:118;;;;:::o;2217:404::-;2280:4;4354:19;;;:12;;;:19;;;;;;2296:319;;-1:-1:-1;2338:23:16;;;;;;;;:11;:23;;;;;;;;;;;;;2518:18;;2496:19;;;:12;;;:19;;;;;;:40;;;;2550:11;;2296:319;-1:-1:-1;2599:5:16;2592:12;;14:248:89;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:89;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:89:o;520:180::-;579:6;632:2;620:9;611:7;607:23;603:32;600:52;;;648:1;645;638:12;600:52;-1:-1:-1;671:23:89;;520:180;-1:-1:-1;520:180:89:o;887:286::-;946:6;999:2;987:9;978:7;974:23;970:32;967:52;;;1015:1;1012;1005:12;967:52;1041:23;;-1:-1:-1;;;;;1093:31:89;;1083:42;;1073:70;;1139:1;1136;1129:12;1178:316;1255:6;1263;1271;1324:2;1312:9;1303:7;1299:23;1295:32;1292:52;;;1340:1;1337;1330:12;1292:52;-1:-1:-1;;1363:23:89;;;1433:2;1418:18;;1405:32;;-1:-1:-1;1484:2:89;1469:18;;;1456:32;;1178:316;-1:-1:-1;1178:316:89:o;1707:127::-;1768:10;1763:3;1759:20;1756:1;1749:31;1799:4;1796:1;1789:15;1823:4;1820:1;1813:15;1839:125;1904:9;;;1925:10;;;1922:36;;;1938:18;;:::i;3991:128::-;4058:9;;;4079:11;;;4076:37;;;4093:18;;:::i;5230:407::-;5432:2;5414:21;;;5471:2;5451:18;;;5444:30;5510:34;5505:2;5490:18;;5483:62;-1:-1:-1;;;5576:2:89;5561:18;;5554:41;5627:3;5612:19;;5230:407::o;6362:127::-;6423:10;6418:3;6414:20;6411:1;6404:31;6454:4;6451:1;6444:15;6478:4;6475:1;6468:15"},"methodIdentifiers":{"__HubControllable_init(address)":"f414c97d","allocatedEnergyOf(uint256)":"319d684e","createEnergyFor(uint256,uint256)":"52c5fb8a","destroyEnergyFor(uint256,uint256)":"e3bfe61b","energizedBy(uint256,uint256)":"25b98c08","energizersOf(uint256,uint256)":"43b521bd","freeEnergyOf(uint256)":"ea6866ad","giveEnergy(uint256,uint256,uint256)":"7d94dfc9","initialize(address)":"c4d66de8","owner()":"8da5cb5b","receivedEnergyOf(uint256)":"9dfbfa76","removeEnergy(uint256,uint256,uint256)":"d072007d","renounceOwnership()":"715018a6","setHub(address)":"31962cdc","totalEnergizedBy(uint256)":"3d107d4d","totalEnergizersOf(uint256)":"2d34e224","totalEnergyOf(uint256)":"540e3199","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"__HubControllable_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"allocatedEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"createEnergyFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"destroyEnergyFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"energizedBy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"energizersOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"freeEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"giveEnergy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"receivedEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"removeEnergy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"setHub\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergizedBy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergizersOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"totalEnergyOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the implementation of the Energy Wallet.\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"EnergyWallet contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/profiles/EnergyWallet.sol\":\"EnergyWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\":{\"keccak256\":\"0xba40dd2868045311c0890e57bca07dd7ce0b62730289f90971cf29d275a44e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f00ff27209e8869a2d415d1070c472857478000dd6b70d7f336e91bd61da863\",\"dweb:/ipfs/Qmb8wEe7RmqcNuyG8wC2xRR2d12S5iHjrNDSAES4YMEC4B\"]},\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol\":{\"keccak256\":\"0x4807db844a856813048b5af81a764fdd25a0ae8876a3132593e8d21ddc6b607c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ca2fce75b1b20047a41f6f67d2d1be3d24308bf34668a22c2f971689e319a70\",\"dweb:/ipfs/QmQ8hxhdkDmwK9CBURbV2eaEeFTBYb3bB3ByWw1GmjvEWo\"]},\"contracts/common/access/HubControllableUpgradeable.sol\":{\"keccak256\":\"0xa136d76634a3ea944d76e1d1ddbdb99afb8f53803fa7daa6bd453b0289319295\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23980ee8080eeda2d228a1016f8bec848336d3d8033ef27c5e95cf41e6074a8d\",\"dweb:/ipfs/QmYWUaXCzmPCCsc8PKQn32MRk3aNidzcPtYZViVmd9sd8X\"]},\"contracts/common/interfaces/IEnergyWallet.sol\":{\"keccak256\":\"0xf28e5c064c4fdd3c355dfa0db3344553f6a50efaf2ae23556c5cf3e4862c85be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b5ad135e8147b055b6833479960e32026acae0c67de64b43c8b9e832039dc7a\",\"dweb:/ipfs/QmfQmsh8xvgEkF31VaMYrtVNp2pKNvhVsuUaN5ZVfteMCF\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/profiles/EnergyWallet.sol\":{\"keccak256\":\"0x8afdfb984ac178accfe6587ea9783fb150e7556d3126d5cf0e5b23b28cd4c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f4f8614d76709ee2453010448f8e3157d4b70eb020fca113d61e4d2e4c75ee3\",\"dweb:/ipfs/QmUfmqJCz6GL32EmioAcejD6xBywdvHP7Mbyey8qrLqjhc\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":21067,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"HUB","offset":0,"slot":"101","type":"t_address"},{"astId":24285,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_totalEnergy","offset":0,"slot":"102","type":"t_mapping(t_uint256,t_uint256)"},{"astId":24289,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_allocatedEnergy","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_uint256)"},{"astId":24293,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_receivedEnergy","offset":0,"slot":"104","type":"t_mapping(t_uint256,t_uint256)"},{"astId":24298,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_energyAllocationMap","offset":0,"slot":"105","type":"t_mapping(t_uint256,t_struct(UintToUintMap)3649_storage)"},{"astId":24303,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_reverseEnergyAllocationMap","offset":0,"slot":"106","type":"t_mapping(t_uint256,t_struct(UintToUintMap)3649_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(UintToUintMap)3649_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)","numberOfBytes":"32","value":"t_struct(UintToUintMap)3649_storage"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Bytes32Set)4730_storage":{"encoding":"inplace","label":"struct EnumerableSetUpgradeable.Bytes32Set","members":[{"astId":4729,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)4536_storage"}],"numberOfBytes":"64"},"t_struct(Bytes32ToBytes32Map)3419_storage":{"encoding":"inplace","label":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map","members":[{"astId":3414,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_keys","offset":0,"slot":"0","type":"t_struct(Bytes32Set)4730_storage"},{"astId":3418,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_values","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_bytes32)"}],"numberOfBytes":"96"},"t_struct(Set)4536_storage":{"encoding":"inplace","label":"struct EnumerableSetUpgradeable.Set","members":[{"astId":4531,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":4535,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_indexes","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}],"numberOfBytes":"64"},"t_struct(UintToUintMap)3649_storage":{"encoding":"inplace","label":"struct EnumerableMapUpgradeable.UintToUintMap","members":[{"astId":3648,"contract":"contracts/profiles/EnergyWallet.sol:EnergyWallet","label":"_inner","offset":0,"slot":"0","type":"t_struct(Bytes32ToBytes32Map)3419_storage"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/profiles/My3SecProfiles.sol":{"My3SecProfiles":{"abi":[{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"inputs":[],"name":"NotProfileOwner","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":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":"hub","type":"address"}],"name":"__HubControllable_init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"}],"name":"createProfile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"account","type":"address"}],"name":"getDefaultProfileId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"address","name":"account","type":"address"},{"internalType":"uint256","name":"profileId","type":"uint256"}],"name":"setDefaultProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"setHub","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"name":"updateProfile","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50612344806100206000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063b88d4fde11610097578063e93a724a11610071578063e93a724a14610368578063e985e9c51461037b578063f2fde38b146103b7578063f414c97d146103ca57600080fd5b8063b88d4fde1461032f578063c4d66de814610342578063c87b56dd1461035557600080fd5b8063715018a6146102d55780637765eba1146102dd57806389c7e0a0146102f05780638da5cb5b1461030357806395d89b4114610314578063a22cb4651461031c57600080fd5b806323b872dd1161014b57806342842e0e1161012557806342842e0e146102895780634f6ccce71461029c5780636352211e146102af57806370a08231146102c257600080fd5b806323b872dd146102505780632f745c591461026357806331962cdc1461027657600080fd5b806301ffc9a71461019357806305b186b6146101bb57806306fdde03146101f3578063081812fc14610208578063095ea7b31461023357806318160ddd14610248575b600080fd5b6101a66101a1366004611c41565b6103dd565b60405190151581526020015b60405180910390f35b6101e56101c9366004611c7a565b6001600160a01b0316600090815261012f602052604090205490565b6040519081526020016101b2565b6101fb6103ee565b6040516101b29190611ce5565b61021b610216366004611cf8565b610480565b6040516001600160a01b0390911681526020016101b2565b610246610241366004611d11565b6104a7565b005b60cc546101e5565b61024661025e366004611d3b565b6105c1565b6101e5610271366004611d11565b6105f2565b610246610284366004611c7a565b610688565b610246610297366004611d3b565b6106d9565b6101e56102aa366004611cf8565b6106f4565b61021b6102bd366004611cf8565b610787565b6101e56102d0366004611c7a565b6107e7565b61024661086d565b6101e56102eb366004611e23565b610881565b6102466102fe366004611e71565b610904565b6065546001600160a01b031661021b565b6101fb61093d565b61024661032a366004611ea2565b61094c565b61024661033d366004611ede565b610957565b610246610350366004611c7a565b61098f565b6101fb610363366004611cf8565b610afe565b610246610376366004611d11565b610b09565b6101a6610389366004611f5a565b6001600160a01b039182166000908152609d6020908152604080832093909416825291909152205460ff1690565b6102466103c5366004611c7a565b610b3e565b6102466103d8366004611c7a565b610bb7565b60006103e882610bef565b92915050565b6060609880546103fd90611f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611f8d565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b600061048b82610c14565b506000908152609c60205260409020546001600160a01b031690565b60006104b282610787565b9050806001600160a01b0316836001600160a01b0316036105245760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061054057506105408133610389565b6105b25760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161051b565b6105bc8383610c73565b505050565b6105cb3382610ce1565b6105e75760405162461bcd60e51b815260040161051b90611fc7565b6105bc838383610d60565b60006105fd836107e7565b821061065f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161051b565b506001600160a01b0391909116600090815260ca60209081526040808320938352929052205490565b610690610ed1565b6001600160a01b0381166106b7576040516348be0eb360e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6105bc83838360405180602001604052806000815250610957565b60006106ff60cc5490565b82106107625760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161051b565b60cc828154811061077557610775612014565b90600052602060002001549050919050565b6000818152609a60205260408120546001600160a01b0316806103e85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161051b565b60006001600160a01b0382166108515760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161051b565b506001600160a01b03166000908152609b602052604090205490565b610875610ed1565b61087f6000610f2b565b565b6097546000906001600160a01b031633146108af576040516313bd2e8360e31b815260040160405180910390fd5b600061012e600081546108c190612040565b918290555090506108d28482610f7d565b6108dc8184610f97565b60006108e7856107e7565b600114905080156108fc576108fc858361102a565b509392505050565b6097546001600160a01b0316331461092f576040516313bd2e8360e31b815260040160405180910390fd5b6109398282610f97565b5050565b6060609980546103fd90611f8d565b61093933838361108f565b6109613383610ce1565b61097d5760405162461bcd60e51b815260040161051b90611fc7565b6109898484848461115d565b50505050565b600054610100900460ff16158080156109af5750600054600160ff909116105b806109c95750303b1580156109c9575060005460ff166001145b610a2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161051b565b6000805460ff191660011790558015610a4f576000805461ff0019166101001790555b610a9c6040518060400160405280600f81526020016e4d79335365632050726f66696c657360881b8152506040518060400160405280600481526020016304d3353560e41b815250611190565b610aa46111c1565b610aac6111c1565b610ab582610bb7565b8015610939576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606103e8826111e8565b6097546001600160a01b03163314610b34576040516313bd2e8360e31b815260040160405180910390fd5b610939828261102a565b610b46610ed1565b6001600160a01b038116610bab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051b565b610bb481610f2b565b50565b600054610100900460ff16610bde5760405162461bcd60e51b815260040161051b90612059565b610be66112f0565b610bb481610688565b60006001600160e01b0319821663780e9d6360e01b14806103e857506103e88261131f565b6000818152609a60205260409020546001600160a01b0316610bb45760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161051b565b6000818152609c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610ca882610787565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ced83610787565b9050806001600160a01b0316846001600160a01b03161480610d3457506001600160a01b038082166000908152609d602090815260408083209388168352929052205460ff165b80610d585750836001600160a01b0316610d4d84610480565b6001600160a01b0316145b949350505050565b826001600160a01b0316610d7382610787565b6001600160a01b031614610d995760405162461bcd60e51b815260040161051b906120a4565b6001600160a01b038216610dfb5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161051b565b610e08838383600161136f565b826001600160a01b0316610e1b82610787565b6001600160a01b031614610e415760405162461bcd60e51b815260040161051b906120a4565b6000818152609c6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652609b8552838620805460001901905590871680865283862080546001019055868652609a90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6065546001600160a01b0316331461087f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161051b565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6109398282604051806020016040528060008152506113b7565b6000828152609a60205260409020546001600160a01b03166110125760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161051b565b600082815260fc602052604090206105bc8282612137565b600081118015611054575061103e81610787565b6001600160a01b0316826001600160a01b031614155b156110725760405163f194fae560e01b815260040160405180910390fd5b6001600160a01b03909116600090815261012f6020526040902055565b816001600160a01b0316836001600160a01b0316036110f05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161051b565b6001600160a01b038381166000818152609d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611168848484610d60565b611174848484846113ea565b6109895760405162461bcd60e51b815260040161051b906121f7565b600054610100900460ff166111b75760405162461bcd60e51b815260040161051b90612059565b61093982826114eb565b600054610100900460ff1661087f5760405162461bcd60e51b815260040161051b90612059565b60606111f382610c14565b600082815260fc60205260408120805461120c90611f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461123890611f8d565b80156112855780601f1061125a57610100808354040283529160200191611285565b820191906000526020600020905b81548152906001019060200180831161126857829003601f168201915b5050505050905060006112a360408051602081019091526000815290565b905080516000036112b5575092915050565b8151156112e75780826040516020016112cf929190612249565b60405160208183030381529060405292505050919050565b610d588461152b565b600054610100900460ff166113175760405162461bcd60e51b815260040161051b90612059565b61087f61159f565b60006001600160e01b031982166380ac58cd60e01b148061135057506001600160e01b03198216635b5e139f60e01b145b806103e857506301ffc9a760e01b6001600160e01b03198316146103e8565b6001600160a01b038416600090815261012f60205260409020548290036113ab576001600160a01b038416600090815261012f60205260408120555b610989848484846115cf565b6113c1838361170f565b6113ce60008484846113ea565b6105bc5760405162461bcd60e51b815260040161051b906121f7565b60006001600160a01b0384163b156114e057604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061142e903390899088908890600401612278565b6020604051808303816000875af1925050508015611469575060408051601f3d908101601f19168201909252611466918101906122b5565b60015b6114c6573d808015611497576040519150601f19603f3d011682016040523d82523d6000602084013e61149c565b606091505b5080516000036114be5760405162461bcd60e51b815260040161051b906121f7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610d58565b506001949350505050565b600054610100900460ff166115125760405162461bcd60e51b815260040161051b90612059565b609861151e8382612137565b5060996105bc8282612137565b606061153682610c14565b600061154d60408051602081019091526000815290565b9050600081511161156d5760405180602001604052806000815250611598565b80611577846118a8565b604051602001611588929190612249565b6040516020818303038152906040525b9392505050565b600054610100900460ff166115c65760405162461bcd60e51b815260040161051b90612059565b61087f33610f2b565b6115db8484848461193b565b600181111561164a5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161051b565b816001600160a01b0385166116a6576116a18160cc8054600083815260cd60205260408120829055600182018355919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0155565b6116c9565b836001600160a01b0316856001600160a01b0316146116c9576116c985826119c3565b6001600160a01b0384166116e5576116e081611a60565b611708565b846001600160a01b0316846001600160a01b031614611708576117088482611b0f565b5050505050565b6001600160a01b0382166117655760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161051b565b6000818152609a60205260409020546001600160a01b0316156117ca5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161051b565b6117d860008383600161136f565b6000818152609a60205260409020546001600160a01b03161561183d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161051b565b6001600160a01b0382166000818152609b6020908152604080832080546001019055848352609a90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060006118b583611b53565b600101905060008167ffffffffffffffff8111156118d5576118d5611d77565b6040519080825280601f01601f1916602001820160405280156118ff576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461190957509392505050565b6001811115610989576001600160a01b03841615611981576001600160a01b0384166000908152609b60205260408120805483929061197b9084906122d2565b90915550505b6001600160a01b03831615610989576001600160a01b0383166000908152609b6020526040812080548392906119b89084906122e5565b909155505050505050565b600060016119d0846107e7565b6119da91906122d2565b600083815260cb6020526040902054909150808214611a2d576001600160a01b038416600090815260ca60209081526040808320858452825280832054848452818420819055835260cb90915290208190555b50600091825260cb602090815260408084208490556001600160a01b03909416835260ca81528383209183525290812055565b60cc54600090611a72906001906122d2565b600083815260cd602052604081205460cc8054939450909284908110611a9a57611a9a612014565b906000526020600020015490508060cc8381548110611abb57611abb612014565b600091825260208083209091019290925582815260cd909152604080822084905585825281205560cc805480611af357611af36122f8565b6001900381819060005260206000200160009055905550505050565b6000611b1a836107e7565b6001600160a01b03909316600090815260ca60209081526040808320868452825280832085905593825260cb9052919091209190915550565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611b925772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611bbe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611bdc57662386f26fc10000830492506010015b6305f5e1008310611bf4576305f5e100830492506008015b6127108310611c0857612710830492506004015b60648310611c1a576064830492506002015b600a83106103e85760010192915050565b6001600160e01b031981168114610bb457600080fd5b600060208284031215611c5357600080fd5b813561159881611c2b565b80356001600160a01b0381168114611c7557600080fd5b919050565b600060208284031215611c8c57600080fd5b61159882611c5e565b60005b83811015611cb0578181015183820152602001611c98565b50506000910152565b60008151808452611cd1816020860160208601611c95565b601f01601f19169290920160200192915050565b6020815260006115986020830184611cb9565b600060208284031215611d0a57600080fd5b5035919050565b60008060408385031215611d2457600080fd5b611d2d83611c5e565b946020939093013593505050565b600080600060608486031215611d5057600080fd5b611d5984611c5e565b9250611d6760208501611c5e565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611da857611da8611d77565b604051601f8501601f19908116603f01168101908282118183101715611dd057611dd0611d77565b81604052809350858152868686011115611de957600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611e1457600080fd5b61159883833560208501611d8d565b60008060408385031215611e3657600080fd5b611e3f83611c5e565b9150602083013567ffffffffffffffff811115611e5b57600080fd5b611e6785828601611e03565b9150509250929050565b60008060408385031215611e8457600080fd5b82359150602083013567ffffffffffffffff811115611e5b57600080fd5b60008060408385031215611eb557600080fd5b611ebe83611c5e565b915060208301358015158114611ed357600080fd5b809150509250929050565b60008060008060808587031215611ef457600080fd5b611efd85611c5e565b9350611f0b60208601611c5e565b925060408501359150606085013567ffffffffffffffff811115611f2e57600080fd5b8501601f81018713611f3f57600080fd5b611f4e87823560208401611d8d565b91505092959194509250565b60008060408385031215611f6d57600080fd5b611f7683611c5e565b9150611f8460208401611c5e565b90509250929050565b600181811c90821680611fa157607f821691505b602082108103611fc157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016120525761205261202a565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b601f8211156105bc57600081815260208120601f850160051c810160208610156121105750805b601f850160051c820191505b8181101561212f5782815560010161211c565b505050505050565b815167ffffffffffffffff81111561215157612151611d77565b6121658161215f8454611f8d565b846120e9565b602080601f83116001811461219a57600084156121825750858301515b600019600386901b1c1916600185901b17855561212f565b600085815260208120601f198616915b828110156121c9578886015182559484019460019091019084016121aa565b50858210156121e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000835161225b818460208801611c95565b83519083019061226f818360208801611c95565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122ab90830184611cb9565b9695505050505050565b6000602082840312156122c757600080fd5b815161159881611c2b565b818103818111156103e8576103e861202a565b808201808211156103e8576103e861202a565b634e487b7160e01b600052603160045260246000fdfea26469706673582212207c97dca10fc93414618a3f6422dcc2fab07a892a1b396426e61f4284a58496a364736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2344 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 0x18E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE93A724A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE93A724A EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x7765EBA1 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x89C7E0A0 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x42842E0E GT PUSH2 0x125 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x31962CDC EQ PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x5B186B6 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A6 PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C41 JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B2 JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B2 SWAP2 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x216 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B2 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x241 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0x4A7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xCC SLOAD PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0x5C1 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0x5F2 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x284 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x688 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x6F4 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x787 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0x881 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x21B JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x93D JUMP JUMPDEST PUSH2 0x246 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA2 JUMP JUMPDEST PUSH2 0x94C JUMP JUMPDEST PUSH2 0x246 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x1EDE JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x98F JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x246 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1A6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0xB3E JUMP JUMPDEST PUSH2 0x246 PUSH2 0x3D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E8 DUP3 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x98 DUP1 SLOAD PUSH2 0x3FD SWAP1 PUSH2 0x1F8D 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 0x429 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x476 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x44B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x476 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 0x459 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48B DUP3 PUSH2 0xC14 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B2 DUP3 PUSH2 0x787 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 0x524 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x540 JUMPI POP PUSH2 0x540 DUP2 CALLER PUSH2 0x389 JUMP JUMPDEST PUSH2 0x5B2 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 0x51B JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 PUSH2 0xC73 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5CB CALLER DUP3 PUSH2 0xCE1 JUMP JUMPDEST PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x1FC7 JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 DUP4 PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FD DUP4 PUSH2 0x7E7 JUMP JUMPDEST DUP3 LT PUSH2 0x65F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x690 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x957 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FF PUSH1 0xCC SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0xCC DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x775 JUMPI PUSH2 0x775 PUSH2 0x2014 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x875 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 PUSH2 0xF2B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12E PUSH1 0x0 DUP2 SLOAD PUSH2 0x8C1 SWAP1 PUSH2 0x2040 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x8D2 DUP5 DUP3 PUSH2 0xF7D JUMP JUMPDEST PUSH2 0x8DC DUP2 DUP5 PUSH2 0xF97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E7 DUP6 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x1 EQ SWAP1 POP DUP1 ISZERO PUSH2 0x8FC JUMPI PUSH2 0x8FC DUP6 DUP4 PUSH2 0x102A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x92F JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0xF97 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x99 DUP1 SLOAD PUSH2 0x3FD SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x939 CALLER DUP4 DUP4 PUSH2 0x108F JUMP JUMPDEST PUSH2 0x961 CALLER DUP4 PUSH2 0xCE1 JUMP JUMPDEST PUSH2 0x97D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x1FC7 JUMP JUMPDEST PUSH2 0x989 DUP5 DUP5 DUP5 DUP5 PUSH2 0x115D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9AF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C9 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9C9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA9C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x4D79335365632050726F66696C6573 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x4D33535 PUSH1 0xE4 SHL DUP2 MSTORE POP PUSH2 0x1190 JUMP JUMPDEST PUSH2 0xAA4 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0xAAC PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0xAB5 DUP3 PUSH2 0xBB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3E8 DUP3 PUSH2 0x11E8 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB34 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0x102A JUMP JUMPDEST PUSH2 0xB46 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH2 0xBB4 DUP2 PUSH2 0xF2B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0xBE6 PUSH2 0x12F0 JUMP JUMPDEST PUSH2 0xBB4 DUP2 PUSH2 0x688 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x780E9D63 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3E8 JUMPI POP PUSH2 0x3E8 DUP3 PUSH2 0x131F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xCA8 DUP3 PUSH2 0x787 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 0xCED DUP4 PUSH2 0x787 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 0xD34 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D 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 0xD58 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD4D DUP5 PUSH2 0x480 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 0xD73 DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xDFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH2 0xE08 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x136F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE1B DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x9B 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 0x9A 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 PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x87F 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 0x51B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1012 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xFC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5BC DUP3 DUP3 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x1054 JUMPI POP PUSH2 0x103E DUP2 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF194FAE5 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 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x10F0 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 0x51B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9D 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 0x1168 DUP5 DUP5 DUP5 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x1174 DUP5 DUP5 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x989 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0x14EB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x87F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11F3 DUP3 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xFC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x120C SWAP1 PUSH2 0x1F8D 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 0x1238 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1285 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x125A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1285 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 0x1268 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x12A3 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x12B5 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x12E7 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12CF SWAP3 SWAP2 SWAP1 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP5 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x87F PUSH2 0x159F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x3E8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 SUB PUSH2 0x13AB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMPDEST PUSH2 0x989 DUP5 DUP5 DUP5 DUP5 PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x13C1 DUP4 DUP4 PUSH2 0x170F JUMP JUMPDEST PUSH2 0x13CE PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x14E0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x142E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1469 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1466 SWAP2 DUP2 ADD SWAP1 PUSH2 0x22B5 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x14C6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1497 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 0x149C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xD58 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1512 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x98 PUSH2 0x151E DUP4 DUP3 PUSH2 0x2137 JUMP JUMPDEST POP PUSH1 0x99 PUSH2 0x5BC DUP3 DUP3 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1536 DUP3 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x154D 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 0x156D JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1598 JUMP JUMPDEST DUP1 PUSH2 0x1577 DUP5 PUSH2 0x18A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1588 SWAP3 SWAP2 SWAP1 PUSH2 0x2249 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 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x87F CALLER PUSH2 0xF2B JUMP JUMPDEST PUSH2 0x15DB DUP5 DUP5 DUP5 DUP5 PUSH2 0x193B JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x164A 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 PUSH21 0x185B9CD9995C9CC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x5A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x16A6 JUMPI PUSH2 0x16A1 DUP2 PUSH1 0xCC DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x47197230E1E4B29FC0BD84D7D78966C0925452AFF72A2A121538B102457E9EBE ADD SSTORE JUMP JUMPDEST PUSH2 0x16C9 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16C9 JUMPI PUSH2 0x16C9 DUP6 DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x16E5 JUMPI PUSH2 0x16E0 DUP2 PUSH2 0x1A60 JUMP JUMPDEST PUSH2 0x1708 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1708 JUMPI PUSH2 0x1708 DUP5 DUP3 PUSH2 0x1B0F JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1765 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 0x51B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x17CA 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 0x51B JUMP JUMPDEST PUSH2 0x17D8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x136F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x183D 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 0x51B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x9A SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x18B5 DUP4 PUSH2 0x1B53 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D5 JUMPI PUSH2 0x18D5 PUSH2 0x1D77 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 0x18FF 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 PUSH2 0x1909 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x1981 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x197B SWAP1 DUP5 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x19B8 SWAP1 DUP5 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x19D0 DUP5 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x19DA SWAP2 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x1A2D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA 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 0xCB SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xCB 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 0xCA DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0xCC SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1A72 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xCC DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A9A PUSH2 0x2014 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0xCC DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1ABB JUMPI PUSH2 0x1ABB PUSH2 0x2014 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0xCD SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0xCC DUP1 SLOAD DUP1 PUSH2 0x1AF3 JUMPI PUSH2 0x1AF3 PUSH2 0x22F8 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 0x1B1A DUP4 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA 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 0xCB SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1B92 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1BBE JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1BDC JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1BF4 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1C08 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1C1A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x3E8 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xBB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1598 DUP2 PUSH2 0x1C2B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1598 DUP3 PUSH2 0x1C5E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CB0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C98 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1CD1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1C95 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 0x1598 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1CB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2D DUP4 PUSH2 0x1C5E 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 0x1D50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D59 DUP5 PUSH2 0x1C5E JUMP JUMPDEST SWAP3 POP PUSH2 0x1D67 PUSH1 0x20 DUP6 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 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 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP5 GT ISZERO PUSH2 0x1DA8 JUMPI PUSH2 0x1DA8 PUSH2 0x1D77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1DD0 JUMPI PUSH2 0x1DD0 PUSH2 0x1D77 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1598 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E3F DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E67 DUP6 DUP3 DUP7 ADD PUSH2 0x1E03 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EBE DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1EF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EFD DUP6 PUSH2 0x1C5E JUMP JUMPDEST SWAP4 POP PUSH2 0x1F0B PUSH1 0x20 DUP7 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x1F3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F4E DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1D8D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F76 DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH2 0x1F84 PUSH1 0x20 DUP5 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1FA1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1FC1 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 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 PUSH2 0x2052 JUMPI PUSH2 0x2052 PUSH2 0x202A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5BC 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 0x2110 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x212F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x211C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2151 PUSH2 0x1D77 JUMP JUMPDEST PUSH2 0x2165 DUP2 PUSH2 0x215F DUP5 SLOAD PUSH2 0x1F8D JUMP JUMPDEST DUP5 PUSH2 0x20E9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x219A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2182 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 0x212F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21C9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21AA JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21E7 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x225B DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1C95 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x226F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1C95 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x22AB SWAP1 DUP4 ADD DUP5 PUSH2 0x1CB9 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1598 DUP2 PUSH2 0x1C2B JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3E8 JUMPI PUSH2 0x3E8 PUSH2 0x202A JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3E8 JUMPI PUSH2 0x3E8 PUSH2 0x202A 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 PUSH29 0x97DCA10FC93414618A3F6422DCC2FAB07A892A1B396426E61F4284A584 SWAP7 LOG3 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"494:2661:86:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__ERC721Enumerable_init_1422":{"entryPoint":4545,"id":1422,"parameterSlots":0,"returnSlots":0},"@__ERC721URIStorage_init_1793":{"entryPoint":null,"id":1793,"parameterSlots":0,"returnSlots":0},"@__ERC721_init_365":{"entryPoint":4496,"id":365,"parameterSlots":2,"returnSlots":0},"@__ERC721_init_unchained_383":{"entryPoint":5355,"id":383,"parameterSlots":2,"returnSlots":0},"@__HubControllable_init_21096":{"entryPoint":2999,"id":21096,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_26":{"entryPoint":4848,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_37":{"entryPoint":5535,"id":37,"parameterSlots":0,"returnSlots":0},"@_addTokenToAllTokensEnumeration_1661":{"entryPoint":null,"id":1661,"parameterSlots":1,"returnSlots":0},"@_addTokenToOwnerEnumeration_1641":{"entryPoint":6927,"id":1641,"parameterSlots":2,"returnSlots":0},"@_afterTokenTransfer_1264":{"entryPoint":null,"id":1264,"parameterSlots":4,"returnSlots":0},"@_approve_1097":{"entryPoint":3187,"id":1097,"parameterSlots":2,"returnSlots":0},"@_baseURI_534":{"entryPoint":null,"id":534,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_1251":{"entryPoint":6459,"id":1251,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_1611":{"entryPoint":5583,"id":1611,"parameterSlots":4,"returnSlots":0},"@_beforeTokenTransfer_24857":{"entryPoint":4975,"id":24857,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_1205":{"entryPoint":5098,"id":1205,"parameterSlots":4,"returnSlots":1},"@_checkOwner_68":{"entryPoint":3793,"id":68,"parameterSlots":0,"returnSlots":0},"@_exists_766":{"entryPoint":null,"id":766,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_800":{"entryPoint":3297,"id":800,"parameterSlots":2,"returnSlots":1},"@_mint_921":{"entryPoint":5903,"id":921,"parameterSlots":2,"returnSlots":0},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_ownerOf_748":{"entryPoint":null,"id":748,"parameterSlots":1,"returnSlots":1},"@_removeTokenFromAllTokensEnumeration_1772":{"entryPoint":6752,"id":1772,"parameterSlots":1,"returnSlots":0},"@_removeTokenFromOwnerEnumeration_1724":{"entryPoint":6595,"id":1724,"parameterSlots":2,"returnSlots":0},"@_requireMinted_1143":{"entryPoint":3092,"id":1143,"parameterSlots":1,"returnSlots":0},"@_safeMint_815":{"entryPoint":3965,"id":815,"parameterSlots":2,"returnSlots":0},"@_safeMint_844":{"entryPoint":5047,"id":844,"parameterSlots":3,"returnSlots":0},"@_safeTransfer_735":{"entryPoint":4445,"id":735,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_1129":{"entryPoint":4239,"id":1129,"parameterSlots":3,"returnSlots":0},"@_setDefaultProfile_24820":{"entryPoint":4138,"id":24820,"parameterSlots":2,"returnSlots":0},"@_setTokenURI_1887":{"entryPoint":3991,"id":1887,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_125":{"entryPoint":3883,"id":125,"parameterSlots":1,"returnSlots":0},"@_transfer_1073":{"entryPoint":3424,"id":1073,"parameterSlots":3,"returnSlots":0},"@approve_577":{"entryPoint":1191,"id":577,"parameterSlots":2,"returnSlots":0},"@balanceOf_438":{"entryPoint":2023,"id":438,"parameterSlots":1,"returnSlots":1},"@createProfile_24775":{"entryPoint":2177,"id":24775,"parameterSlots":2,"returnSlots":1},"@getApproved_595":{"entryPoint":1152,"id":595,"parameterSlots":1,"returnSlots":1},"@getDefaultProfileId_24711":{"entryPoint":null,"id":24711,"parameterSlots":1,"returnSlots":1},"@initialize_24697":{"entryPoint":2447,"id":24697,"parameterSlots":1,"returnSlots":0},"@isApprovedForAll_630":{"entryPoint":null,"id":630,"parameterSlots":2,"returnSlots":1},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@log10_3240":{"entryPoint":6995,"id":3240,"parameterSlots":1,"returnSlots":1},"@name_476":{"entryPoint":1006,"id":476,"parameterSlots":0,"returnSlots":1},"@ownerOf_466":{"entryPoint":1927,"id":466,"parameterSlots":1,"returnSlots":1},"@owner_54":{"entryPoint":null,"id":54,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_82":{"entryPoint":2157,"id":82,"parameterSlots":0,"returnSlots":0},"@safeTransferFrom_676":{"entryPoint":1753,"id":676,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_706":{"entryPoint":2391,"id":706,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_612":{"entryPoint":2380,"id":612,"parameterSlots":2,"returnSlots":0},"@setDefaultProfile_24728":{"entryPoint":2825,"id":24728,"parameterSlots":2,"returnSlots":0},"@setHub_21120":{"entryPoint":1672,"id":21120,"parameterSlots":1,"returnSlots":0},"@supportsInterface_1469":{"entryPoint":3055,"id":1469,"parameterSlots":1,"returnSlots":1},"@supportsInterface_24906":{"entryPoint":989,"id":24906,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2520":{"entryPoint":null,"id":2520,"parameterSlots":1,"returnSlots":1},"@supportsInterface_414":{"entryPoint":4895,"id":414,"parameterSlots":1,"returnSlots":1},"@symbol_486":{"entryPoint":2365,"id":486,"parameterSlots":0,"returnSlots":1},"@toString_2365":{"entryPoint":6312,"id":2365,"parameterSlots":1,"returnSlots":1},"@tokenByIndex_1531":{"entryPoint":1780,"id":1531,"parameterSlots":1,"returnSlots":1},"@tokenOfOwnerByIndex_1497":{"entryPoint":1522,"id":1497,"parameterSlots":2,"returnSlots":1},"@tokenURI_1865":{"entryPoint":4584,"id":1865,"parameterSlots":1,"returnSlots":1},"@tokenURI_24889":{"entryPoint":2814,"id":24889,"parameterSlots":1,"returnSlots":1},"@tokenURI_525":{"entryPoint":5419,"id":525,"parameterSlots":1,"returnSlots":1},"@totalSupply_1508":{"entryPoint":null,"id":1508,"parameterSlots":0,"returnSlots":1},"@transferFrom_657":{"entryPoint":1473,"id":657,"parameterSlots":3,"returnSlots":0},"@transferOwnership_105":{"entryPoint":2878,"id":105,"parameterSlots":1,"returnSlots":0},"@updateProfile_24791":{"entryPoint":2308,"id":24791,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":7262,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_string":{"entryPoint":7565,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_string":{"entryPoint":7683,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7290,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":8026,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":7483,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":7902,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7842,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_string_memory_ptr":{"entryPoint":7715,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7441,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":7233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":8885,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":7416,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_string_memory_ptr":{"entryPoint":7793,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":7353,"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":8777,"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":8824,"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_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7397,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8135,"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":8695,"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_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8356,"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_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__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_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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8281,"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_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8933,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8914,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":8425,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":8503,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":7317,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":8077,"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":8256,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8234,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":8952,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8212,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7543,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":7211,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:18498:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"58:87:89","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:89"},"nodeType":"YulFunctionCall","src":"125:12:89"},"nodeType":"YulExpressionStatement","src":"125:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"92:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"108:10:89","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"99:3:89"},"nodeType":"YulFunctionCall","src":"99:20:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"88:3:89"},"nodeType":"YulFunctionCall","src":"88:32:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"78:2:89"},"nodeType":"YulFunctionCall","src":"78:43:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"71:6:89"},"nodeType":"YulFunctionCall","src":"71:51:89"},"nodeType":"YulIf","src":"68:71:89"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"47:5:89","type":""}],"src":"14:131:89"},{"body":{"nodeType":"YulBlock","src":"219:176:89","statements":[{"body":{"nodeType":"YulBlock","src":"265:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"274:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"267:6:89"},"nodeType":"YulFunctionCall","src":"267:12:89"},"nodeType":"YulExpressionStatement","src":"267:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"240:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"249:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"236:3:89"},"nodeType":"YulFunctionCall","src":"236:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"261:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"232:3:89"},"nodeType":"YulFunctionCall","src":"232:32:89"},"nodeType":"YulIf","src":"229:52:89"},{"nodeType":"YulVariableDeclaration","src":"290:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"316:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"303:12:89"},"nodeType":"YulFunctionCall","src":"303:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"294:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"359:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"335:23:89"},"nodeType":"YulFunctionCall","src":"335:30:89"},"nodeType":"YulExpressionStatement","src":"335:30:89"},{"nodeType":"YulAssignment","src":"374:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"384:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"374:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"185:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"196:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"208:6:89","type":""}],"src":"150:245:89"},{"body":{"nodeType":"YulBlock","src":"495:92:89","statements":[{"nodeType":"YulAssignment","src":"505:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"517:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"528:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"513:3:89"},"nodeType":"YulFunctionCall","src":"513:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"505:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:89"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"572:6:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"565:6:89"},"nodeType":"YulFunctionCall","src":"565:14:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"558:6:89"},"nodeType":"YulFunctionCall","src":"558:22:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"540:6:89"},"nodeType":"YulFunctionCall","src":"540:41:89"},"nodeType":"YulExpressionStatement","src":"540:41:89"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"464:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"475:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"486:4:89","type":""}],"src":"400:187:89"},{"body":{"nodeType":"YulBlock","src":"641:124:89","statements":[{"nodeType":"YulAssignment","src":"651:29:89","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"673:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"660:12:89"},"nodeType":"YulFunctionCall","src":"660:20:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"651:5:89"}]},{"body":{"nodeType":"YulBlock","src":"743:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"752:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"755:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"745:6:89"},"nodeType":"YulFunctionCall","src":"745:12:89"},"nodeType":"YulExpressionStatement","src":"745:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"702:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"713:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"728:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"733:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"724:3:89"},"nodeType":"YulFunctionCall","src":"724:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"737:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"720:3:89"},"nodeType":"YulFunctionCall","src":"720:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"709:3:89"},"nodeType":"YulFunctionCall","src":"709:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"699:2:89"},"nodeType":"YulFunctionCall","src":"699:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"692:6:89"},"nodeType":"YulFunctionCall","src":"692:50:89"},"nodeType":"YulIf","src":"689:70:89"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"620:6:89","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"631:5:89","type":""}],"src":"592:173:89"},{"body":{"nodeType":"YulBlock","src":"840:116:89","statements":[{"body":{"nodeType":"YulBlock","src":"886:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"895:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"898:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"888:6:89"},"nodeType":"YulFunctionCall","src":"888:12:89"},"nodeType":"YulExpressionStatement","src":"888:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"861:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"870:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"857:3:89"},"nodeType":"YulFunctionCall","src":"857:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"882:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"853:3:89"},"nodeType":"YulFunctionCall","src":"853:32:89"},"nodeType":"YulIf","src":"850:52:89"},{"nodeType":"YulAssignment","src":"911:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"940:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"921:18:89"},"nodeType":"YulFunctionCall","src":"921:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"911:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"806:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"817:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"829:6:89","type":""}],"src":"770:186:89"},{"body":{"nodeType":"YulBlock","src":"1062:76:89","statements":[{"nodeType":"YulAssignment","src":"1072:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1084:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1095:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1080:3:89"},"nodeType":"YulFunctionCall","src":"1080:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1072:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1114:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1125:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:89"},"nodeType":"YulFunctionCall","src":"1107:25:89"},"nodeType":"YulExpressionStatement","src":"1107:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1031:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1042:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1053:4:89","type":""}],"src":"961:177:89"},{"body":{"nodeType":"YulBlock","src":"1209:184:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1219:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"1228:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1223:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"1288:63:89","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1313:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"1318:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1309:3:89"},"nodeType":"YulFunctionCall","src":"1309:11:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1332:3:89"},{"name":"i","nodeType":"YulIdentifier","src":"1337:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1328:3:89"},"nodeType":"YulFunctionCall","src":"1328:11:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1322:5:89"},"nodeType":"YulFunctionCall","src":"1322:18:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1302:6:89"},"nodeType":"YulFunctionCall","src":"1302:39:89"},"nodeType":"YulExpressionStatement","src":"1302:39:89"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1249:1:89"},{"name":"length","nodeType":"YulIdentifier","src":"1252:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1246:2:89"},"nodeType":"YulFunctionCall","src":"1246:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1260:19:89","statements":[{"nodeType":"YulAssignment","src":"1262:15:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1271:1:89"},{"kind":"number","nodeType":"YulLiteral","src":"1274:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1267:3:89"},"nodeType":"YulFunctionCall","src":"1267:10:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1262:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"1242:3:89","statements":[]},"src":"1238:113:89"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1371:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"1376:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1367:3:89"},"nodeType":"YulFunctionCall","src":"1367:16:89"},{"kind":"number","nodeType":"YulLiteral","src":"1385:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1360:6:89"},"nodeType":"YulFunctionCall","src":"1360:27:89"},"nodeType":"YulExpressionStatement","src":"1360:27:89"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1187:3:89","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1192:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"1197:6:89","type":""}],"src":"1143:250:89"},{"body":{"nodeType":"YulBlock","src":"1448:221:89","statements":[{"nodeType":"YulVariableDeclaration","src":"1458:26:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1478:5:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1472:5:89"},"nodeType":"YulFunctionCall","src":"1472:12:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1462:6:89","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1500:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"1505:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1493:6:89"},"nodeType":"YulFunctionCall","src":"1493:19:89"},"nodeType":"YulExpressionStatement","src":"1493:19:89"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1560:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"1567:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1556:3:89"},"nodeType":"YulFunctionCall","src":"1556:16:89"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1578:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"1583:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1574:3:89"},"nodeType":"YulFunctionCall","src":"1574:14:89"},{"name":"length","nodeType":"YulIdentifier","src":"1590:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1521:34:89"},"nodeType":"YulFunctionCall","src":"1521:76:89"},"nodeType":"YulExpressionStatement","src":"1521:76:89"},{"nodeType":"YulAssignment","src":"1606:57:89","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1621:3:89"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1634:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1642:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:89"},"nodeType":"YulFunctionCall","src":"1630:15:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1651:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1647:3:89"},"nodeType":"YulFunctionCall","src":"1647:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1626:3:89"},"nodeType":"YulFunctionCall","src":"1626:29:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1617:3:89"},"nodeType":"YulFunctionCall","src":"1617:39:89"},{"kind":"number","nodeType":"YulLiteral","src":"1658:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:89"},"nodeType":"YulFunctionCall","src":"1613:50:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1606:3:89"}]}]},"name":"abi_encode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1425:5:89","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1432:3:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1440:3:89","type":""}],"src":"1398:271:89"},{"body":{"nodeType":"YulBlock","src":"1795:99:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1812:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1823:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1805:6:89"},"nodeType":"YulFunctionCall","src":"1805:21:89"},"nodeType":"YulExpressionStatement","src":"1805:21:89"},{"nodeType":"YulAssignment","src":"1835:53:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1861:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1873:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1884:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1869:3:89"},"nodeType":"YulFunctionCall","src":"1869:18:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"1843:17:89"},"nodeType":"YulFunctionCall","src":"1843:45:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1835:4:89"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1764:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1775:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1786:4:89","type":""}],"src":"1674:220:89"},{"body":{"nodeType":"YulBlock","src":"1969:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"2015:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2024:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2027:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2017:6:89"},"nodeType":"YulFunctionCall","src":"2017:12:89"},"nodeType":"YulExpressionStatement","src":"2017:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1990:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1999:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1986:3:89"},"nodeType":"YulFunctionCall","src":"1986:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2011:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1982:3:89"},"nodeType":"YulFunctionCall","src":"1982:32:89"},"nodeType":"YulIf","src":"1979:52:89"},{"nodeType":"YulAssignment","src":"2040:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2063:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2050:12:89"},"nodeType":"YulFunctionCall","src":"2050:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2040:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1935:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1946:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1958:6:89","type":""}],"src":"1899:180:89"},{"body":{"nodeType":"YulBlock","src":"2185:102:89","statements":[{"nodeType":"YulAssignment","src":"2195:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2207:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2218:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2203:3:89"},"nodeType":"YulFunctionCall","src":"2203:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2195:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2237:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2252:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2268:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2273:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2264:3:89"},"nodeType":"YulFunctionCall","src":"2264:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"2277:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2260:3:89"},"nodeType":"YulFunctionCall","src":"2260:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2248:3:89"},"nodeType":"YulFunctionCall","src":"2248:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2230:6:89"},"nodeType":"YulFunctionCall","src":"2230:51:89"},"nodeType":"YulExpressionStatement","src":"2230:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2154:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2165:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2176:4:89","type":""}],"src":"2084:203:89"},{"body":{"nodeType":"YulBlock","src":"2379:167:89","statements":[{"body":{"nodeType":"YulBlock","src":"2425:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2434:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2437:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2427:6:89"},"nodeType":"YulFunctionCall","src":"2427:12:89"},"nodeType":"YulExpressionStatement","src":"2427:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2400:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2409:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2396:3:89"},"nodeType":"YulFunctionCall","src":"2396:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2421:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2392:3:89"},"nodeType":"YulFunctionCall","src":"2392:32:89"},"nodeType":"YulIf","src":"2389:52:89"},{"nodeType":"YulAssignment","src":"2450:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2479:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2460:18:89"},"nodeType":"YulFunctionCall","src":"2460:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2450:6:89"}]},{"nodeType":"YulAssignment","src":"2498:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2525:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2536:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2521:3:89"},"nodeType":"YulFunctionCall","src":"2521:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2508:12:89"},"nodeType":"YulFunctionCall","src":"2508:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2498:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2337:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2348:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2360:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2368:6:89","type":""}],"src":"2292:254:89"},{"body":{"nodeType":"YulBlock","src":"2655:224:89","statements":[{"body":{"nodeType":"YulBlock","src":"2701:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2710:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2713:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2703:6:89"},"nodeType":"YulFunctionCall","src":"2703:12:89"},"nodeType":"YulExpressionStatement","src":"2703:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2676:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"2685:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2672:3:89"},"nodeType":"YulFunctionCall","src":"2672:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"2697:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2668:3:89"},"nodeType":"YulFunctionCall","src":"2668:32:89"},"nodeType":"YulIf","src":"2665:52:89"},{"nodeType":"YulAssignment","src":"2726:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2755:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2736:18:89"},"nodeType":"YulFunctionCall","src":"2736:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2726:6:89"}]},{"nodeType":"YulAssignment","src":"2774:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2807:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2818:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2803:3:89"},"nodeType":"YulFunctionCall","src":"2803:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2784:18:89"},"nodeType":"YulFunctionCall","src":"2784:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2774:6:89"}]},{"nodeType":"YulAssignment","src":"2831:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2858:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2869:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2854:3:89"},"nodeType":"YulFunctionCall","src":"2854:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2841:12:89"},"nodeType":"YulFunctionCall","src":"2841:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2831:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2605:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2616:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2628:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2636:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2644:6:89","type":""}],"src":"2551:328:89"},{"body":{"nodeType":"YulBlock","src":"2916:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2933:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2940:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2945:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2936:3:89"},"nodeType":"YulFunctionCall","src":"2936:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2926:6:89"},"nodeType":"YulFunctionCall","src":"2926:31:89"},"nodeType":"YulExpressionStatement","src":"2926:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2973:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2976:4:89","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2966:6:89"},"nodeType":"YulFunctionCall","src":"2966:15:89"},"nodeType":"YulExpressionStatement","src":"2966:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2997:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3000:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2990:6:89"},"nodeType":"YulFunctionCall","src":"2990:15:89"},"nodeType":"YulExpressionStatement","src":"2990:15:89"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2884:127:89"},{"body":{"nodeType":"YulBlock","src":"3091:557:89","statements":[{"nodeType":"YulVariableDeclaration","src":"3101:28:89","value":{"kind":"number","nodeType":"YulLiteral","src":"3111:18:89","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3105:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3156:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3158:16:89"},"nodeType":"YulFunctionCall","src":"3158:18:89"},"nodeType":"YulExpressionStatement","src":"3158:18:89"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3144:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3152:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3141:2:89"},"nodeType":"YulFunctionCall","src":"3141:14:89"},"nodeType":"YulIf","src":"3138:40:89"},{"nodeType":"YulVariableDeclaration","src":"3187:17:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3201:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3197:3:89"},"nodeType":"YulFunctionCall","src":"3197:7:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3191:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3213:23:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3233:2:89","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3227:5:89"},"nodeType":"YulFunctionCall","src":"3227:9:89"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"3217:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3245:73:89","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3267:6:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3291:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3299:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3287:3:89"},"nodeType":"YulFunctionCall","src":"3287:15:89"},{"name":"_2","nodeType":"YulIdentifier","src":"3304:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3283:3:89"},"nodeType":"YulFunctionCall","src":"3283:24:89"},{"kind":"number","nodeType":"YulLiteral","src":"3309:2:89","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3279:3:89"},"nodeType":"YulFunctionCall","src":"3279:33:89"},{"name":"_2","nodeType":"YulIdentifier","src":"3314:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3275:3:89"},"nodeType":"YulFunctionCall","src":"3275:42:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:89"},"nodeType":"YulFunctionCall","src":"3263:55:89"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"3249:10:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"3377:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3379:16:89"},"nodeType":"YulFunctionCall","src":"3379:18:89"},"nodeType":"YulExpressionStatement","src":"3379:18:89"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3336:10:89"},{"name":"_1","nodeType":"YulIdentifier","src":"3348:2:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3333:2:89"},"nodeType":"YulFunctionCall","src":"3333:18:89"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3356:10:89"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3368:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3353:2:89"},"nodeType":"YulFunctionCall","src":"3353:22:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3330:2:89"},"nodeType":"YulFunctionCall","src":"3330:46:89"},"nodeType":"YulIf","src":"3327:72:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3415:2:89","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3419:10:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3408:6:89"},"nodeType":"YulFunctionCall","src":"3408:22:89"},"nodeType":"YulExpressionStatement","src":"3408:22:89"},{"nodeType":"YulAssignment","src":"3439:15:89","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3448:6:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3439:5:89"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3470:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"3478:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3463:6:89"},"nodeType":"YulFunctionCall","src":"3463:22:89"},"nodeType":"YulExpressionStatement","src":"3463:22:89"},{"body":{"nodeType":"YulBlock","src":"3523:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3532:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3535:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3525:6:89"},"nodeType":"YulFunctionCall","src":"3525:12:89"},"nodeType":"YulExpressionStatement","src":"3525:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3504:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3509:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3500:3:89"},"nodeType":"YulFunctionCall","src":"3500:16:89"},{"name":"end","nodeType":"YulIdentifier","src":"3518:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3497:2:89"},"nodeType":"YulFunctionCall","src":"3497:25:89"},"nodeType":"YulIf","src":"3494:45:89"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3565:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3573:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3561:3:89"},"nodeType":"YulFunctionCall","src":"3561:17:89"},{"name":"src","nodeType":"YulIdentifier","src":"3580:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"3585:6:89"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3548:12:89"},"nodeType":"YulFunctionCall","src":"3548:44:89"},"nodeType":"YulExpressionStatement","src":"3548:44:89"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3616:6:89"},{"name":"length","nodeType":"YulIdentifier","src":"3624:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3612:3:89"},"nodeType":"YulFunctionCall","src":"3612:19:89"},{"kind":"number","nodeType":"YulLiteral","src":"3633:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3608:3:89"},"nodeType":"YulFunctionCall","src":"3608:30:89"},{"kind":"number","nodeType":"YulLiteral","src":"3640:1:89","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3601:6:89"},"nodeType":"YulFunctionCall","src":"3601:41:89"},"nodeType":"YulExpressionStatement","src":"3601:41:89"}]},"name":"abi_decode_available_length_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3060:3:89","type":""},{"name":"length","nodeType":"YulTypedName","src":"3065:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"3073:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3081:5:89","type":""}],"src":"3016:632:89"},{"body":{"nodeType":"YulBlock","src":"3706:169:89","statements":[{"body":{"nodeType":"YulBlock","src":"3755:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3764:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3767:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3757:6:89"},"nodeType":"YulFunctionCall","src":"3757:12:89"},"nodeType":"YulExpressionStatement","src":"3757:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3734:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3742:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3730:3:89"},"nodeType":"YulFunctionCall","src":"3730:17:89"},{"name":"end","nodeType":"YulIdentifier","src":"3749:3:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3726:3:89"},"nodeType":"YulFunctionCall","src":"3726:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3719:6:89"},"nodeType":"YulFunctionCall","src":"3719:35:89"},"nodeType":"YulIf","src":"3716:55:89"},{"nodeType":"YulAssignment","src":"3780:89:89","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3828:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"3836:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3824:3:89"},"nodeType":"YulFunctionCall","src":"3824:17:89"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3856:6:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3843:12:89"},"nodeType":"YulFunctionCall","src":"3843:20:89"},{"name":"end","nodeType":"YulIdentifier","src":"3865:3:89"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"3789:34:89"},"nodeType":"YulFunctionCall","src":"3789:80:89"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"3780:5:89"}]}]},"name":"abi_decode_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3680:6:89","type":""},{"name":"end","nodeType":"YulTypedName","src":"3688:3:89","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"3696:5:89","type":""}],"src":"3653:222:89"},{"body":{"nodeType":"YulBlock","src":"3977:299:89","statements":[{"body":{"nodeType":"YulBlock","src":"4023:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4032:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4035:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4025:6:89"},"nodeType":"YulFunctionCall","src":"4025:12:89"},"nodeType":"YulExpressionStatement","src":"4025:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3998:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4007:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3994:3:89"},"nodeType":"YulFunctionCall","src":"3994:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4019:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3990:3:89"},"nodeType":"YulFunctionCall","src":"3990:32:89"},"nodeType":"YulIf","src":"3987:52:89"},{"nodeType":"YulAssignment","src":"4048:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4077:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4058:18:89"},"nodeType":"YulFunctionCall","src":"4058:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4048:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4096:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4127:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4138:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4123:3:89"},"nodeType":"YulFunctionCall","src":"4123:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4110:12:89"},"nodeType":"YulFunctionCall","src":"4110:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4100:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4185:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4194:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4197:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4187:6:89"},"nodeType":"YulFunctionCall","src":"4187:12:89"},"nodeType":"YulExpressionStatement","src":"4187:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4157:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4165:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4154:2:89"},"nodeType":"YulFunctionCall","src":"4154:30:89"},"nodeType":"YulIf","src":"4151:50:89"},{"nodeType":"YulAssignment","src":"4210:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4242:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4253:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4238:3:89"},"nodeType":"YulFunctionCall","src":"4238:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4262:7:89"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4220:17:89"},"nodeType":"YulFunctionCall","src":"4220:50:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4210:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3935:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3946:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3958:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3966:6:89","type":""}],"src":"3880:396:89"},{"body":{"nodeType":"YulBlock","src":"4378:293:89","statements":[{"body":{"nodeType":"YulBlock","src":"4424:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4433:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4436:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4426:6:89"},"nodeType":"YulFunctionCall","src":"4426:12:89"},"nodeType":"YulExpressionStatement","src":"4426:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4399:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4408:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4395:3:89"},"nodeType":"YulFunctionCall","src":"4395:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4420:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4391:3:89"},"nodeType":"YulFunctionCall","src":"4391:32:89"},"nodeType":"YulIf","src":"4388:52:89"},{"nodeType":"YulAssignment","src":"4449:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4472:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4459:12:89"},"nodeType":"YulFunctionCall","src":"4459:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4449:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4491:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4522:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4533:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4518:3:89"},"nodeType":"YulFunctionCall","src":"4518:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4505:12:89"},"nodeType":"YulFunctionCall","src":"4505:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4495:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4580:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4589:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4592:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4582:6:89"},"nodeType":"YulFunctionCall","src":"4582:12:89"},"nodeType":"YulExpressionStatement","src":"4582:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4552:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"4560:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4549:2:89"},"nodeType":"YulFunctionCall","src":"4549:30:89"},"nodeType":"YulIf","src":"4546:50:89"},{"nodeType":"YulAssignment","src":"4605:60:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4637:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"4648:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4633:3:89"},"nodeType":"YulFunctionCall","src":"4633:22:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4657:7:89"}],"functionName":{"name":"abi_decode_string","nodeType":"YulIdentifier","src":"4615:17:89"},"nodeType":"YulFunctionCall","src":"4615:50:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4605:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4336:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4347:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4359:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4367:6:89","type":""}],"src":"4281:390:89"},{"body":{"nodeType":"YulBlock","src":"4760:263:89","statements":[{"body":{"nodeType":"YulBlock","src":"4806:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4815:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4818:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4808:6:89"},"nodeType":"YulFunctionCall","src":"4808:12:89"},"nodeType":"YulExpressionStatement","src":"4808:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4781:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"4790:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4777:3:89"},"nodeType":"YulFunctionCall","src":"4777:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"4802:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4773:3:89"},"nodeType":"YulFunctionCall","src":"4773:32:89"},"nodeType":"YulIf","src":"4770:52:89"},{"nodeType":"YulAssignment","src":"4831:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4860:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4841:18:89"},"nodeType":"YulFunctionCall","src":"4841:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4831:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"4879:45:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4909:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"4920:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4905:3:89"},"nodeType":"YulFunctionCall","src":"4905:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4892:12:89"},"nodeType":"YulFunctionCall","src":"4892:32:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4883:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"4977:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4986:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4989:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4979:6:89"},"nodeType":"YulFunctionCall","src":"4979:12:89"},"nodeType":"YulExpressionStatement","src":"4979:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4946:5:89"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4967:5:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4960:6:89"},"nodeType":"YulFunctionCall","src":"4960:13:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4953:6:89"},"nodeType":"YulFunctionCall","src":"4953:21:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4943:2:89"},"nodeType":"YulFunctionCall","src":"4943:32:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4936:6:89"},"nodeType":"YulFunctionCall","src":"4936:40:89"},"nodeType":"YulIf","src":"4933:60:89"},{"nodeType":"YulAssignment","src":"5002:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"5012:5:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5002:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4718:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4729:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4741:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4749:6:89","type":""}],"src":"4676:347:89"},{"body":{"nodeType":"YulBlock","src":"5158:537:89","statements":[{"body":{"nodeType":"YulBlock","src":"5205:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5214:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5217:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5207:6:89"},"nodeType":"YulFunctionCall","src":"5207:12:89"},"nodeType":"YulExpressionStatement","src":"5207:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5179:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5188:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5175:3:89"},"nodeType":"YulFunctionCall","src":"5175:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5200:3:89","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5171:3:89"},"nodeType":"YulFunctionCall","src":"5171:33:89"},"nodeType":"YulIf","src":"5168:53:89"},{"nodeType":"YulAssignment","src":"5230:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5259:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5240:18:89"},"nodeType":"YulFunctionCall","src":"5240:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5230:6:89"}]},{"nodeType":"YulAssignment","src":"5278:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5311:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5322:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5307:3:89"},"nodeType":"YulFunctionCall","src":"5307:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5288:18:89"},"nodeType":"YulFunctionCall","src":"5288:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5278:6:89"}]},{"nodeType":"YulAssignment","src":"5335:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5362:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5373:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5358:3:89"},"nodeType":"YulFunctionCall","src":"5358:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5345:12:89"},"nodeType":"YulFunctionCall","src":"5345:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5335:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"5386:46:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5417:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5428:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5413:3:89"},"nodeType":"YulFunctionCall","src":"5413:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5400:12:89"},"nodeType":"YulFunctionCall","src":"5400:32:89"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5390:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5475:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5484:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5487:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5477:6:89"},"nodeType":"YulFunctionCall","src":"5477:12:89"},"nodeType":"YulExpressionStatement","src":"5477:12:89"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5447:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"5455:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5444:2:89"},"nodeType":"YulFunctionCall","src":"5444:30:89"},"nodeType":"YulIf","src":"5441:50:89"},{"nodeType":"YulVariableDeclaration","src":"5500:32:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5514:9:89"},{"name":"offset","nodeType":"YulIdentifier","src":"5525:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5510:3:89"},"nodeType":"YulFunctionCall","src":"5510:22:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5504:2:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"5580:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5589:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5592:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5582:6:89"},"nodeType":"YulFunctionCall","src":"5582:12:89"},"nodeType":"YulExpressionStatement","src":"5582:12:89"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5559:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5563:4:89","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5555:3:89"},"nodeType":"YulFunctionCall","src":"5555:13:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5570:7:89"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5551:3:89"},"nodeType":"YulFunctionCall","src":"5551:27:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5544:6:89"},"nodeType":"YulFunctionCall","src":"5544:35:89"},"nodeType":"YulIf","src":"5541:55:89"},{"nodeType":"YulAssignment","src":"5605:84:89","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5654:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"5658:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5650:3:89"},"nodeType":"YulFunctionCall","src":"5650:11:89"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5676:2:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5663:12:89"},"nodeType":"YulFunctionCall","src":"5663:16:89"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5681:7:89"}],"functionName":{"name":"abi_decode_available_length_string","nodeType":"YulIdentifier","src":"5615:34:89"},"nodeType":"YulFunctionCall","src":"5615:74:89"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5605:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5100:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5111:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5123:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5131:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5139:6:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5147:6:89","type":""}],"src":"5028:667:89"},{"body":{"nodeType":"YulBlock","src":"5787:173:89","statements":[{"body":{"nodeType":"YulBlock","src":"5833:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5842:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5845:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5835:6:89"},"nodeType":"YulFunctionCall","src":"5835:12:89"},"nodeType":"YulExpressionStatement","src":"5835:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5808:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"5817:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5804:3:89"},"nodeType":"YulFunctionCall","src":"5804:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"5829:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5800:3:89"},"nodeType":"YulFunctionCall","src":"5800:32:89"},"nodeType":"YulIf","src":"5797:52:89"},{"nodeType":"YulAssignment","src":"5858:39:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5887:9:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5868:18:89"},"nodeType":"YulFunctionCall","src":"5868:29:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5858:6:89"}]},{"nodeType":"YulAssignment","src":"5906:48:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5939:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"5950:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5935:3:89"},"nodeType":"YulFunctionCall","src":"5935:18:89"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5916:18:89"},"nodeType":"YulFunctionCall","src":"5916:38:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5906:6:89"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5745:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5756:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5768:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5776:6:89","type":""}],"src":"5700:260:89"},{"body":{"nodeType":"YulBlock","src":"6020:325:89","statements":[{"nodeType":"YulAssignment","src":"6030:22:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6044:1:89","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"6047:4:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6040:3:89"},"nodeType":"YulFunctionCall","src":"6040:12:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6030:6:89"}]},{"nodeType":"YulVariableDeclaration","src":"6061:38:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6091:4:89"},{"kind":"number","nodeType":"YulLiteral","src":"6097:1:89","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6087:3:89"},"nodeType":"YulFunctionCall","src":"6087:12:89"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6065:18:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"6138:31:89","statements":[{"nodeType":"YulAssignment","src":"6140:27:89","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6154:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6162:4:89","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6150:3:89"},"nodeType":"YulFunctionCall","src":"6150:17:89"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6140:6:89"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6118:18:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6111:6:89"},"nodeType":"YulFunctionCall","src":"6111:26:89"},"nodeType":"YulIf","src":"6108:61:89"},{"body":{"nodeType":"YulBlock","src":"6228:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6249:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6256:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6261:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6252:3:89"},"nodeType":"YulFunctionCall","src":"6252:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6242:6:89"},"nodeType":"YulFunctionCall","src":"6242:31:89"},"nodeType":"YulExpressionStatement","src":"6242:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6293:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6296:4:89","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6286:6:89"},"nodeType":"YulFunctionCall","src":"6286:15:89"},"nodeType":"YulExpressionStatement","src":"6286:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6321:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6324:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6314:6:89"},"nodeType":"YulFunctionCall","src":"6314:15:89"},"nodeType":"YulExpressionStatement","src":"6314:15:89"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6184:18:89"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6207:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"6215:2:89","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6204:2:89"},"nodeType":"YulFunctionCall","src":"6204:14:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6181:2:89"},"nodeType":"YulFunctionCall","src":"6181:38:89"},"nodeType":"YulIf","src":"6178:161:89"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6000:4:89","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6009:6:89","type":""}],"src":"5965:380:89"},{"body":{"nodeType":"YulBlock","src":"6524:223:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6541:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6552:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6534:6:89"},"nodeType":"YulFunctionCall","src":"6534:21:89"},"nodeType":"YulExpressionStatement","src":"6534:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6575:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6586:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6571:3:89"},"nodeType":"YulFunctionCall","src":"6571:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6591:2:89","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6564:6:89"},"nodeType":"YulFunctionCall","src":"6564:30:89"},"nodeType":"YulExpressionStatement","src":"6564:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6614:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6625:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6610:3:89"},"nodeType":"YulFunctionCall","src":"6610:18:89"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nodeType":"YulLiteral","src":"6630:34:89","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6603:6:89"},"nodeType":"YulFunctionCall","src":"6603:62:89"},"nodeType":"YulExpressionStatement","src":"6603:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6685:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6696:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6681:3:89"},"nodeType":"YulFunctionCall","src":"6681:18:89"},{"hexValue":"72","kind":"string","nodeType":"YulLiteral","src":"6701:3:89","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6674:6:89"},"nodeType":"YulFunctionCall","src":"6674:31:89"},"nodeType":"YulExpressionStatement","src":"6674:31:89"},{"nodeType":"YulAssignment","src":"6714:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6726:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6737:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6722:3:89"},"nodeType":"YulFunctionCall","src":"6722:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6714:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6501:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6515:4:89","type":""}],"src":"6350:397:89"},{"body":{"nodeType":"YulBlock","src":"6926:251:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6943:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6954:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6936:6:89"},"nodeType":"YulFunctionCall","src":"6936:21:89"},"nodeType":"YulExpressionStatement","src":"6936:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6977:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"6988:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6973:3:89"},"nodeType":"YulFunctionCall","src":"6973:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"6993:2:89","type":"","value":"61"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6966:6:89"},"nodeType":"YulFunctionCall","src":"6966:30:89"},"nodeType":"YulExpressionStatement","src":"6966:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7016:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7027:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7012:3:89"},"nodeType":"YulFunctionCall","src":"7012:18:89"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nodeType":"YulLiteral","src":"7032:34:89","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7005:6:89"},"nodeType":"YulFunctionCall","src":"7005:62:89"},"nodeType":"YulExpressionStatement","src":"7005:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7087:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7098:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7083:3:89"},"nodeType":"YulFunctionCall","src":"7083:18:89"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nodeType":"YulLiteral","src":"7103:31:89","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7076:6:89"},"nodeType":"YulFunctionCall","src":"7076:59:89"},"nodeType":"YulExpressionStatement","src":"7076:59:89"},{"nodeType":"YulAssignment","src":"7144:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7156:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7167:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7152:3:89"},"nodeType":"YulFunctionCall","src":"7152:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7144:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6903:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6917:4:89","type":""}],"src":"6752:425:89"},{"body":{"nodeType":"YulBlock","src":"7356:235:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7373:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7384:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7366:6:89"},"nodeType":"YulFunctionCall","src":"7366:21:89"},"nodeType":"YulExpressionStatement","src":"7366:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7407:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7418:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7403:3:89"},"nodeType":"YulFunctionCall","src":"7403:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7423:2:89","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7396:6:89"},"nodeType":"YulFunctionCall","src":"7396:30:89"},"nodeType":"YulExpressionStatement","src":"7396:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7446:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7457:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7442:3:89"},"nodeType":"YulFunctionCall","src":"7442:18:89"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nodeType":"YulLiteral","src":"7462:34:89","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7435:6:89"},"nodeType":"YulFunctionCall","src":"7435:62:89"},"nodeType":"YulExpressionStatement","src":"7435:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7517:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7528:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7513:3:89"},"nodeType":"YulFunctionCall","src":"7513:18:89"},{"hexValue":"72206f7220617070726f766564","kind":"string","nodeType":"YulLiteral","src":"7533:15:89","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7506:6:89"},"nodeType":"YulFunctionCall","src":"7506:43:89"},"nodeType":"YulExpressionStatement","src":"7506:43:89"},{"nodeType":"YulAssignment","src":"7558:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7570:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7581:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7566:3:89"},"nodeType":"YulFunctionCall","src":"7566:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7558:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7333:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7347:4:89","type":""}],"src":"7182:409:89"},{"body":{"nodeType":"YulBlock","src":"7770:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7787:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7798:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7780:6:89"},"nodeType":"YulFunctionCall","src":"7780:21:89"},"nodeType":"YulExpressionStatement","src":"7780:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7821:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7832:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7817:3:89"},"nodeType":"YulFunctionCall","src":"7817:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"7837:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7810:6:89"},"nodeType":"YulFunctionCall","src":"7810:30:89"},"nodeType":"YulExpressionStatement","src":"7810:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7860:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7871:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7856:3:89"},"nodeType":"YulFunctionCall","src":"7856:18:89"},{"hexValue":"455243373231456e756d657261626c653a206f776e657220696e646578206f75","kind":"string","nodeType":"YulLiteral","src":"7876:34:89","type":"","value":"ERC721Enumerable: owner index ou"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7849:6:89"},"nodeType":"YulFunctionCall","src":"7849:62:89"},"nodeType":"YulExpressionStatement","src":"7849:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7931:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7942:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7927:3:89"},"nodeType":"YulFunctionCall","src":"7927:18:89"},{"hexValue":"74206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"7947:13:89","type":"","value":"t of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7920:6:89"},"nodeType":"YulFunctionCall","src":"7920:41:89"},"nodeType":"YulExpressionStatement","src":"7920:41:89"},{"nodeType":"YulAssignment","src":"7970:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7982:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"7993:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7978:3:89"},"nodeType":"YulFunctionCall","src":"7978:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7970:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7747:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7761:4:89","type":""}],"src":"7596:407:89"},{"body":{"nodeType":"YulBlock","src":"8182:234:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8199:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8210:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8192:6:89"},"nodeType":"YulFunctionCall","src":"8192:21:89"},"nodeType":"YulExpressionStatement","src":"8192:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8233:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8244:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8229:3:89"},"nodeType":"YulFunctionCall","src":"8229:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8249:2:89","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8222:6:89"},"nodeType":"YulFunctionCall","src":"8222:30:89"},"nodeType":"YulExpressionStatement","src":"8222:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8272:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8283:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8268:3:89"},"nodeType":"YulFunctionCall","src":"8268:18:89"},{"hexValue":"455243373231456e756d657261626c653a20676c6f62616c20696e646578206f","kind":"string","nodeType":"YulLiteral","src":"8288:34:89","type":"","value":"ERC721Enumerable: global index o"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8261:6:89"},"nodeType":"YulFunctionCall","src":"8261:62:89"},"nodeType":"YulExpressionStatement","src":"8261:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8343:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8354:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8339:3:89"},"nodeType":"YulFunctionCall","src":"8339:18:89"},{"hexValue":"7574206f6620626f756e6473","kind":"string","nodeType":"YulLiteral","src":"8359:14:89","type":"","value":"ut of bounds"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8332:6:89"},"nodeType":"YulFunctionCall","src":"8332:42:89"},"nodeType":"YulExpressionStatement","src":"8332:42:89"},{"nodeType":"YulAssignment","src":"8383:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8395:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8406:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8391:3:89"},"nodeType":"YulFunctionCall","src":"8391:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8383:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8159:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8173:4:89","type":""}],"src":"8008:408:89"},{"body":{"nodeType":"YulBlock","src":"8453:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8470:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8477:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8482:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8473:3:89"},"nodeType":"YulFunctionCall","src":"8473:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8463:6:89"},"nodeType":"YulFunctionCall","src":"8463:31:89"},"nodeType":"YulExpressionStatement","src":"8463:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8510:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8513:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8503:6:89"},"nodeType":"YulFunctionCall","src":"8503:15:89"},"nodeType":"YulExpressionStatement","src":"8503:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8534:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8537:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8527:6:89"},"nodeType":"YulFunctionCall","src":"8527:15:89"},"nodeType":"YulExpressionStatement","src":"8527:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"8421:127:89"},{"body":{"nodeType":"YulBlock","src":"8727:174:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8744:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8755:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8737:6:89"},"nodeType":"YulFunctionCall","src":"8737:21:89"},"nodeType":"YulExpressionStatement","src":"8737:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8778:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8789:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8774:3:89"},"nodeType":"YulFunctionCall","src":"8774:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"8794:2:89","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8767:6:89"},"nodeType":"YulFunctionCall","src":"8767:30:89"},"nodeType":"YulExpressionStatement","src":"8767:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8817:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8828:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8813:3:89"},"nodeType":"YulFunctionCall","src":"8813:18:89"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nodeType":"YulLiteral","src":"8833:26:89","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8806:6:89"},"nodeType":"YulFunctionCall","src":"8806:54:89"},"nodeType":"YulExpressionStatement","src":"8806:54:89"},{"nodeType":"YulAssignment","src":"8869:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8881:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"8892:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8877:3:89"},"nodeType":"YulFunctionCall","src":"8877:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8869:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8704:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8718:4:89","type":""}],"src":"8553:348:89"},{"body":{"nodeType":"YulBlock","src":"9080:231:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9097:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9108:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9090:6:89"},"nodeType":"YulFunctionCall","src":"9090:21:89"},"nodeType":"YulExpressionStatement","src":"9090:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9131:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9142:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9127:3:89"},"nodeType":"YulFunctionCall","src":"9127:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9147:2:89","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9120:6:89"},"nodeType":"YulFunctionCall","src":"9120:30:89"},"nodeType":"YulExpressionStatement","src":"9120:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9170:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9181:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9166:3:89"},"nodeType":"YulFunctionCall","src":"9166:18:89"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nodeType":"YulLiteral","src":"9186:34:89","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9159:6:89"},"nodeType":"YulFunctionCall","src":"9159:62:89"},"nodeType":"YulExpressionStatement","src":"9159:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9241:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9252:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9237:3:89"},"nodeType":"YulFunctionCall","src":"9237:18:89"},{"hexValue":"6c6964206f776e6572","kind":"string","nodeType":"YulLiteral","src":"9257:11:89","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9230:6:89"},"nodeType":"YulFunctionCall","src":"9230:39:89"},"nodeType":"YulExpressionStatement","src":"9230:39:89"},{"nodeType":"YulAssignment","src":"9278:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9290:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9301:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9286:3:89"},"nodeType":"YulFunctionCall","src":"9286:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9278:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9057:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9071:4:89","type":""}],"src":"8906:405:89"},{"body":{"nodeType":"YulBlock","src":"9348:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9365:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9372:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9377:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9368:3:89"},"nodeType":"YulFunctionCall","src":"9368:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9358:6:89"},"nodeType":"YulFunctionCall","src":"9358:31:89"},"nodeType":"YulExpressionStatement","src":"9358:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9405:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9408:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9398:6:89"},"nodeType":"YulFunctionCall","src":"9398:15:89"},"nodeType":"YulExpressionStatement","src":"9398:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9429:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9432:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9422:6:89"},"nodeType":"YulFunctionCall","src":"9422:15:89"},"nodeType":"YulExpressionStatement","src":"9422:15:89"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"9316:127:89"},{"body":{"nodeType":"YulBlock","src":"9495:88:89","statements":[{"body":{"nodeType":"YulBlock","src":"9526:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9528:16:89"},"nodeType":"YulFunctionCall","src":"9528:18:89"},"nodeType":"YulExpressionStatement","src":"9528:18:89"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9511:5:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9522:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9518:3:89"},"nodeType":"YulFunctionCall","src":"9518:6:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9508:2:89"},"nodeType":"YulFunctionCall","src":"9508:17:89"},"nodeType":"YulIf","src":"9505:43:89"},{"nodeType":"YulAssignment","src":"9557:20:89","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9568:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"9575:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9564:3:89"},"nodeType":"YulFunctionCall","src":"9564:13:89"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9557:3:89"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9477:5:89","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9487:3:89","type":""}],"src":"9448:135:89"},{"body":{"nodeType":"YulBlock","src":"9762:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9779:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9790:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9772:6:89"},"nodeType":"YulFunctionCall","src":"9772:21:89"},"nodeType":"YulExpressionStatement","src":"9772:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9813:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9824:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9809:3:89"},"nodeType":"YulFunctionCall","src":"9809:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"9829:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9802:6:89"},"nodeType":"YulFunctionCall","src":"9802:30:89"},"nodeType":"YulExpressionStatement","src":"9802:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9852:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9863:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9848:3:89"},"nodeType":"YulFunctionCall","src":"9848:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"9868:34:89","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9841:6:89"},"nodeType":"YulFunctionCall","src":"9841:62:89"},"nodeType":"YulExpressionStatement","src":"9841:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9923:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9934:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9919:3:89"},"nodeType":"YulFunctionCall","src":"9919:18:89"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"9939:16:89","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9912:6:89"},"nodeType":"YulFunctionCall","src":"9912:44:89"},"nodeType":"YulExpressionStatement","src":"9912:44:89"},{"nodeType":"YulAssignment","src":"9965:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9977:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"9988:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9973:3:89"},"nodeType":"YulFunctionCall","src":"9973:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9965:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9739:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9753:4:89","type":""}],"src":"9588:410:89"},{"body":{"nodeType":"YulBlock","src":"10110:87:89","statements":[{"nodeType":"YulAssignment","src":"10120:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10132:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10143:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10128:3:89"},"nodeType":"YulFunctionCall","src":"10128:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10120:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10162:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10177:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"10185:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10173:3:89"},"nodeType":"YulFunctionCall","src":"10173:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10155:6:89"},"nodeType":"YulFunctionCall","src":"10155:36:89"},"nodeType":"YulExpressionStatement","src":"10155:36:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10079:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10090:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10101:4:89","type":""}],"src":"10003:194:89"},{"body":{"nodeType":"YulBlock","src":"10376:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10393:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10404:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10386:6:89"},"nodeType":"YulFunctionCall","src":"10386:21:89"},"nodeType":"YulExpressionStatement","src":"10386:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10427:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10438:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10423:3:89"},"nodeType":"YulFunctionCall","src":"10423:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10443:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10416:6:89"},"nodeType":"YulFunctionCall","src":"10416:30:89"},"nodeType":"YulExpressionStatement","src":"10416:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10466:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10477:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10462:3:89"},"nodeType":"YulFunctionCall","src":"10462:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"10482:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10455:6:89"},"nodeType":"YulFunctionCall","src":"10455:62:89"},"nodeType":"YulExpressionStatement","src":"10455:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10537:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10548:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10533:3:89"},"nodeType":"YulFunctionCall","src":"10533:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"10553:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10526:6:89"},"nodeType":"YulFunctionCall","src":"10526:36:89"},"nodeType":"YulExpressionStatement","src":"10526:36:89"},{"nodeType":"YulAssignment","src":"10571:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10583:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10594:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10579:3:89"},"nodeType":"YulFunctionCall","src":"10579:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10571:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10353:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10367:4:89","type":""}],"src":"10202:402:89"},{"body":{"nodeType":"YulBlock","src":"10783:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10800:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10811:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10793:6:89"},"nodeType":"YulFunctionCall","src":"10793:21:89"},"nodeType":"YulExpressionStatement","src":"10793:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10834:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10845:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10830:3:89"},"nodeType":"YulFunctionCall","src":"10830:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"10850:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10823:6:89"},"nodeType":"YulFunctionCall","src":"10823:30:89"},"nodeType":"YulExpressionStatement","src":"10823:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10873:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10884:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10869:3:89"},"nodeType":"YulFunctionCall","src":"10869:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"10889:34:89","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10862:6:89"},"nodeType":"YulFunctionCall","src":"10862:62:89"},"nodeType":"YulExpressionStatement","src":"10862:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10944:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"10955:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10940:3:89"},"nodeType":"YulFunctionCall","src":"10940:18:89"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"10960:13:89","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10933:6:89"},"nodeType":"YulFunctionCall","src":"10933:41:89"},"nodeType":"YulExpressionStatement","src":"10933:41:89"},{"nodeType":"YulAssignment","src":"10983:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10995:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11006:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10991:3:89"},"nodeType":"YulFunctionCall","src":"10991:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10983:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10760:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10774:4:89","type":""}],"src":"10609:407:89"},{"body":{"nodeType":"YulBlock","src":"11195:227:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11212:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11223:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11205:6:89"},"nodeType":"YulFunctionCall","src":"11205:21:89"},"nodeType":"YulExpressionStatement","src":"11205:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11246:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11257:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11242:3:89"},"nodeType":"YulFunctionCall","src":"11242:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11262:2:89","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11235:6:89"},"nodeType":"YulFunctionCall","src":"11235:30:89"},"nodeType":"YulExpressionStatement","src":"11235:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11285:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11296:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11281:3:89"},"nodeType":"YulFunctionCall","src":"11281:18:89"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nodeType":"YulLiteral","src":"11301:34:89","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11274:6:89"},"nodeType":"YulFunctionCall","src":"11274:62:89"},"nodeType":"YulExpressionStatement","src":"11274:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11356:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11367:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11352:3:89"},"nodeType":"YulFunctionCall","src":"11352:18:89"},{"hexValue":"6f776e6572","kind":"string","nodeType":"YulLiteral","src":"11372:7:89","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11345:6:89"},"nodeType":"YulFunctionCall","src":"11345:35:89"},"nodeType":"YulExpressionStatement","src":"11345:35:89"},{"nodeType":"YulAssignment","src":"11389:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11401:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11412:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11397:3:89"},"nodeType":"YulFunctionCall","src":"11397:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11389:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11172:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11186:4:89","type":""}],"src":"11021:401:89"},{"body":{"nodeType":"YulBlock","src":"11601:226:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11618:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11629:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11611:6:89"},"nodeType":"YulFunctionCall","src":"11611:21:89"},"nodeType":"YulExpressionStatement","src":"11611:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11652:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11663:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11648:3:89"},"nodeType":"YulFunctionCall","src":"11648:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"11668:2:89","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11641:6:89"},"nodeType":"YulFunctionCall","src":"11641:30:89"},"nodeType":"YulExpressionStatement","src":"11641:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11691:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11702:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11687:3:89"},"nodeType":"YulFunctionCall","src":"11687:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nodeType":"YulLiteral","src":"11707:34:89","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11680:6:89"},"nodeType":"YulFunctionCall","src":"11680:62:89"},"nodeType":"YulExpressionStatement","src":"11680:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11762:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11773:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11758:3:89"},"nodeType":"YulFunctionCall","src":"11758:18:89"},{"hexValue":"72657373","kind":"string","nodeType":"YulLiteral","src":"11778:6:89","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11751:6:89"},"nodeType":"YulFunctionCall","src":"11751:34:89"},"nodeType":"YulExpressionStatement","src":"11751:34:89"},{"nodeType":"YulAssignment","src":"11794:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11806:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"11817:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11802:3:89"},"nodeType":"YulFunctionCall","src":"11802:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11794:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11578:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11592:4:89","type":""}],"src":"11427:400:89"},{"body":{"nodeType":"YulBlock","src":"12006:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12023:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12034:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12016:6:89"},"nodeType":"YulFunctionCall","src":"12016:21:89"},"nodeType":"YulExpressionStatement","src":"12016:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12057:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12068:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12053:3:89"},"nodeType":"YulFunctionCall","src":"12053:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12073:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12046:6:89"},"nodeType":"YulFunctionCall","src":"12046:30:89"},"nodeType":"YulExpressionStatement","src":"12046:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12096:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12107:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12092:3:89"},"nodeType":"YulFunctionCall","src":"12092:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"12112:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12085:6:89"},"nodeType":"YulFunctionCall","src":"12085:62:89"},"nodeType":"YulExpressionStatement","src":"12085:62:89"},{"nodeType":"YulAssignment","src":"12156:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12168:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12179:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12164:3:89"},"nodeType":"YulFunctionCall","src":"12164:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12156:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11983:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11997:4:89","type":""}],"src":"11832:356:89"},{"body":{"nodeType":"YulBlock","src":"12367:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12384:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12395:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12377:6:89"},"nodeType":"YulFunctionCall","src":"12377:21:89"},"nodeType":"YulExpressionStatement","src":"12377:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12418:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12429:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12414:3:89"},"nodeType":"YulFunctionCall","src":"12414:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"12434:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12407:6:89"},"nodeType":"YulFunctionCall","src":"12407:30:89"},"nodeType":"YulExpressionStatement","src":"12407:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12457:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12468:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12453:3:89"},"nodeType":"YulFunctionCall","src":"12453:18:89"},{"hexValue":"45524337323155524953746f726167653a2055524920736574206f66206e6f6e","kind":"string","nodeType":"YulLiteral","src":"12473:34:89","type":"","value":"ERC721URIStorage: URI set of non"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12446:6:89"},"nodeType":"YulFunctionCall","src":"12446:62:89"},"nodeType":"YulExpressionStatement","src":"12446:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12528:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12539:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12524:3:89"},"nodeType":"YulFunctionCall","src":"12524:18:89"},{"hexValue":"6578697374656e7420746f6b656e","kind":"string","nodeType":"YulLiteral","src":"12544:16:89","type":"","value":"existent token"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12517:6:89"},"nodeType":"YulFunctionCall","src":"12517:44:89"},"nodeType":"YulExpressionStatement","src":"12517:44:89"},{"nodeType":"YulAssignment","src":"12570:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12582:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"12593:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12578:3:89"},"nodeType":"YulFunctionCall","src":"12578:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12570:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12344:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12358:4:89","type":""}],"src":"12193:410:89"},{"body":{"nodeType":"YulBlock","src":"12664:65:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12681:1:89","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"12684:3:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12674:6:89"},"nodeType":"YulFunctionCall","src":"12674:14:89"},"nodeType":"YulExpressionStatement","src":"12674:14:89"},{"nodeType":"YulAssignment","src":"12697:26:89","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12715:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12718:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12705:9:89"},"nodeType":"YulFunctionCall","src":"12705:18:89"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"12697:4:89"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"12647:3:89","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"12655:4:89","type":""}],"src":"12608:121:89"},{"body":{"nodeType":"YulBlock","src":"12815:464:89","statements":[{"body":{"nodeType":"YulBlock","src":"12848:425:89","statements":[{"nodeType":"YulVariableDeclaration","src":"12862:11:89","value":{"kind":"number","nodeType":"YulLiteral","src":"12872:1:89","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12866:2:89","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12893:2:89"},{"name":"array","nodeType":"YulIdentifier","src":"12897:5:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12886:6:89"},"nodeType":"YulFunctionCall","src":"12886:17:89"},"nodeType":"YulExpressionStatement","src":"12886:17:89"},{"nodeType":"YulVariableDeclaration","src":"12916:31:89","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12938:2:89"},{"kind":"number","nodeType":"YulLiteral","src":"12942:4:89","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"12928:9:89"},"nodeType":"YulFunctionCall","src":"12928:19:89"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"12920:4:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12960:57:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12983:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12993:1:89","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13000:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"13012:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12996:3:89"},"nodeType":"YulFunctionCall","src":"12996:19:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12989:3:89"},"nodeType":"YulFunctionCall","src":"12989:27:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12979:3:89"},"nodeType":"YulFunctionCall","src":"12979:38:89"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"12964:11:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13054:23:89","statements":[{"nodeType":"YulAssignment","src":"13056:19:89","value":{"name":"data","nodeType":"YulIdentifier","src":"13071:4:89"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"13056:11:89"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"13036:10:89"},{"kind":"number","nodeType":"YulLiteral","src":"13048:4:89","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13033:2:89"},"nodeType":"YulFunctionCall","src":"13033:20:89"},"nodeType":"YulIf","src":"13030:47:89"},{"nodeType":"YulVariableDeclaration","src":"13090:41:89","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13104:4:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13114:1:89","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"13121:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"13126:2:89","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13117:3:89"},"nodeType":"YulFunctionCall","src":"13117:12:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13110:3:89"},"nodeType":"YulFunctionCall","src":"13110:20:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13100:3:89"},"nodeType":"YulFunctionCall","src":"13100:31:89"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"13094:2:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13144:24:89","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"13157:11:89"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"13148:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13242:21:89","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13251:5:89"},{"name":"_1","nodeType":"YulIdentifier","src":"13258:2:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"13244:6:89"},"nodeType":"YulFunctionCall","src":"13244:17:89"},"nodeType":"YulExpressionStatement","src":"13244:17:89"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13192:5:89"},{"name":"_2","nodeType":"YulIdentifier","src":"13199:2:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13189:2:89"},"nodeType":"YulFunctionCall","src":"13189:13:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13203:26:89","statements":[{"nodeType":"YulAssignment","src":"13205:22:89","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"13218:5:89"},{"kind":"number","nodeType":"YulLiteral","src":"13225:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13214:3:89"},"nodeType":"YulFunctionCall","src":"13214:13:89"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"13205:5:89"}]}]},"pre":{"nodeType":"YulBlock","src":"13185:3:89","statements":[]},"src":"13181:82:89"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"12831:3:89"},{"kind":"number","nodeType":"YulLiteral","src":"12836:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12828:2:89"},"nodeType":"YulFunctionCall","src":"12828:11:89"},"nodeType":"YulIf","src":"12825:448:89"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"12787:5:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"12794:3:89","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"12799:10:89","type":""}],"src":"12734:545:89"},{"body":{"nodeType":"YulBlock","src":"13369:81:89","statements":[{"nodeType":"YulAssignment","src":"13379:65:89","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"13394:4:89"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13412:1:89","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"13415:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13408:3:89"},"nodeType":"YulFunctionCall","src":"13408:11:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13425:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13421:3:89"},"nodeType":"YulFunctionCall","src":"13421:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"13404:3:89"},"nodeType":"YulFunctionCall","src":"13404:24:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13400:3:89"},"nodeType":"YulFunctionCall","src":"13400:29:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13390:3:89"},"nodeType":"YulFunctionCall","src":"13390:40:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13436:1:89","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"13439:3:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13432:3:89"},"nodeType":"YulFunctionCall","src":"13432:11:89"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"13387:2:89"},"nodeType":"YulFunctionCall","src":"13387:57:89"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"13379:4:89"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"13346:4:89","type":""},{"name":"len","nodeType":"YulTypedName","src":"13352:3:89","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"13360:4:89","type":""}],"src":"13284:166:89"},{"body":{"nodeType":"YulBlock","src":"13551:1256:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13561:24:89","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13581:3:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13575:5:89"},"nodeType":"YulFunctionCall","src":"13575:10:89"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"13565:6:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"13628:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"13630:16:89"},"nodeType":"YulFunctionCall","src":"13630:18:89"},"nodeType":"YulExpressionStatement","src":"13630:18:89"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13600:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13608:18:89","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13597:2:89"},"nodeType":"YulFunctionCall","src":"13597:30:89"},"nodeType":"YulIf","src":"13594:56:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13703:4:89"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"13741:4:89"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"13735:5:89"},"nodeType":"YulFunctionCall","src":"13735:11:89"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"13709:25:89"},"nodeType":"YulFunctionCall","src":"13709:38:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"13749:6:89"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"13659:43:89"},"nodeType":"YulFunctionCall","src":"13659:97:89"},"nodeType":"YulExpressionStatement","src":"13659:97:89"},{"nodeType":"YulVariableDeclaration","src":"13765:18:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13782:1:89","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"13769:9:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13792:23:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13811:4:89","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"13796:11:89","type":""}]},{"nodeType":"YulAssignment","src":"13824:24:89","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"13837:11:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"13824:9:89"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"13894:656:89","statements":[{"nodeType":"YulVariableDeclaration","src":"13908:35:89","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13927:6:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13939:2:89","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13935:3:89"},"nodeType":"YulFunctionCall","src":"13935:7:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13923:3:89"},"nodeType":"YulFunctionCall","src":"13923:20:89"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"13912:7:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13956:49:89","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14000:4:89"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"13970:29:89"},"nodeType":"YulFunctionCall","src":"13970:35:89"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"13960:6:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14018:10:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14027:1:89","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14022:1:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14105:172:89","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14130:6:89"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14148:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14153:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14144:3:89"},"nodeType":"YulFunctionCall","src":"14144:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14138:5:89"},"nodeType":"YulFunctionCall","src":"14138:26:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14123:6:89"},"nodeType":"YulFunctionCall","src":"14123:42:89"},"nodeType":"YulExpressionStatement","src":"14123:42:89"},{"nodeType":"YulAssignment","src":"14182:24:89","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14196:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"14204:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14192:3:89"},"nodeType":"YulFunctionCall","src":"14192:14:89"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14182:6:89"}]},{"nodeType":"YulAssignment","src":"14223:40:89","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14240:9:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14251:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14236:3:89"},"nodeType":"YulFunctionCall","src":"14236:27:89"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"14223:9:89"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14052:1:89"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"14055:7:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14049:2:89"},"nodeType":"YulFunctionCall","src":"14049:14:89"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14064:28:89","statements":[{"nodeType":"YulAssignment","src":"14066:24:89","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14075:1:89"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"14078:11:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14071:3:89"},"nodeType":"YulFunctionCall","src":"14071:19:89"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14066:1:89"}]}]},"pre":{"nodeType":"YulBlock","src":"14045:3:89","statements":[]},"src":"14041:236:89"},{"body":{"nodeType":"YulBlock","src":"14325:166:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14343:43:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14370:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14375:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14366:3:89"},"nodeType":"YulFunctionCall","src":"14366:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14360:5:89"},"nodeType":"YulFunctionCall","src":"14360:26:89"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"14347:9:89","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"14410:6:89"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"14422:9:89"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14449:1:89","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"14452:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14445:3:89"},"nodeType":"YulFunctionCall","src":"14445:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"14461:3:89","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14441:3:89"},"nodeType":"YulFunctionCall","src":"14441:24:89"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14471:1:89","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14467:3:89"},"nodeType":"YulFunctionCall","src":"14467:6:89"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"14437:3:89"},"nodeType":"YulFunctionCall","src":"14437:37:89"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14433:3:89"},"nodeType":"YulFunctionCall","src":"14433:42:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14418:3:89"},"nodeType":"YulFunctionCall","src":"14418:58:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14403:6:89"},"nodeType":"YulFunctionCall","src":"14403:74:89"},"nodeType":"YulExpressionStatement","src":"14403:74:89"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"14296:7:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"14305:6:89"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14293:2:89"},"nodeType":"YulFunctionCall","src":"14293:19:89"},"nodeType":"YulIf","src":"14290:201:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14511:4:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14525:1:89","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"14528:6:89"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14521:3:89"},"nodeType":"YulFunctionCall","src":"14521:14:89"},{"kind":"number","nodeType":"YulLiteral","src":"14537:1:89","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14517:3:89"},"nodeType":"YulFunctionCall","src":"14517:22:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14504:6:89"},"nodeType":"YulFunctionCall","src":"14504:36:89"},"nodeType":"YulExpressionStatement","src":"14504:36:89"}]},"nodeType":"YulCase","src":"13887:663:89","value":{"kind":"number","nodeType":"YulLiteral","src":"13892:1:89","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"14567:234:89","statements":[{"nodeType":"YulVariableDeclaration","src":"14581:14:89","value":{"kind":"number","nodeType":"YulLiteral","src":"14594:1:89","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14585:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"14630:67:89","statements":[{"nodeType":"YulAssignment","src":"14648:35:89","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14667:3:89"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"14672:9:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14663:3:89"},"nodeType":"YulFunctionCall","src":"14663:19:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14657:5:89"},"nodeType":"YulFunctionCall","src":"14657:26:89"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"14648:5:89"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"14611:6:89"},"nodeType":"YulIf","src":"14608:89:89"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"14717:4:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14776:5:89"},{"name":"newLen","nodeType":"YulIdentifier","src":"14783:6:89"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"14723:52:89"},"nodeType":"YulFunctionCall","src":"14723:67:89"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"14710:6:89"},"nodeType":"YulFunctionCall","src":"14710:81:89"},"nodeType":"YulExpressionStatement","src":"14710:81:89"}]},"nodeType":"YulCase","src":"14559:242:89","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"13867:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"13875:2:89","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13864:2:89"},"nodeType":"YulFunctionCall","src":"13864:14:89"},"nodeType":"YulSwitch","src":"13857:944:89"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"13536:4:89","type":""},{"name":"src","nodeType":"YulTypedName","src":"13542:3:89","type":""}],"src":"13455:1352:89"},{"body":{"nodeType":"YulBlock","src":"14986:175:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15003:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15014:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14996:6:89"},"nodeType":"YulFunctionCall","src":"14996:21:89"},"nodeType":"YulExpressionStatement","src":"14996:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15037:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15048:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15033:3:89"},"nodeType":"YulFunctionCall","src":"15033:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15053:2:89","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15026:6:89"},"nodeType":"YulFunctionCall","src":"15026:30:89"},"nodeType":"YulExpressionStatement","src":"15026:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15076:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15087:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15072:3:89"},"nodeType":"YulFunctionCall","src":"15072:18:89"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nodeType":"YulLiteral","src":"15092:27:89","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15065:6:89"},"nodeType":"YulFunctionCall","src":"15065:55:89"},"nodeType":"YulExpressionStatement","src":"15065:55:89"},{"nodeType":"YulAssignment","src":"15129:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15141:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15152:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15137:3:89"},"nodeType":"YulFunctionCall","src":"15137:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15129:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14963:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14977:4:89","type":""}],"src":"14812:349:89"},{"body":{"nodeType":"YulBlock","src":"15340:240:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15357:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15368:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15350:6:89"},"nodeType":"YulFunctionCall","src":"15350:21:89"},"nodeType":"YulExpressionStatement","src":"15350:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15391:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15402:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15387:3:89"},"nodeType":"YulFunctionCall","src":"15387:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"15407:2:89","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15380:6:89"},"nodeType":"YulFunctionCall","src":"15380:30:89"},"nodeType":"YulExpressionStatement","src":"15380:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15430:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15441:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15426:3:89"},"nodeType":"YulFunctionCall","src":"15426:18:89"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nodeType":"YulLiteral","src":"15446:34:89","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15419:6:89"},"nodeType":"YulFunctionCall","src":"15419:62:89"},"nodeType":"YulExpressionStatement","src":"15419:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15501:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15512:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15497:3:89"},"nodeType":"YulFunctionCall","src":"15497:18:89"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nodeType":"YulLiteral","src":"15517:20:89","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15490:6:89"},"nodeType":"YulFunctionCall","src":"15490:48:89"},"nodeType":"YulExpressionStatement","src":"15490:48:89"},{"nodeType":"YulAssignment","src":"15547:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15559:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"15570:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15555:3:89"},"nodeType":"YulFunctionCall","src":"15555:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15547:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15317:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15331:4:89","type":""}],"src":"15166:414:89"},{"body":{"nodeType":"YulBlock","src":"15772:309:89","statements":[{"nodeType":"YulVariableDeclaration","src":"15782:27:89","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15802:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15796:5:89"},"nodeType":"YulFunctionCall","src":"15796:13:89"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15786:6:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15857:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"15865:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15853:3:89"},"nodeType":"YulFunctionCall","src":"15853:17:89"},{"name":"pos","nodeType":"YulIdentifier","src":"15872:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"15877:6:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15818:34:89"},"nodeType":"YulFunctionCall","src":"15818:66:89"},"nodeType":"YulExpressionStatement","src":"15818:66:89"},{"nodeType":"YulVariableDeclaration","src":"15893:29:89","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15910:3:89"},{"name":"length","nodeType":"YulIdentifier","src":"15915:6:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15906:3:89"},"nodeType":"YulFunctionCall","src":"15906:16:89"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"15897:5:89","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15931:29:89","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15953:6:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15947:5:89"},"nodeType":"YulFunctionCall","src":"15947:13:89"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"15935:8:89","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16008:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"16016:4:89","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16004:3:89"},"nodeType":"YulFunctionCall","src":"16004:17:89"},{"name":"end_1","nodeType":"YulIdentifier","src":"16023:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"16030:8:89"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15969:34:89"},"nodeType":"YulFunctionCall","src":"15969:70:89"},"nodeType":"YulExpressionStatement","src":"15969:70:89"},{"nodeType":"YulAssignment","src":"16048:27:89","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"16059:5:89"},{"name":"length_1","nodeType":"YulIdentifier","src":"16066:8:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16055:3:89"},"nodeType":"YulFunctionCall","src":"16055:20:89"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16048:3:89"}]}]},"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":"15740:3:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15745:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15753:6:89","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15764:3:89","type":""}],"src":"15585:496:89"},{"body":{"nodeType":"YulBlock","src":"16289:286:89","statements":[{"nodeType":"YulVariableDeclaration","src":"16299:29:89","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16317:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16322:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16313:3:89"},"nodeType":"YulFunctionCall","src":"16313:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"16326:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16309:3:89"},"nodeType":"YulFunctionCall","src":"16309:19:89"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"16303:2:89","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16344:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16359:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16367:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16355:3:89"},"nodeType":"YulFunctionCall","src":"16355:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16337:6:89"},"nodeType":"YulFunctionCall","src":"16337:34:89"},"nodeType":"YulExpressionStatement","src":"16337:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16391:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16402:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16387:3:89"},"nodeType":"YulFunctionCall","src":"16387:18:89"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16411:6:89"},{"name":"_1","nodeType":"YulIdentifier","src":"16419:2:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16407:3:89"},"nodeType":"YulFunctionCall","src":"16407:15:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16380:6:89"},"nodeType":"YulFunctionCall","src":"16380:43:89"},"nodeType":"YulExpressionStatement","src":"16380:43:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16443:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16454:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16439:3:89"},"nodeType":"YulFunctionCall","src":"16439:18:89"},{"name":"value2","nodeType":"YulIdentifier","src":"16459:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16432:6:89"},"nodeType":"YulFunctionCall","src":"16432:34:89"},"nodeType":"YulExpressionStatement","src":"16432:34:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16486:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16497:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16482:3:89"},"nodeType":"YulFunctionCall","src":"16482:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"16502:3:89","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16475:6:89"},"nodeType":"YulFunctionCall","src":"16475:31:89"},"nodeType":"YulExpressionStatement","src":"16475:31:89"},{"nodeType":"YulAssignment","src":"16515:54:89","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"16541:6:89"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16553:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"16564:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16549:3:89"},"nodeType":"YulFunctionCall","src":"16549:19:89"}],"functionName":{"name":"abi_encode_string","nodeType":"YulIdentifier","src":"16523:17:89"},"nodeType":"YulFunctionCall","src":"16523:46:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16515:4:89"}]}]},"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":"16234:9:89","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16245:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16253:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16261:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16269:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16280:4:89","type":""}],"src":"16086:489:89"},{"body":{"nodeType":"YulBlock","src":"16660:169:89","statements":[{"body":{"nodeType":"YulBlock","src":"16706:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16715:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16718:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16708:6:89"},"nodeType":"YulFunctionCall","src":"16708:12:89"},"nodeType":"YulExpressionStatement","src":"16708:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"16681:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"16690:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16677:3:89"},"nodeType":"YulFunctionCall","src":"16677:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"16702:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16673:3:89"},"nodeType":"YulFunctionCall","src":"16673:32:89"},"nodeType":"YulIf","src":"16670:52:89"},{"nodeType":"YulVariableDeclaration","src":"16731:29:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16750:9:89"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16744:5:89"},"nodeType":"YulFunctionCall","src":"16744:16:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"16735:5:89","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16793:5:89"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"16769:23:89"},"nodeType":"YulFunctionCall","src":"16769:30:89"},"nodeType":"YulExpressionStatement","src":"16769:30:89"},{"nodeType":"YulAssignment","src":"16808:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"16818:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"16808:6:89"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16626:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"16637:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"16649:6:89","type":""}],"src":"16580:249:89"},{"body":{"nodeType":"YulBlock","src":"17008:243:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17025:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17036:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17018:6:89"},"nodeType":"YulFunctionCall","src":"17018:21:89"},"nodeType":"YulExpressionStatement","src":"17018:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17059:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17070:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17055:3:89"},"nodeType":"YulFunctionCall","src":"17055:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17075:2:89","type":"","value":"53"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17048:6:89"},"nodeType":"YulFunctionCall","src":"17048:30:89"},"nodeType":"YulExpressionStatement","src":"17048:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17098:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17109:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17094:3:89"},"nodeType":"YulFunctionCall","src":"17094:18:89"},{"hexValue":"455243373231456e756d657261626c653a20636f6e7365637574697665207472","kind":"string","nodeType":"YulLiteral","src":"17114:34:89","type":"","value":"ERC721Enumerable: consecutive tr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17087:6:89"},"nodeType":"YulFunctionCall","src":"17087:62:89"},"nodeType":"YulExpressionStatement","src":"17087:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17169:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17180:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17165:3:89"},"nodeType":"YulFunctionCall","src":"17165:18:89"},{"hexValue":"616e7366657273206e6f7420737570706f72746564","kind":"string","nodeType":"YulLiteral","src":"17185:23:89","type":"","value":"ansfers not supported"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17158:6:89"},"nodeType":"YulFunctionCall","src":"17158:51:89"},"nodeType":"YulExpressionStatement","src":"17158:51:89"},{"nodeType":"YulAssignment","src":"17218:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17230:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17241:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17226:3:89"},"nodeType":"YulFunctionCall","src":"17226:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17218:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_da49291af84b6a1e37ed9eacd9a67360593e4a0e561cb261a6a738f621783314__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16985:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16999:4:89","type":""}],"src":"16834:417:89"},{"body":{"nodeType":"YulBlock","src":"17430:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17447:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17458:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17440:6:89"},"nodeType":"YulFunctionCall","src":"17440:21:89"},"nodeType":"YulExpressionStatement","src":"17440:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17481:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17492:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17477:3:89"},"nodeType":"YulFunctionCall","src":"17477:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17497:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17470:6:89"},"nodeType":"YulFunctionCall","src":"17470:30:89"},"nodeType":"YulExpressionStatement","src":"17470:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17520:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17531:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17516:3:89"},"nodeType":"YulFunctionCall","src":"17516:18:89"},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nodeType":"YulLiteral","src":"17536:34:89","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17509:6:89"},"nodeType":"YulFunctionCall","src":"17509:62:89"},"nodeType":"YulExpressionStatement","src":"17509:62:89"},{"nodeType":"YulAssignment","src":"17580:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17592:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17603:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17588:3:89"},"nodeType":"YulFunctionCall","src":"17588:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17580:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17407:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17421:4:89","type":""}],"src":"17256:356:89"},{"body":{"nodeType":"YulBlock","src":"17791:178:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17808:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17819:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17801:6:89"},"nodeType":"YulFunctionCall","src":"17801:21:89"},"nodeType":"YulExpressionStatement","src":"17801:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17842:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17853:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17838:3:89"},"nodeType":"YulFunctionCall","src":"17838:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"17858:2:89","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17831:6:89"},"nodeType":"YulFunctionCall","src":"17831:30:89"},"nodeType":"YulExpressionStatement","src":"17831:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17881:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17892:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17877:3:89"},"nodeType":"YulFunctionCall","src":"17877:18:89"},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","kind":"string","nodeType":"YulLiteral","src":"17897:30:89","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17870:6:89"},"nodeType":"YulFunctionCall","src":"17870:58:89"},"nodeType":"YulExpressionStatement","src":"17870:58:89"},{"nodeType":"YulAssignment","src":"17937:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17949:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"17960:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17945:3:89"},"nodeType":"YulFunctionCall","src":"17945:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17937:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17768:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17782:4:89","type":""}],"src":"17617:352:89"},{"body":{"nodeType":"YulBlock","src":"18006:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18023:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18030:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18035:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18026:3:89"},"nodeType":"YulFunctionCall","src":"18026:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18016:6:89"},"nodeType":"YulFunctionCall","src":"18016:31:89"},"nodeType":"YulExpressionStatement","src":"18016:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18063:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18066:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18056:6:89"},"nodeType":"YulFunctionCall","src":"18056:15:89"},"nodeType":"YulExpressionStatement","src":"18056:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18087:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18090:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18080:6:89"},"nodeType":"YulFunctionCall","src":"18080:15:89"},"nodeType":"YulExpressionStatement","src":"18080:15:89"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"17974:127:89"},{"body":{"nodeType":"YulBlock","src":"18155:79:89","statements":[{"nodeType":"YulAssignment","src":"18165:17:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18177:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"18180:1:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18173:3:89"},"nodeType":"YulFunctionCall","src":"18173:9:89"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"18165:4:89"}]},{"body":{"nodeType":"YulBlock","src":"18206:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18208:16:89"},"nodeType":"YulFunctionCall","src":"18208:18:89"},"nodeType":"YulExpressionStatement","src":"18208:18:89"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"18197:4:89"},{"name":"x","nodeType":"YulIdentifier","src":"18203:1:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18194:2:89"},"nodeType":"YulFunctionCall","src":"18194:11:89"},"nodeType":"YulIf","src":"18191:37:89"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18137:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"18140:1:89","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"18146:4:89","type":""}],"src":"18106:128:89"},{"body":{"nodeType":"YulBlock","src":"18287:77:89","statements":[{"nodeType":"YulAssignment","src":"18297:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18308:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"18311:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18304:3:89"},"nodeType":"YulFunctionCall","src":"18304:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18297:3:89"}]},{"body":{"nodeType":"YulBlock","src":"18336:22:89","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18338:16:89"},"nodeType":"YulFunctionCall","src":"18338:18:89"},"nodeType":"YulExpressionStatement","src":"18338:18:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18328:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"18331:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18325:2:89"},"nodeType":"YulFunctionCall","src":"18325:10:89"},"nodeType":"YulIf","src":"18322:36:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18270:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"18273:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18279:3:89","type":""}],"src":"18239:125:89"},{"body":{"nodeType":"YulBlock","src":"18401:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18418:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18425:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18430:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18421:3:89"},"nodeType":"YulFunctionCall","src":"18421:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18411:6:89"},"nodeType":"YulFunctionCall","src":"18411:31:89"},"nodeType":"YulExpressionStatement","src":"18411:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18458:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18461:4:89","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18451:6:89"},"nodeType":"YulFunctionCall","src":"18451:15:89"},"nodeType":"YulExpressionStatement","src":"18451:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18482:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"18485:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18475:6:89"},"nodeType":"YulFunctionCall","src":"18475:15:89"},"nodeType":"YulExpressionStatement","src":"18475:15:89"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"18369:127:89"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { 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 abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(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 copy_memory_to_memory_with_cleanup(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        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_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_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, sub(shl(160, 1), 1)))\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 panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_available_length_string(src, length, end) -> array\n    {\n        let _1 := 0xffffffffffffffff\n        if gt(length, _1) { panic_error_0x41() }\n        let _2 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(length, 31), _2), 63), _2))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        array := memPtr\n        mstore(memPtr, length)\n        if gt(add(src, length), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), src, length)\n        mstore(add(add(memPtr, 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_tuple_t_addresst_string_memory_ptr(headStart, dataEnd) -> value0, value1\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        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset), dataEnd)\n    }\n    function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value1 := abi_decode_string(add(headStart, offset), dataEnd)\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 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        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        value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\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, shl(224, 0x4e487b71))\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_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, shl(224, 0x4e487b71))\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 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 abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_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_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_7521de1f20ce4d7bb86b61090bad73a87315a1f4baff36cc352901c7777280c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC721URIStorage: URI set of non\")\n        mstore(add(headStart, 96), \"existent token\")\n        tail := add(headStart, 128)\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, 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, 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_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_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_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_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 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 panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061018e5760003560e01c8063715018a6116100de578063b88d4fde11610097578063e93a724a11610071578063e93a724a14610368578063e985e9c51461037b578063f2fde38b146103b7578063f414c97d146103ca57600080fd5b8063b88d4fde1461032f578063c4d66de814610342578063c87b56dd1461035557600080fd5b8063715018a6146102d55780637765eba1146102dd57806389c7e0a0146102f05780638da5cb5b1461030357806395d89b4114610314578063a22cb4651461031c57600080fd5b806323b872dd1161014b57806342842e0e1161012557806342842e0e146102895780634f6ccce71461029c5780636352211e146102af57806370a08231146102c257600080fd5b806323b872dd146102505780632f745c591461026357806331962cdc1461027657600080fd5b806301ffc9a71461019357806305b186b6146101bb57806306fdde03146101f3578063081812fc14610208578063095ea7b31461023357806318160ddd14610248575b600080fd5b6101a66101a1366004611c41565b6103dd565b60405190151581526020015b60405180910390f35b6101e56101c9366004611c7a565b6001600160a01b0316600090815261012f602052604090205490565b6040519081526020016101b2565b6101fb6103ee565b6040516101b29190611ce5565b61021b610216366004611cf8565b610480565b6040516001600160a01b0390911681526020016101b2565b610246610241366004611d11565b6104a7565b005b60cc546101e5565b61024661025e366004611d3b565b6105c1565b6101e5610271366004611d11565b6105f2565b610246610284366004611c7a565b610688565b610246610297366004611d3b565b6106d9565b6101e56102aa366004611cf8565b6106f4565b61021b6102bd366004611cf8565b610787565b6101e56102d0366004611c7a565b6107e7565b61024661086d565b6101e56102eb366004611e23565b610881565b6102466102fe366004611e71565b610904565b6065546001600160a01b031661021b565b6101fb61093d565b61024661032a366004611ea2565b61094c565b61024661033d366004611ede565b610957565b610246610350366004611c7a565b61098f565b6101fb610363366004611cf8565b610afe565b610246610376366004611d11565b610b09565b6101a6610389366004611f5a565b6001600160a01b039182166000908152609d6020908152604080832093909416825291909152205460ff1690565b6102466103c5366004611c7a565b610b3e565b6102466103d8366004611c7a565b610bb7565b60006103e882610bef565b92915050565b6060609880546103fd90611f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611f8d565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b5050505050905090565b600061048b82610c14565b506000908152609c60205260409020546001600160a01b031690565b60006104b282610787565b9050806001600160a01b0316836001600160a01b0316036105245760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061054057506105408133610389565b6105b25760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161051b565b6105bc8383610c73565b505050565b6105cb3382610ce1565b6105e75760405162461bcd60e51b815260040161051b90611fc7565b6105bc838383610d60565b60006105fd836107e7565b821061065f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161051b565b506001600160a01b0391909116600090815260ca60209081526040808320938352929052205490565b610690610ed1565b6001600160a01b0381166106b7576040516348be0eb360e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6105bc83838360405180602001604052806000815250610957565b60006106ff60cc5490565b82106107625760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161051b565b60cc828154811061077557610775612014565b90600052602060002001549050919050565b6000818152609a60205260408120546001600160a01b0316806103e85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161051b565b60006001600160a01b0382166108515760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161051b565b506001600160a01b03166000908152609b602052604090205490565b610875610ed1565b61087f6000610f2b565b565b6097546000906001600160a01b031633146108af576040516313bd2e8360e31b815260040160405180910390fd5b600061012e600081546108c190612040565b918290555090506108d28482610f7d565b6108dc8184610f97565b60006108e7856107e7565b600114905080156108fc576108fc858361102a565b509392505050565b6097546001600160a01b0316331461092f576040516313bd2e8360e31b815260040160405180910390fd5b6109398282610f97565b5050565b6060609980546103fd90611f8d565b61093933838361108f565b6109613383610ce1565b61097d5760405162461bcd60e51b815260040161051b90611fc7565b6109898484848461115d565b50505050565b600054610100900460ff16158080156109af5750600054600160ff909116105b806109c95750303b1580156109c9575060005460ff166001145b610a2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161051b565b6000805460ff191660011790558015610a4f576000805461ff0019166101001790555b610a9c6040518060400160405280600f81526020016e4d79335365632050726f66696c657360881b8152506040518060400160405280600481526020016304d3353560e41b815250611190565b610aa46111c1565b610aac6111c1565b610ab582610bb7565b8015610939576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606103e8826111e8565b6097546001600160a01b03163314610b34576040516313bd2e8360e31b815260040160405180910390fd5b610939828261102a565b610b46610ed1565b6001600160a01b038116610bab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161051b565b610bb481610f2b565b50565b600054610100900460ff16610bde5760405162461bcd60e51b815260040161051b90612059565b610be66112f0565b610bb481610688565b60006001600160e01b0319821663780e9d6360e01b14806103e857506103e88261131f565b6000818152609a60205260409020546001600160a01b0316610bb45760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161051b565b6000818152609c6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610ca882610787565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ced83610787565b9050806001600160a01b0316846001600160a01b03161480610d3457506001600160a01b038082166000908152609d602090815260408083209388168352929052205460ff165b80610d585750836001600160a01b0316610d4d84610480565b6001600160a01b0316145b949350505050565b826001600160a01b0316610d7382610787565b6001600160a01b031614610d995760405162461bcd60e51b815260040161051b906120a4565b6001600160a01b038216610dfb5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161051b565b610e08838383600161136f565b826001600160a01b0316610e1b82610787565b6001600160a01b031614610e415760405162461bcd60e51b815260040161051b906120a4565b6000818152609c6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652609b8552838620805460001901905590871680865283862080546001019055868652609a90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6065546001600160a01b0316331461087f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161051b565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6109398282604051806020016040528060008152506113b7565b6000828152609a60205260409020546001600160a01b03166110125760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b606482015260840161051b565b600082815260fc602052604090206105bc8282612137565b600081118015611054575061103e81610787565b6001600160a01b0316826001600160a01b031614155b156110725760405163f194fae560e01b815260040160405180910390fd5b6001600160a01b03909116600090815261012f6020526040902055565b816001600160a01b0316836001600160a01b0316036110f05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161051b565b6001600160a01b038381166000818152609d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611168848484610d60565b611174848484846113ea565b6109895760405162461bcd60e51b815260040161051b906121f7565b600054610100900460ff166111b75760405162461bcd60e51b815260040161051b90612059565b61093982826114eb565b600054610100900460ff1661087f5760405162461bcd60e51b815260040161051b90612059565b60606111f382610c14565b600082815260fc60205260408120805461120c90611f8d565b80601f016020809104026020016040519081016040528092919081815260200182805461123890611f8d565b80156112855780601f1061125a57610100808354040283529160200191611285565b820191906000526020600020905b81548152906001019060200180831161126857829003601f168201915b5050505050905060006112a360408051602081019091526000815290565b905080516000036112b5575092915050565b8151156112e75780826040516020016112cf929190612249565b60405160208183030381529060405292505050919050565b610d588461152b565b600054610100900460ff166113175760405162461bcd60e51b815260040161051b90612059565b61087f61159f565b60006001600160e01b031982166380ac58cd60e01b148061135057506001600160e01b03198216635b5e139f60e01b145b806103e857506301ffc9a760e01b6001600160e01b03198316146103e8565b6001600160a01b038416600090815261012f60205260409020548290036113ab576001600160a01b038416600090815261012f60205260408120555b610989848484846115cf565b6113c1838361170f565b6113ce60008484846113ea565b6105bc5760405162461bcd60e51b815260040161051b906121f7565b60006001600160a01b0384163b156114e057604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061142e903390899088908890600401612278565b6020604051808303816000875af1925050508015611469575060408051601f3d908101601f19168201909252611466918101906122b5565b60015b6114c6573d808015611497576040519150601f19603f3d011682016040523d82523d6000602084013e61149c565b606091505b5080516000036114be5760405162461bcd60e51b815260040161051b906121f7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610d58565b506001949350505050565b600054610100900460ff166115125760405162461bcd60e51b815260040161051b90612059565b609861151e8382612137565b5060996105bc8282612137565b606061153682610c14565b600061154d60408051602081019091526000815290565b9050600081511161156d5760405180602001604052806000815250611598565b80611577846118a8565b604051602001611588929190612249565b6040516020818303038152906040525b9392505050565b600054610100900460ff166115c65760405162461bcd60e51b815260040161051b90612059565b61087f33610f2b565b6115db8484848461193b565b600181111561164a5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b606482015260840161051b565b816001600160a01b0385166116a6576116a18160cc8054600083815260cd60205260408120829055600182018355919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0155565b6116c9565b836001600160a01b0316856001600160a01b0316146116c9576116c985826119c3565b6001600160a01b0384166116e5576116e081611a60565b611708565b846001600160a01b0316846001600160a01b031614611708576117088482611b0f565b5050505050565b6001600160a01b0382166117655760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161051b565b6000818152609a60205260409020546001600160a01b0316156117ca5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161051b565b6117d860008383600161136f565b6000818152609a60205260409020546001600160a01b03161561183d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161051b565b6001600160a01b0382166000818152609b6020908152604080832080546001019055848352609a90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060006118b583611b53565b600101905060008167ffffffffffffffff8111156118d5576118d5611d77565b6040519080825280601f01601f1916602001820160405280156118ff576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461190957509392505050565b6001811115610989576001600160a01b03841615611981576001600160a01b0384166000908152609b60205260408120805483929061197b9084906122d2565b90915550505b6001600160a01b03831615610989576001600160a01b0383166000908152609b6020526040812080548392906119b89084906122e5565b909155505050505050565b600060016119d0846107e7565b6119da91906122d2565b600083815260cb6020526040902054909150808214611a2d576001600160a01b038416600090815260ca60209081526040808320858452825280832054848452818420819055835260cb90915290208190555b50600091825260cb602090815260408084208490556001600160a01b03909416835260ca81528383209183525290812055565b60cc54600090611a72906001906122d2565b600083815260cd602052604081205460cc8054939450909284908110611a9a57611a9a612014565b906000526020600020015490508060cc8381548110611abb57611abb612014565b600091825260208083209091019290925582815260cd909152604080822084905585825281205560cc805480611af357611af36122f8565b6001900381819060005260206000200160009055905550505050565b6000611b1a836107e7565b6001600160a01b03909316600090815260ca60209081526040808320868452825280832085905593825260cb9052919091209190915550565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611b925772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611bbe576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611bdc57662386f26fc10000830492506010015b6305f5e1008310611bf4576305f5e100830492506008015b6127108310611c0857612710830492506004015b60648310611c1a576064830492506002015b600a83106103e85760010192915050565b6001600160e01b031981168114610bb457600080fd5b600060208284031215611c5357600080fd5b813561159881611c2b565b80356001600160a01b0381168114611c7557600080fd5b919050565b600060208284031215611c8c57600080fd5b61159882611c5e565b60005b83811015611cb0578181015183820152602001611c98565b50506000910152565b60008151808452611cd1816020860160208601611c95565b601f01601f19169290920160200192915050565b6020815260006115986020830184611cb9565b600060208284031215611d0a57600080fd5b5035919050565b60008060408385031215611d2457600080fd5b611d2d83611c5e565b946020939093013593505050565b600080600060608486031215611d5057600080fd5b611d5984611c5e565b9250611d6760208501611c5e565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611da857611da8611d77565b604051601f8501601f19908116603f01168101908282118183101715611dd057611dd0611d77565b81604052809350858152868686011115611de957600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611e1457600080fd5b61159883833560208501611d8d565b60008060408385031215611e3657600080fd5b611e3f83611c5e565b9150602083013567ffffffffffffffff811115611e5b57600080fd5b611e6785828601611e03565b9150509250929050565b60008060408385031215611e8457600080fd5b82359150602083013567ffffffffffffffff811115611e5b57600080fd5b60008060408385031215611eb557600080fd5b611ebe83611c5e565b915060208301358015158114611ed357600080fd5b809150509250929050565b60008060008060808587031215611ef457600080fd5b611efd85611c5e565b9350611f0b60208601611c5e565b925060408501359150606085013567ffffffffffffffff811115611f2e57600080fd5b8501601f81018713611f3f57600080fd5b611f4e87823560208401611d8d565b91505092959194509250565b60008060408385031215611f6d57600080fd5b611f7683611c5e565b9150611f8460208401611c5e565b90509250929050565b600181811c90821680611fa157607f821691505b602082108103611fc157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016120525761205261202a565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b601f8211156105bc57600081815260208120601f850160051c810160208610156121105750805b601f850160051c820191505b8181101561212f5782815560010161211c565b505050505050565b815167ffffffffffffffff81111561215157612151611d77565b6121658161215f8454611f8d565b846120e9565b602080601f83116001811461219a57600084156121825750858301515b600019600386901b1c1916600185901b17855561212f565b600085815260208120601f198616915b828110156121c9578886015182559484019460019091019084016121aa565b50858210156121e75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000835161225b818460208801611c95565b83519083019061226f818360208801611c95565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122ab90830184611cb9565b9695505050505050565b6000602082840312156122c757600080fd5b815161159881611c2b565b818103818111156103e8576103e861202a565b808201808211156103e8576103e861202a565b634e487b7160e01b600052603160045260246000fdfea26469706673582212207c97dca10fc93414618a3f6422dcc2fab07a892a1b396426e61f4284a58496a364736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x18E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xE93A724A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE93A724A EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B7 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x7765EBA1 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x89C7E0A0 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x31C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x42842E0E GT PUSH2 0x125 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x4F6CCCE7 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x2F745C59 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x31962CDC EQ PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x5B186B6 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A6 PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C41 JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B2 JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x3EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B2 SWAP2 SWAP1 PUSH2 0x1CE5 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x216 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x480 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B2 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x241 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0x4A7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0xCC SLOAD PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0x5C1 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0x5F2 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x284 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x688 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3B JUMP JUMPDEST PUSH2 0x6D9 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x6F4 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0x787 JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x86D JUMP JUMPDEST PUSH2 0x1E5 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0x881 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x1E71 JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x21B JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x93D JUMP JUMPDEST PUSH2 0x246 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA2 JUMP JUMPDEST PUSH2 0x94C JUMP JUMPDEST PUSH2 0x246 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x1EDE JUMP JUMPDEST PUSH2 0x957 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x350 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x98F JUMP JUMPDEST PUSH2 0x1FB PUSH2 0x363 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CF8 JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x246 PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1A6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH2 0x3C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0xB3E JUMP JUMPDEST PUSH2 0x246 PUSH2 0x3D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0xBB7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E8 DUP3 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x98 DUP1 SLOAD PUSH2 0x3FD SWAP1 PUSH2 0x1F8D 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 0x429 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x476 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x44B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x476 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 0x459 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48B DUP3 PUSH2 0xC14 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B2 DUP3 PUSH2 0x787 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 0x524 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x540 JUMPI POP PUSH2 0x540 DUP2 CALLER PUSH2 0x389 JUMP JUMPDEST PUSH2 0x5B2 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 0x51B JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 PUSH2 0xC73 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5CB CALLER DUP3 PUSH2 0xCE1 JUMP JUMPDEST PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x1FC7 JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 DUP4 PUSH2 0xD60 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FD DUP4 PUSH2 0x7E7 JUMP JUMPDEST DUP3 LT PUSH2 0x65F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A206F776E657220696E646578206F75 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x74206F6620626F756E6473 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x690 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x97 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x5BC DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x957 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FF PUSH1 0xCC SLOAD SWAP1 JUMP JUMPDEST DUP3 LT PUSH2 0x762 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243373231456E756D657261626C653A20676C6F62616C20696E646578206F PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x7574206F6620626F756E6473 PUSH1 0xA0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0xCC DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x775 JUMPI PUSH2 0x775 PUSH2 0x2014 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x3E8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x875 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 PUSH2 0xF2B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8AF JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12E PUSH1 0x0 DUP2 SLOAD PUSH2 0x8C1 SWAP1 PUSH2 0x2040 JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x8D2 DUP5 DUP3 PUSH2 0xF7D JUMP JUMPDEST PUSH2 0x8DC DUP2 DUP5 PUSH2 0xF97 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E7 DUP6 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x1 EQ SWAP1 POP DUP1 ISZERO PUSH2 0x8FC JUMPI PUSH2 0x8FC DUP6 DUP4 PUSH2 0x102A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x92F JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0xF97 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x99 DUP1 SLOAD PUSH2 0x3FD SWAP1 PUSH2 0x1F8D JUMP JUMPDEST PUSH2 0x939 CALLER DUP4 DUP4 PUSH2 0x108F JUMP JUMPDEST PUSH2 0x961 CALLER DUP4 PUSH2 0xCE1 JUMP JUMPDEST PUSH2 0x97D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x1FC7 JUMP JUMPDEST PUSH2 0x989 DUP5 DUP5 DUP5 DUP5 PUSH2 0x115D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9AF JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C9 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9C9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA4F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA9C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x4D79335365632050726F66696C6573 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x4D33535 PUSH1 0xE4 SHL DUP2 MSTORE POP PUSH2 0x1190 JUMP JUMPDEST PUSH2 0xAA4 PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0xAAC PUSH2 0x11C1 JUMP JUMPDEST PUSH2 0xAB5 DUP3 PUSH2 0xBB7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x939 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3E8 DUP3 PUSH2 0x11E8 JUMP JUMPDEST PUSH1 0x97 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB34 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0x102A JUMP JUMPDEST PUSH2 0xB46 PUSH2 0xED1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xBAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH2 0xBB4 DUP2 PUSH2 0xF2B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0xBE6 PUSH2 0x12F0 JUMP JUMPDEST PUSH2 0xBB4 DUP2 PUSH2 0x688 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x780E9D63 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3E8 JUMPI POP PUSH2 0x3E8 DUP3 PUSH2 0x131F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xBB4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xCA8 DUP3 PUSH2 0x787 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 0xCED DUP4 PUSH2 0x787 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 0xD34 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D 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 0xD58 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD4D DUP5 PUSH2 0x480 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 0xD73 DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xDFB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH2 0xE08 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x136F JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE1B DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9C PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x9B 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 0x9A 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 PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x87F 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 0x51B JUMP JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1012 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524337323155524953746F726167653A2055524920736574206F66206E6F6E PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x32BC34B9BA32B73A103A37B5B2B7 PUSH1 0x91 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xFC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x5BC DUP3 DUP3 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x1054 JUMPI POP PUSH2 0x103E DUP2 PUSH2 0x787 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF194FAE5 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 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x10F0 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 0x51B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9D 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 0x1168 DUP5 DUP5 DUP5 PUSH2 0xD60 JUMP JUMPDEST PUSH2 0x1174 DUP5 DUP5 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x989 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x11B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x939 DUP3 DUP3 PUSH2 0x14EB JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x87F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11F3 DUP3 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xFC PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH2 0x120C SWAP1 PUSH2 0x1F8D 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 0x1238 SWAP1 PUSH2 0x1F8D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1285 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x125A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1285 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 0x1268 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 PUSH2 0x12A3 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x12B5 JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD ISZERO PUSH2 0x12E7 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12CF SWAP3 SWAP2 SWAP1 PUSH2 0x2249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD58 DUP5 PUSH2 0x152B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x87F PUSH2 0x159F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x1350 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x3E8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 SUB PUSH2 0x13AB JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH2 0x12F PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMPDEST PUSH2 0x989 DUP5 DUP5 DUP5 DUP5 PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x13C1 DUP4 DUP4 PUSH2 0x170F JUMP JUMPDEST PUSH2 0x13CE PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x5BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x14E0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x142E SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2278 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1469 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1466 SWAP2 DUP2 ADD SWAP1 PUSH2 0x22B5 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x14C6 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1497 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 0x149C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x21F7 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xD58 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1512 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x98 PUSH2 0x151E DUP4 DUP3 PUSH2 0x2137 JUMP JUMPDEST POP PUSH1 0x99 PUSH2 0x5BC DUP3 DUP3 PUSH2 0x2137 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1536 DUP3 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x154D 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 0x156D JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1598 JUMP JUMPDEST DUP1 PUSH2 0x1577 DUP5 PUSH2 0x18A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1588 SWAP3 SWAP2 SWAP1 PUSH2 0x2249 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 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x15C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51B SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH2 0x87F CALLER PUSH2 0xF2B JUMP JUMPDEST PUSH2 0x15DB DUP5 DUP5 DUP5 DUP5 PUSH2 0x193B JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x164A 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 PUSH21 0x185B9CD9995C9CC81B9BDD081CDD5C1C1BDC9D1959 PUSH1 0x5A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x16A6 JUMPI PUSH2 0x16A1 DUP2 PUSH1 0xCC DUP1 SLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x47197230E1E4B29FC0BD84D7D78966C0925452AFF72A2A121538B102457E9EBE ADD SSTORE JUMP JUMPDEST PUSH2 0x16C9 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16C9 JUMPI PUSH2 0x16C9 DUP6 DUP3 PUSH2 0x19C3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x16E5 JUMPI PUSH2 0x16E0 DUP2 PUSH2 0x1A60 JUMP JUMPDEST PUSH2 0x1708 JUMP JUMPDEST DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1708 JUMPI PUSH2 0x1708 DUP5 DUP3 PUSH2 0x1B0F JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1765 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 0x51B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x17CA 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 0x51B JUMP JUMPDEST PUSH2 0x17D8 PUSH1 0x0 DUP4 DUP4 PUSH1 0x1 PUSH2 0x136F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9A PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x183D 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 0x51B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x9A SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x18B5 DUP4 PUSH2 0x1B53 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18D5 JUMPI PUSH2 0x18D5 PUSH2 0x1D77 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 0x18FF 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 PUSH2 0x1909 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x1981 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x197B SWAP1 DUP5 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x989 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9B PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x19B8 SWAP1 DUP5 SWAP1 PUSH2 0x22E5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x19D0 DUP5 PUSH2 0x7E7 JUMP JUMPDEST PUSH2 0x19DA SWAP2 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP1 DUP3 EQ PUSH2 0x1A2D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA 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 0xCB SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP2 SWAP1 SSTORE JUMPDEST POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xCB 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 0xCA DUP2 MSTORE DUP4 DUP4 KECCAK256 SWAP2 DUP4 MSTORE MSTORE SWAP1 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0xCC SLOAD PUSH1 0x0 SWAP1 PUSH2 0x1A72 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x22D2 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xCD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xCC DUP1 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 DUP5 SWAP1 DUP2 LT PUSH2 0x1A9A JUMPI PUSH2 0x1A9A PUSH2 0x2014 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 PUSH1 0xCC DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1ABB JUMPI PUSH2 0x1ABB PUSH2 0x2014 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE DUP3 DUP2 MSTORE PUSH1 0xCD SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE DUP6 DUP3 MSTORE DUP2 KECCAK256 SSTORE PUSH1 0xCC DUP1 SLOAD DUP1 PUSH2 0x1AF3 JUMPI PUSH2 0x1AF3 PUSH2 0x22F8 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 0x1B1A DUP4 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xCA 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 0xCB SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x1B92 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1BBE JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1BDC JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1BF4 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1C08 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1C1A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x3E8 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xBB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1598 DUP2 PUSH2 0x1C2B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1598 DUP3 PUSH2 0x1C5E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CB0 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1C98 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1CD1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1C95 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 0x1598 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1CB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D2D DUP4 PUSH2 0x1C5E 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 0x1D50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D59 DUP5 PUSH2 0x1C5E JUMP JUMPDEST SWAP3 POP PUSH2 0x1D67 PUSH1 0x20 DUP6 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 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 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP5 GT ISZERO PUSH2 0x1DA8 JUMPI PUSH2 0x1DA8 PUSH2 0x1D77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1DD0 JUMPI PUSH2 0x1DD0 PUSH2 0x1D77 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x1DE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1E14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1598 DUP4 DUP4 CALLDATALOAD PUSH1 0x20 DUP6 ADD PUSH2 0x1D8D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E3F DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E67 DUP6 DUP3 DUP7 ADD PUSH2 0x1E03 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EBE DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1ED3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1EF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EFD DUP6 PUSH2 0x1C5E JUMP JUMPDEST SWAP4 POP PUSH2 0x1F0B PUSH1 0x20 DUP7 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x1F3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F4E DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x1D8D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F76 DUP4 PUSH2 0x1C5E JUMP JUMPDEST SWAP2 POP PUSH2 0x1F84 PUSH1 0x20 DUP5 ADD PUSH2 0x1C5E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1FA1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1FC1 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x2D SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH13 0x1C881BDC88185C1C1C9BDD9959 PUSH1 0x9A SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 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 PUSH2 0x2052 JUMPI PUSH2 0x2052 PUSH2 0x202A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x25 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x40 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5BC 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 0x2110 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x212F JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x211C JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2151 PUSH2 0x1D77 JUMP JUMPDEST PUSH2 0x2165 DUP2 PUSH2 0x215F DUP5 SLOAD PUSH2 0x1F8D JUMP JUMPDEST DUP5 PUSH2 0x20E9 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x219A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2182 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 0x212F JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x21C9 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x21AA JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x21E7 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 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x225B DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1C95 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x226F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1C95 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x22AB SWAP1 DUP4 ADD DUP5 PUSH2 0x1CB9 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1598 DUP2 PUSH2 0x1C2B JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3E8 JUMPI PUSH2 0x3E8 PUSH2 0x202A JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3E8 JUMPI PUSH2 0x3E8 PUSH2 0x202A 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 PUSH29 0x97DCA10FC93414618A3F6422DCC2FAB07A892A1B396426E61F4284A584 SWAP7 LOG3 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"494:2661:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2928:225;;;;;;:::i;:::-;;:::i;:::-;;;565:14:89;;558:22;540:41;;528:2;513:18;2928:225:86;;;;;;;;1030:144;;;;;;:::i;:::-;-1:-1:-1;;;;;1134:33:86;1108:7;1134:33;;;:24;:33;;;;;;;1030:144;;;;1107:25:89;;;1095:2;1080:18;1030:144:86;961:177:89;2932:98:2;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2248:32:89;;;2230:51;;2218:2;2203:18;4407:167:2;2084:203:89;3929:417:2;;;;;;:::i;:::-;;:::i;:::-;;1950:111:5;2037:10;:17;1950:111;;5084:326:2;;;;;;:::i;:::-;;:::i;1615:264:5:-;;;;;;:::i;:::-;;:::i;594:138:62:-;;;;;;:::i;:::-;;:::i;5476:179:2:-;;;;;;:::i;:::-;;:::i;2133:241:5:-;;;;;;:::i;:::-;;:::i;2651:219:2:-;;;;;;:::i;:::-;;:::i;2390:204::-;;;;;;:::i;:::-;;:::i;2071:101:0:-;;;:::i;1402:377:86:-;;;;;;:::i;:::-;;:::i;1821:123::-;;;;;;:::i;:::-;;:::i;1441:85:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;1441:85;;3094:102:2;;;:::i;4641:153::-;;;;;;:::i;:::-;;:::i;5721:314::-;;;;;;:::i;:::-;;:::i;772:216:86:-;;;;;;:::i;:::-;;:::i;2716:206::-;;;;;;:::i;:::-;;:::i;1216:144::-;;;;;;:::i;:::-;;:::i;4860:162:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;4980:25:2;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162;2321:198:0;;;;;;:::i;:::-;;:::i;465:123:62:-;;;;;;:::i;:::-;;:::i;2928:225:86:-;3087:4;3110:36;3134:11;3110:23;:36::i;:::-;3103:43;2928:225;-1:-1:-1;;2928:225:86:o;2932:98:2:-;2986:13;3018:5;3011:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:2;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:2;;4407:167::o;3929:417::-;4009:13;4025:34;4051:7;4025:25;:34::i;:::-;4009:50;;4083:5;-1:-1:-1;;;;;4077:11:2;:2;-1:-1:-1;;;;;4077:11:2;;4069:57;;;;-1:-1:-1;;;4069:57:2;;6552:2:89;4069:57:2;;;6534:21:89;6591:2;6571:18;;;6564:30;6630:34;6610:18;;;6603:62;-1:-1:-1;;;6681:18:89;;;6674:31;6722:19;;4069:57:2;;;;;;;;;929:10:10;-1:-1:-1;;;;;4158:21:2;;;;:62;;-1:-1:-1;4183:37:2;4200:5;929:10:10;4860:162:2;:::i;4183:37::-;4137:170;;;;-1:-1:-1;;;4137:170:2;;6954:2:89;4137:170:2;;;6936:21:89;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;7103:31;7083:18;;;7076:59;7152:19;;4137:170:2;6752:425:89;4137:170:2;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3999:347;3929:417;;:::o;5084:326::-;5273:41;929:10:10;5306:7:2;5273:18;:41::i;:::-;5265:99;;;;-1:-1:-1;;;5265:99:2;;;;;;;:::i;:::-;5375:28;5385:4;5391:2;5395:7;5375:9;:28::i;1615:264:5:-;1712:7;1747:34;1775:5;1747:27;:34::i;:::-;1739:5;:42;1731:98;;;;-1:-1:-1;;;1731:98:5;;7798:2:89;1731:98:5;;;7780:21:89;7837:2;7817:18;;;7810:30;7876:34;7856:18;;;7849:62;-1:-1:-1;;;7927:18:89;;;7920:41;7978:19;;1731:98:5;7596:407:89;1731:98:5;-1:-1:-1;;;;;;1846:19:5;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1615:264::o;594:138:62:-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;654:17:62;::::1;650:56;;680:26;;-1:-1:-1::0;;;680:26:62::1;;;;;;;;;;;650:56;716:3;:9:::0;;-1:-1:-1;;;;;;716:9:62::1;-1:-1:-1::0;;;;;716:9:62;;;::::1;::::0;;;::::1;::::0;;594:138::o;5476:179:2:-;5609:39;5626:4;5632:2;5636:7;5609:39;;;;;;;;;;;;:16;:39::i;2133:241:5:-;2208:7;2243:41;2037:10;:17;;1950:111;2243:41;2235:5;:49;2227:106;;;;-1:-1:-1;;;2227:106:5;;8210:2:89;2227:106:5;;;8192:21:89;8249:2;8229:18;;;8222:30;8288:34;8268:18;;;8261:62;-1:-1:-1;;;8339:18:89;;;8332:42;8391:19;;2227:106:5;8008:408:89;2227:106:5;2350:10;2361:5;2350:17;;;;;;;;:::i;:::-;;;;;;;;;2343:24;;2133:241;;;:::o;2651:219:2:-;2723:7;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;;2785:56;;;;-1:-1:-1;;;2785:56:2;;8755:2:89;2785:56:2;;;8737:21:89;8794:2;8774:18;;;8767:30;-1:-1:-1;;;8813:18:89;;;8806:54;8877:18;;2785:56:2;8553:348:89;2390:204:2;2462:7;-1:-1:-1;;;;;2489:19:2;;2481:73;;;;-1:-1:-1;;;2481:73:2;;9108:2:89;2481:73:2;;;9090:21:89;9147:2;9127:18;;;9120:30;9186:34;9166:18;;;9159:62;-1:-1:-1;;;9237:18:89;;;9230:39;9286:19;;2481:73:2;8906:405:89;2481:73:2;-1:-1:-1;;;;;;2571:16:2;;;;;:9;:16;;;;;;;2390:204::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;1402:377:86:-;414:3:62;;1491:7:86;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;1510:15:86::1;1530;;1528:17;;;;;:::i;:::-;::::0;;;;-1:-1:-1;1528:17:86;-1:-1:-1;1555:22:86::1;1565:2:::0;1528:17;1555:9:::1;:22::i;:::-;1587:26;1600:7;1609:3;1587:12;:26::i;:::-;1623:19;1645:13;1655:2;1645:9;:13::i;:::-;1662:1;1645:18;1623:40;;1677:14;1673:76;;;1707:31;1726:2;1730:7;1707:18;:31::i;:::-;-1:-1:-1::0;1765:7:86;1402:377;-1:-1:-1;;;1402:377:86:o;1821:123::-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;1909:28:86::1;1922:9;1933:3;1909:12;:28::i;:::-;1821:123:::0;;:::o;3094:102:2:-;3150:13;3182:7;3175:14;;;;;:::i;4641:153::-;4735:52;929:10:10;4768:8:2;4778;4735:18;:52::i;5721:314::-;5889:41;929:10:10;5922:7:2;5889:18;:41::i;:::-;5881:99;;;;-1:-1:-1;;;5881:99:2;;;;;;;:::i;:::-;5990:38;6004:4;6010:2;6014:7;6023:4;5990:13;:38::i;:::-;5721:314;;;;:::o;772:216:86:-;3268:19:1;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:1;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:1;1476:19:9;:23;;;3376:66:1;;-1:-1:-1;3425:12:1;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:1;;9790:2:89;3314:201:1;;;9772:21:89;9829:2;9809:18;;;9802:30;9868:34;9848:18;;;9841:62;-1:-1:-1;;;9919:18:89;;;9912:44;9973:19;;3314:201:1;9588:410:89;3314:201:1;3525:12;:16;;-1:-1:-1;;3525:16:1;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:1;;;;;3551:65;834:40:86::1;;;;;;;;;;;;;;-1:-1:-1::0;;;834:40:86::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;834:40:86::1;;::::0;:13:::1;:40::i;:::-;884:25;:23;:25::i;:::-;919;:23;:25::i;:::-;954:27;977:3;954:22;:27::i;:::-;3640:14:1::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:1;;;3710:14;;-1:-1:-1;10155:36:89;;3710:14:1;;10143:2:89;10128:18;3710:14:1;;;;;;;3258:483;772:216:86;:::o;2716:206::-;2860:13;2892:23;2907:7;2892:14;:23::i;1216:144::-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;1315:38:86::1;1334:7;1343:9;1315:18;:38::i;2321:198:0:-:0;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;10404:2:89;2401:73:0::1;::::0;::::1;10386:21:89::0;10443:2;10423:18;;;10416:30;10482:34;10462:18;;;10455:62;-1:-1:-1;;;10533:18:89;;;10526:36;10579:19;;2401:73:0::1;10202:402:89::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;465:123:62:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;544:16:62::1;:14;:16::i;:::-;570:11;577:3;570:6;:11::i;1281:255:5:-:0;1405:4;-1:-1:-1;;;;;;1428:61:5;;-1:-1:-1;;;1428:61:5;;:101;;;1493:36;1517:11;1493:23;:36::i;14004:133:2:-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;14077:53;;;;-1:-1:-1;;;14077:53:2;;8755:2:89;14077:53:2;;;8737:21:89;8794:2;8774:18;;;8767:30;-1:-1:-1;;;8813:18:89;;;8806:54;8877:18;;14077:53:2;8553:348:89;13295:182:2;13369:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13369:29:2;-1:-1:-1;;;;;13369:29:2;;;;;;;;:24;;13422:34;13369:24;13422:25;:34::i;:::-;-1:-1:-1;;;;;13413:57:2;;;;;;;;;;;13295:182;;:::o;8012:272::-;8105:4;8121:13;8137:34;8163:7;8137:25;:34::i;:::-;8121:50;;8200:5;-1:-1:-1;;;;;8189:16:2;:7;-1:-1:-1;;;;;8189:16:2;;:52;;;-1:-1:-1;;;;;;4980:25:2;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8209:32;8189:87;;;;8269:7;-1:-1:-1;;;;;8245:31:2;:20;8257:7;8245:11;:20::i;:::-;-1:-1:-1;;;;;8245:31:2;;8189:87;8181:96;8012:272;-1:-1:-1;;;;8012:272:2:o;11928:1255::-;12093:4;-1:-1:-1;;;;;12055:42:2;:34;12081:7;12055:25;:34::i;:::-;-1:-1:-1;;;;;12055:42:2;;12047:92;;;;-1:-1:-1;;;12047:92:2;;;;;;;:::i;:::-;-1:-1:-1;;;;;12157:16:2;;12149:65;;;;-1:-1:-1;;;12149:65:2;;11629:2:89;12149:65:2;;;11611:21:89;11668:2;11648:18;;;11641:30;11707:34;11687:18;;;11680:62;-1:-1:-1;;;11758:18:89;;;11751:34;11802:19;;12149:65:2;11427:400:89;12149:65:2;12225:42;12246:4;12252:2;12256:7;12265:1;12225:20;:42::i;:::-;12405:4;-1:-1:-1;;;;;12367:42:2;:34;12393:7;12367:25;:34::i;:::-;-1:-1:-1;;;;;12367:42:2;;12359:92;;;;-1:-1:-1;;;12359:92:2;;;;;;;:::i;:::-;12520:24;;;;:15;:24;;;;;;;;12513:31;;-1:-1:-1;;;;;;12513:31:2;;;;;;-1:-1:-1;;;;;12988:15:2;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12988:20:2;;;13022:13;;;;;;;;;:18;;12513:31;13022:18;;;13060:16;;;:7;:16;;;;;;:21;;;;;;;;;;13097:27;;12536:7;;13097:27;;;3999:347;3929:417;;:::o;1599:130:0:-;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:10;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;12034:2:89;1654:68:0;;;12016:21:89;;;12053:18;;;12046:30;12112:34;12092:18;;;12085:62;12164:18;;1654:68:0;11832:356:89;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;8614:108:2:-;8689:26;8699:2;8703:7;8689:26;;;;;;;;;;;;:9;:26::i;1502:214:6:-;7793:4:2;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;1593:75:6;;;;-1:-1:-1;;;1593:75:6;;12395:2:89;1593:75:6;;;12377:21:89;12434:2;12414:18;;;12407:30;12473:34;12453:18;;;12446:62;-1:-1:-1;;;12524:18:89;;;12517:44;12578:19;;1593:75:6;12193:410:89;1593:75:6;1678:19;;;;:10;:19;;;;;:31;1700:9;1678:19;:31;:::i;1950:228:86:-;2049:1;2037:9;:13;:46;;;;;2065:18;2073:9;2065:7;:18::i;:::-;-1:-1:-1;;;;;2054:29:86;:7;-1:-1:-1;;;;;2054:29:86;;;2037:46;2033:83;;;2092:24;;-1:-1:-1;;;2092:24:86;;;;;;;;;;;2033:83;-1:-1:-1;;;;;2126:33:86;;;;;;;:24;:33;;;;;:45;1950:228::o;13613:307:2:-;13763:8;-1:-1:-1;;;;;13754:17:2;:5;-1:-1:-1;;;;;13754:17:2;;13746:55;;;;-1:-1:-1;;;13746:55:2;;15014:2:89;13746:55:2;;;14996:21:89;15053:2;15033:18;;;15026:30;15092:27;15072:18;;;15065:55;15137:18;;13746:55:2;14812:349:89;13746:55:2;-1:-1:-1;;;;;13811:25:2;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13811:46:2;;;;;;;;;;13872:41;;540::89;;;13872::2;;513:18:89;13872:41:2;;;;;;;13613:307;;;:::o;6896:305::-;7046:28;7056:4;7062:2;7066:7;7046:9;:28::i;:::-;7092:47;7115:4;7121:2;7125:7;7134:4;7092:22;:47::i;:::-;7084:110;;;;-1:-1:-1;;;7084:110:2;;;;;;;:::i;1605:149::-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1708:39:2::1;1732:5;1739:7;1708:23;:39::i;601:68:5:-:0;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;747:608:6:-;820:13;845:23;860:7;845:14;:23::i;:::-;879;905:19;;;:10;:19;;;;;879:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;934:18;955:10;3856:9:2;;;;;;;;;-1:-1:-1;3856:9:2;;;3780:92;955:10:6;934:31;;1044:4;1038:18;1060:1;1038:23;1034:70;;-1:-1:-1;1084:9:6;747:608;-1:-1:-1;;747:608:6:o;1034:70::-;1206:23;;:27;1202:106;;1280:4;1286:9;1263:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1249:48;;;;747:608;;;:::o;1202:106::-;1325:23;1340:7;1325:14;:23::i;1003:95:0:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;1987:344:2:-:0;2111:4;-1:-1:-1;;;;;;2146:51:2;;-1:-1:-1;;;2146:51:2;;:126;;-1:-1:-1;;;;;;;2213:59:2;;-1:-1:-1;;;2213:59:2;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:12;;;2288:36:2;1060:166:12;2184:385:86;-1:-1:-1;;;;;2394:30:86;;;;;;:24;:30;;;;;;:41;;;2390:106;;-1:-1:-1;;;;;2451:30:86;;2484:1;2451:30;;;:24;:30;;;;;:34;2390:106;2506:56;2533:4;2539:2;2543:7;2552:9;2506:26;:56::i;8943:309:2:-;9067:18;9073:2;9077:7;9067:5;:18::i;:::-;9116:53;9147:1;9151:2;9155:7;9164:4;9116:22;:53::i;:::-;9095:150;;;;-1:-1:-1;;;9095:150:2;;;;;;;:::i;14689:853::-;14838:4;-1:-1:-1;;;;;14858:13:2;;1476:19:9;:23;14854:682:2;;14893:82;;-1:-1:-1;;;14893:82:2;;-1:-1:-1;;;;;14893:47:2;;;;;:82;;929:10:10;;14955:4:2;;14961:7;;14970:4;;14893:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14893:82:2;;;;;;;;-1:-1:-1;;14893:82:2;;;;;;;;;;;;:::i;:::-;;;14889:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15153:6;:13;15170:1;15153:18;15149:321;;15195:60;;-1:-1:-1;;;15195:60:2;;;;;;;:::i;15149:321::-;15422:6;15416:13;15407:6;15403:2;15399:15;15392:38;14889:595;-1:-1:-1;;;;;;15025:62:2;-1:-1:-1;;;15025:62:2;;-1:-1:-1;15018:69:2;;14854:682;-1:-1:-1;15521:4:2;14689:853;;;;;;:::o;1760:160::-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1873:5:2::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:2::1;:17;1906:7:::0;1896;:17:::1;:::i;3262:276::-:0;3335:13;3360:23;3375:7;3360:14;:23::i;:::-;3394:21;3418:10;3856:9;;;;;;;;;-1:-1:-1;3856:9:2;;;3780:92;3418:10;3394:34;;3469:1;3451:7;3445:21;:25;:86;;;;;;;;;;;;;;;;;3497:7;3506:18;:7;:16;:18::i;:::-;3480:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3445:86;3438:93;3262:276;-1:-1:-1;;;3262:276:2:o;1104:111:0:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:10::0;1176:18:0::1;:32::i;2443:890:5:-:0;2614:61;2641:4;2647:2;2651:12;2665:9;2614:26;:61::i;:::-;2702:1;2690:9;:13;2686:219;;;2831:63;;-1:-1:-1;;;2831:63:5;;17036:2:89;2831:63:5;;;17018:21:89;17075:2;17055:18;;;17048:30;17114:34;17094:18;;;17087:62;-1:-1:-1;;;17165:18:89;;;17158:51;17226:19;;2831:63:5;16834:417:89;2686:219:5;2933:12;-1:-1:-1;;;;;2960:18:5;;2956:183;;2994:40;3026:7;4153:10;:17;;4126:24;;;;:15;:24;;;;;:44;;;4180:24;;;;;;;;;;;;4050:161;2994:40;2956:183;;;3063:2;-1:-1:-1;;;;;3055:10:5;:4;-1:-1:-1;;;;;3055:10:5;;3051:88;;3081:47;3114:4;3120:7;3081:32;:47::i;:::-;-1:-1:-1;;;;;3152:16:5;;3148:179;;3184:45;3221:7;3184:36;:45::i;:::-;3148:179;;;3256:4;-1:-1:-1;;;;;3250:10:5;:2;-1:-1:-1;;;;;3250:10:5;;3246:81;;3276:40;3304:2;3308:7;3276:27;:40::i;:::-;2604:729;2443:890;;;;:::o;9574:920:2:-;-1:-1:-1;;;;;9653:16:2;;9645:61;;;;-1:-1:-1;;;9645:61:2;;17458:2:89;9645:61:2;;;17440:21:89;;;17477:18;;;17470:30;17536:34;17516:18;;;17509:62;17588:18;;9645:61:2;17256:356:89;9645:61:2;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;7816:31;9716:58;;;;-1:-1:-1;;;9716:58:2;;17819:2:89;9716:58:2;;;17801:21:89;17858:2;17838:18;;;17831:30;17897;17877:18;;;17870:58;17945:18;;9716:58:2;17617:352:89;9716:58:2;9785:48;9814:1;9818:2;9822:7;9831:1;9785:20;:48::i;:::-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:2;7816:31;9920:58;;;;-1:-1:-1;;;9920:58:2;;17819:2:89;9920:58:2;;;17801:21:89;17858:2;17838:18;;;17831:30;17897;17877:18;;;17870:58;17945:18;;9920:58:2;17617:352:89;9920:58:2;-1:-1:-1;;;;;10320:13:2;;;;;;:9;:13;;;;;;;;:18;;10337:1;10320:18;;;10359:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10359:21:2;;;;;10396:33;10367:7;;10320:13;;10396:33;;10320:13;;10396:33;1821:123:86;;:::o;437:707:11:-;493:13;542:14;559:28;581:5;559:21;:28::i;:::-;590:1;559:32;542:49;;605:20;639:6;628:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:18:11;-1:-1:-1;605:41:11;-1:-1:-1;766:28:11;;;782:2;766:28;821:280;-1:-1:-1;;852:5:11;-1:-1:-1;;;986:2:11;975:14;;970:30;852:5;957:44;1045:2;1036:11;;;-1:-1:-1;1065:21:11;821:280;1065:21;-1:-1:-1;1121:6:11;437:707;-1:-1:-1;;;437:707:11:o;16258:396:2:-;16442:1;16430:9;:13;16426:222;;;-1:-1:-1;;;;;16463:18:2;;;16459:85;;-1:-1:-1;;;;;16501:15:2;;;;;;:9;:15;;;;;:28;;16520:9;;16501:15;:28;;16520:9;;16501:28;:::i;:::-;;;;-1:-1:-1;;16459:85:2;-1:-1:-1;;;;;16561:16:2;;;16557:81;;-1:-1:-1;;;;;16597:13:2;;;;;;:9;:13;;;;;:26;;16614:9;;16597:13;:26;;16614:9;;16597:26;:::i;:::-;;;;-1:-1:-1;;16258:396:2;;;;:::o;4828:981:5:-;5090:22;5151:1;5115:33;5143:4;5115:27;:33::i;:::-;:37;;;;:::i;:::-;5162:18;5183:26;;;:17;:26;;;;;;5090:62;;-1:-1:-1;5313:28:5;;;5309:323;;-1:-1:-1;;;;;5379:18:5;;5357:19;5379:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5428:30;;;;;;:44;;;5544:30;;:17;:30;;;;;:43;;;5309:323;-1:-1:-1;5725:26:5;;;;:17;:26;;;;;;;;5718:33;;;-1:-1:-1;;;;;5768:18:5;;;;;:12;:18;;;;;:34;;;;;;;5761:41;4828:981::o;6097:1061::-;6371:10;:17;6346:22;;6371:21;;6391:1;;6371:21;:::i;:::-;6402:18;6423:24;;;:15;:24;;;;;;6791:10;:26;;6346:46;;-1:-1:-1;6423:24:5;;6346:46;;6791:26;;;;;;:::i;:::-;;;;;;;;;6769:48;;6853:11;6828:10;6839;6828:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6932:28;;;:15;:28;;;;;;;:41;;;7101:24;;;;;7094:31;7135:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6168:990;;;6097:1061;:::o;3627:228::-;3711:14;3728:31;3756:2;3728:27;:31::i;:::-;-1:-1:-1;;;;;3769:16:5;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3813:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3627:228:5:o;9900:890:14:-;9953:7;;-1:-1:-1;;;10028:15:14;;10024:99;;-1:-1:-1;;;10063:15:14;;;-1:-1:-1;10106:2:14;10096:12;10024:99;10149:6;10140:5;:15;10136:99;;10184:6;10175:15;;;-1:-1:-1;10218:2:14;10208:12;10136:99;10261:6;10252:5;:15;10248:99;;10296:6;10287:15;;;-1:-1:-1;10330:2:14;10320:12;10248:99;10373:5;10364;:14;10360:96;;10407:5;10398:14;;;-1:-1:-1;10440:1:14;10430:11;10360:96;10482:5;10473;:14;10469:96;;10516:5;10507:14;;;-1:-1:-1;10549:1:14;10539:11;10469:96;10591:5;10582;:14;10578:96;;10625:5;10616:14;;;-1:-1:-1;10658:1:14;10648:11;10578:96;10700:5;10691;:14;10687:64;;10735:1;10725:11;10777:6;9900:890;-1:-1:-1;;9900:890:14:o;14:131:89:-;-1:-1:-1;;;;;;88:32:89;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:173::-;660:20;;-1:-1:-1;;;;;709:31:89;;699:42;;689:70;;755:1;752;745:12;689:70;592:173;;;:::o;770:186::-;829:6;882:2;870:9;861:7;857:23;853:32;850:52;;;898:1;895;888:12;850:52;921:29;940:9;921:29;:::i;1143:250::-;1228:1;1238:113;1252:6;1249:1;1246:13;1238:113;;;1328:11;;;1322:18;1309:11;;;1302:39;1274:2;1267:10;1238:113;;;-1:-1:-1;;1385:1:89;1367:16;;1360:27;1143:250::o;1398:271::-;1440:3;1478:5;1472:12;1505:6;1500:3;1493:19;1521:76;1590:6;1583:4;1578:3;1574:14;1567:4;1560:5;1556:16;1521:76;:::i;:::-;1651:2;1630:15;-1:-1:-1;;1626:29:89;1617:39;;;;1658:4;1613:50;;1398:271;-1:-1:-1;;1398:271:89:o;1674:220::-;1823:2;1812:9;1805:21;1786:4;1843:45;1884:2;1873:9;1869:18;1861:6;1843:45;:::i;1899:180::-;1958:6;2011:2;1999:9;1990:7;1986:23;1982:32;1979:52;;;2027:1;2024;2017:12;1979:52;-1:-1:-1;2050:23:89;;1899:180;-1:-1:-1;1899:180:89:o;2292:254::-;2360:6;2368;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2460:29;2479:9;2460:29;:::i;:::-;2450:39;2536:2;2521:18;;;;2508:32;;-1:-1:-1;;;2292:254:89:o;2551:328::-;2628:6;2636;2644;2697:2;2685:9;2676:7;2672:23;2668:32;2665:52;;;2713:1;2710;2703:12;2665:52;2736:29;2755:9;2736:29;:::i;:::-;2726:39;;2784:38;2818:2;2807:9;2803:18;2784:38;:::i;:::-;2774:48;;2869:2;2858:9;2854:18;2841:32;2831:42;;2551:328;;;;;:::o;2884:127::-;2945:10;2940:3;2936:20;2933:1;2926:31;2976:4;2973:1;2966:15;3000:4;2997:1;2990:15;3016:632;3081:5;3111:18;3152:2;3144:6;3141:14;3138:40;;;3158:18;;:::i;:::-;3233:2;3227:9;3201:2;3287:15;;-1:-1:-1;;3283:24:89;;;3309:2;3279:33;3275:42;3263:55;;;3333:18;;;3353:22;;;3330:46;3327:72;;;3379:18;;:::i;:::-;3419:10;3415:2;3408:22;3448:6;3439:15;;3478:6;3470;3463:22;3518:3;3509:6;3504:3;3500:16;3497:25;3494:45;;;3535:1;3532;3525:12;3494:45;3585:6;3580:3;3573:4;3565:6;3561:17;3548:44;3640:1;3633:4;3624:6;3616;3612:19;3608:30;3601:41;;;;3016:632;;;;;:::o;3653:222::-;3696:5;3749:3;3742:4;3734:6;3730:17;3726:27;3716:55;;3767:1;3764;3757:12;3716:55;3789:80;3865:3;3856:6;3843:20;3836:4;3828:6;3824:17;3789:80;:::i;3880:396::-;3958:6;3966;4019:2;4007:9;3998:7;3994:23;3990:32;3987:52;;;4035:1;4032;4025:12;3987:52;4058:29;4077:9;4058:29;:::i;:::-;4048:39;;4138:2;4127:9;4123:18;4110:32;4165:18;4157:6;4154:30;4151:50;;;4197:1;4194;4187:12;4151:50;4220;4262:7;4253:6;4242:9;4238:22;4220:50;:::i;:::-;4210:60;;;3880:396;;;;;:::o;4281:390::-;4359:6;4367;4420:2;4408:9;4399:7;4395:23;4391:32;4388:52;;;4436:1;4433;4426:12;4388:52;4472:9;4459:23;4449:33;;4533:2;4522:9;4518:18;4505:32;4560:18;4552:6;4549:30;4546:50;;;4592:1;4589;4582:12;4676:347;4741:6;4749;4802:2;4790:9;4781:7;4777:23;4773:32;4770:52;;;4818:1;4815;4808:12;4770:52;4841:29;4860:9;4841:29;:::i;:::-;4831:39;;4920:2;4909:9;4905:18;4892:32;4967:5;4960:13;4953:21;4946:5;4943:32;4933:60;;4989:1;4986;4979:12;4933:60;5012:5;5002:15;;;4676:347;;;;;:::o;5028:667::-;5123:6;5131;5139;5147;5200:3;5188:9;5179:7;5175:23;5171:33;5168:53;;;5217:1;5214;5207:12;5168:53;5240:29;5259:9;5240:29;:::i;:::-;5230:39;;5288:38;5322:2;5311:9;5307:18;5288:38;:::i;:::-;5278:48;;5373:2;5362:9;5358:18;5345:32;5335:42;;5428:2;5417:9;5413:18;5400:32;5455:18;5447:6;5444:30;5441:50;;;5487:1;5484;5477:12;5441:50;5510:22;;5563:4;5555:13;;5551:27;-1:-1:-1;5541:55:89;;5592:1;5589;5582:12;5541:55;5615:74;5681:7;5676:2;5663:16;5658:2;5654;5650:11;5615:74;:::i;:::-;5605:84;;;5028:667;;;;;;;:::o;5700:260::-;5768:6;5776;5829:2;5817:9;5808:7;5804:23;5800:32;5797:52;;;5845:1;5842;5835:12;5797:52;5868:29;5887:9;5868:29;:::i;:::-;5858:39;;5916:38;5950:2;5939:9;5935:18;5916:38;:::i;:::-;5906:48;;5700:260;;;;;:::o;5965:380::-;6044:1;6040:12;;;;6087;;;6108:61;;6162:4;6154:6;6150:17;6140:27;;6108:61;6215:2;6207:6;6204:14;6184:18;6181:38;6178:161;;6261:10;6256:3;6252:20;6249:1;6242:31;6296:4;6293:1;6286:15;6324:4;6321:1;6314:15;6178:161;;5965:380;;;:::o;7182:409::-;7384:2;7366:21;;;7423:2;7403:18;;;7396:30;7462:34;7457:2;7442:18;;7435:62;-1:-1:-1;;;7528:2:89;7513:18;;7506:43;7581:3;7566:19;;7182:409::o;8421:127::-;8482:10;8477:3;8473:20;8470:1;8463:31;8513:4;8510:1;8503:15;8537:4;8534:1;8527:15;9316:127;9377:10;9372:3;9368:20;9365:1;9358:31;9408:4;9405:1;9398:15;9432:4;9429:1;9422:15;9448:135;9487:3;9508:17;;;9505:43;;9528:18;;:::i;:::-;-1:-1:-1;9575:1:89;9564:13;;9448:135::o;10609:407::-;10811:2;10793:21;;;10850:2;10830:18;;;10823:30;10889:34;10884:2;10869:18;;10862:62;-1:-1:-1;;;10955:2:89;10940:18;;10933:41;11006:3;10991:19;;10609:407::o;11021:401::-;11223:2;11205:21;;;11262:2;11242:18;;;11235:30;11301:34;11296:2;11281:18;;11274:62;-1:-1:-1;;;11367:2:89;11352:18;;11345:35;11412:3;11397:19;;11021:401::o;12734:545::-;12836:2;12831:3;12828:11;12825:448;;;12872:1;12897:5;12893:2;12886:17;12942:4;12938:2;12928:19;13012:2;13000:10;12996:19;12993:1;12989:27;12983:4;12979:38;13048:4;13036:10;13033:20;13030:47;;;-1:-1:-1;13071:4:89;13030:47;13126:2;13121:3;13117:12;13114:1;13110:20;13104:4;13100:31;13090:41;;13181:82;13199:2;13192:5;13189:13;13181:82;;;13244:17;;;13225:1;13214:13;13181:82;;;13185:3;;;12734:545;;;:::o;13455:1352::-;13581:3;13575:10;13608:18;13600:6;13597:30;13594:56;;;13630:18;;:::i;:::-;13659:97;13749:6;13709:38;13741:4;13735:11;13709:38;:::i;:::-;13703:4;13659:97;:::i;:::-;13811:4;;13875:2;13864:14;;13892:1;13887:663;;;;14594:1;14611:6;14608:89;;;-1:-1:-1;14663:19:89;;;14657:26;14608:89;-1:-1:-1;;13412:1:89;13408:11;;;13404:24;13400:29;13390:40;13436:1;13432:11;;;13387:57;14710:81;;13857:944;;13887:663;12681:1;12674:14;;;12718:4;12705:18;;-1:-1:-1;;13923:20:89;;;14041:236;14055:7;14052:1;14049:14;14041:236;;;14144:19;;;14138:26;14123:42;;14236:27;;;;14204:1;14192:14;;;;14071:19;;14041:236;;;14045:3;14305:6;14296:7;14293:19;14290:201;;;14366:19;;;14360:26;-1:-1:-1;;14449:1:89;14445:14;;;14461:3;14441:24;14437:37;14433:42;14418:58;14403:74;;14290:201;-1:-1:-1;;;;;14537:1:89;14521:14;;;14517:22;14504:36;;-1:-1:-1;13455:1352:89:o;15166:414::-;15368:2;15350:21;;;15407:2;15387:18;;;15380:30;15446:34;15441:2;15426:18;;15419:62;-1:-1:-1;;;15512:2:89;15497:18;;15490:48;15570:3;15555:19;;15166:414::o;15585:496::-;15764:3;15802:6;15796:13;15818:66;15877:6;15872:3;15865:4;15857:6;15853:17;15818:66;:::i;:::-;15947:13;;15906:16;;;;15969:70;15947:13;15906:16;16016:4;16004:17;;15969:70;:::i;:::-;16055:20;;15585:496;-1:-1:-1;;;;15585:496:89:o;16086:489::-;-1:-1:-1;;;;;16355:15:89;;;16337:34;;16407:15;;16402:2;16387:18;;16380:43;16454:2;16439:18;;16432:34;;;16502:3;16497:2;16482:18;;16475:31;;;16280:4;;16523:46;;16549:19;;16541:6;16523:46;:::i;:::-;16515:54;16086:489;-1:-1:-1;;;;;;16086:489:89:o;16580:249::-;16649:6;16702:2;16690:9;16681:7;16677:23;16673:32;16670:52;;;16718:1;16715;16708:12;16670:52;16750:9;16744:16;16769:30;16793:5;16769:30;:::i;18106:128::-;18173:9;;;18194:11;;;18191:37;;;18208:18;;:::i;18239:125::-;18304:9;;;18325:10;;;18322:36;;;18338:18;;:::i;18369:127::-;18430:10;18425:3;18421:20;18418:1;18411:31;18461:4;18458:1;18451:15;18485:4;18482:1;18475:15"},"methodIdentifiers":{"__HubControllable_init(address)":"f414c97d","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","createProfile(address,string)":"7765eba1","getApproved(uint256)":"081812fc","getDefaultProfileId(address)":"05b186b6","initialize(address)":"c4d66de8","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setDefaultProfile(address,uint256)":"e93a724a","setHub(address)":"31962cdc","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","updateProfile(uint256,string)":"89c7e0a0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotProfileOwner\",\"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\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"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\":\"hub\",\"type\":\"address\"}],\"name\":\"__HubControllable_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getDefaultProfileId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"}],\"name\":\"setDefaultProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"setHub\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"updateProfile\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"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.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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/profiles/My3SecProfiles.sol\":\"My3SecProfiles\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0x2c98457c4171d86094adf9a4fd8cd2402b7e3e309e961f07910a60a576dd100f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04d2ed5d0fc239e80a6b3f3044b423d4b5b1d1d5d9a08ba3454ea98b556760f9\",\"dweb:/ipfs/QmQQNic6ZcSqH6HZXLvm4woYbZ59er2szVQMdouwJPouhv\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol\":{\"keccak256\":\"0xbd5c6f8268a1d477f6a746ebedaf7fbcf412186f0c1c54ee104547cfb5e18edd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2723993f3fca4c29408c8a3084ab15ecf54930b58d4888a51b99a020ffe4c897\",\"dweb:/ipfs/QmdTvxnqkMyhZNFXLeHNNbuRPZcY1N4iJhm7YkQdUWVk4r\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol\":{\"keccak256\":\"0xf1870306db8391db9cf14b41be0da76857a88df0e5c623d2b2338fb30a3bd5ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://466149e3f8e96b81781b18dbb7b00a20d7172ddee599ef9d51b64c7e78ddfb1d\",\"dweb:/ipfs/QmTvLPy7ZF2Vm7JLSrknWm1Z2fyVaNhoXY2RFcRkmSKFAe\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"contracts/common/access/HubControllableUpgradeable.sol\":{\"keccak256\":\"0xa136d76634a3ea944d76e1d1ddbdb99afb8f53803fa7daa6bd453b0289319295\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23980ee8080eeda2d228a1016f8bec848336d3d8033ef27c5e95cf41e6074a8d\",\"dweb:/ipfs/QmYWUaXCzmPCCsc8PKQn32MRk3aNidzcPtYZViVmd9sd8X\"]},\"contracts/common/interfaces/IMy3SecProfiles.sol\":{\"keccak256\":\"0xfa6535266711ac1af8b978ac089022698c55aa4c245f08ec6eb79b1b1ffcf92c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ec61a9c7c4b89da2b5bf20574705b9fe1daf6a6033a91bf7d0f34efd9959399\",\"dweb:/ipfs/QmdVEf9mqgsRe9uEkQ5CHyLewqjhzKLs4MdvxC6SvvvMW1\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/profiles/My3SecProfiles.sol\":{\"keccak256\":\"0xaa153f6d1f017e0d9dcc286cc492a0be0cb385b98f81043751d9d107e167eea1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8d09c0badb77db5468bae81a1c0f02d7783d44760f87382b26a08b7446e1f09\",\"dweb:/ipfs/QmeTBUchiKoRHE4uUxv3f27HFRR7f26ZibQRN17mhAr3vZ\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":2525,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_owner","offset":0,"slot":"101","type":"t_address"},{"astId":130,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":21067,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"HUB","offset":0,"slot":"151","type":"t_address"},{"astId":329,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_name","offset":0,"slot":"152","type":"t_string_storage"},{"astId":331,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_symbol","offset":0,"slot":"153","type":"t_string_storage"},{"astId":335,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_owners","offset":0,"slot":"154","type":"t_mapping(t_uint256,t_address)"},{"astId":339,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_balances","offset":0,"slot":"155","type":"t_mapping(t_address,t_uint256)"},{"astId":343,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_tokenApprovals","offset":0,"slot":"156","type":"t_mapping(t_uint256,t_address)"},{"astId":349,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_operatorApprovals","offset":0,"slot":"157","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":1269,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"158","type":"t_array(t_uint256)44_storage"},{"astId":1434,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_ownedTokens","offset":0,"slot":"202","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},{"astId":1438,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_ownedTokensIndex","offset":0,"slot":"203","type":"t_mapping(t_uint256,t_uint256)"},{"astId":1441,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_allTokens","offset":0,"slot":"204","type":"t_array(t_uint256)dyn_storage"},{"astId":1445,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_allTokensIndex","offset":0,"slot":"205","type":"t_mapping(t_uint256,t_uint256)"},{"astId":1777,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"206","type":"t_array(t_uint256)46_storage"},{"astId":1806,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_tokenURIs","offset":0,"slot":"252","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":1922,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"__gap","offset":0,"slot":"253","type":"t_array(t_uint256)49_storage"},{"astId":24670,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_tokenIdCounter","offset":0,"slot":"302","type":"t_uint256"},{"astId":24674,"contract":"contracts/profiles/My3SecProfiles.sol:My3SecProfiles","label":"_defaultProfileByAddress","offset":0,"slot":"303","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)44_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[44]","numberOfBytes":"1408"},"t_array(t_uint256)46_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/profiles/SkillWallet.sol":{"SkillWallet":{"abi":[{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"__HubControllable_init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getSkill","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"}],"name":"getSkillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileID","type":"uint256"},{"internalType":"uint256","name":"skillID","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recordExperience","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"setHub","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":"608060405234801561001057600080fd5b50610833806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a59acb8511610066578063a59acb85146100e8578063b74044bc14610109578063c4d66de814610131578063f2fde38b14610144578063f414c97d1461015757600080fd5b806331962cdc14610098578063715018a6146100ad5780638da5cb5b146100b557806395933f88146100d5575b600080fd5b6100ab6100a63660046106eb565b61016a565b005b6100ab6101bb565b6033546040516001600160a01b0390911681526020015b60405180910390f35b6100ab6100e3366004610714565b6101cf565b6100fb6100f6366004610740565b610235565b6040519081526020016100cc565b61011c610117366004610759565b610253565b604080519283526020830191909152016100cc565b6100ab61013f3660046106eb565b61027a565b6100ab6101523660046106eb565b610392565b6100ab6101653660046106eb565b61040b565b610172610443565b6001600160a01b038116610199576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6101c3610443565b6101cd600061049d565b565b6065546001600160a01b031633146101fa576040516313bd2e8360e31b815260040160405180910390fd5b60008381526066602052604081209061021382856104ef565b915061022d905084610225858461077b565b84919061050b565b505050505050565b600081815260666020526040812061024c81610520565b9392505050565b6000828152606660205260408120819061026d8185610531565b92509250505b9250929050565b600054610100900460ff161580801561029a5750600054600160ff909116105b806102b45750303b1580156102b4575060005460ff166001145b61031c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561033f576000805461ff0019166101001790555b6103488261040b565b801561038e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61039a610443565b6001600160a01b0381166103ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610313565b6104088161049d565b50565b600054610100900460ff166104325760405162461bcd60e51b81526004016103139061079c565b61043a610540565b6104088161016a565b6033546001600160a01b031633146101cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610313565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806104fe868661056f565b9097909650945050505050565b60006105188484846105a9565b949350505050565b600061052b826105c6565b92915050565b60008080806104fe86866105d1565b600054610100900460ff166105675760405162461bcd60e51b81526004016103139061079c565b6101cd6105fc565b600081815260028301602052604081205481908061059e57610591858561062c565b9250600091506102739050565b600192509050610273565b600082815260028401602052604081208290556105188484610638565b600061052b82610644565b600080806105df858561064e565b600081815260029690960160205260409095205494959350505050565b600054610100900460ff166106235760405162461bcd60e51b81526004016103139061079c565b6101cd3361049d565b600061024c838361065a565b600061024c8383610672565b600061052b825490565b600061024c83836106c1565b6000818152600183016020526040812054151561024c565b60008181526001830160205260408120546106b95750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561052b565b50600061052b565b60008260000182815481106106d8576106d86107e7565b9060005260206000200154905092915050565b6000602082840312156106fd57600080fd5b81356001600160a01b038116811461024c57600080fd5b60008060006060848603121561072957600080fd5b505081359360208301359350604090920135919050565b60006020828403121561075257600080fd5b5035919050565b6000806040838503121561076c57600080fd5b50508035926020909101359150565b8082018082111561052b57634e487b7160e01b600052601160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ed0f82d598bb3d4c7cdfc630696ea6fe1b7f7e954afa53048cf62f8771f8f42e64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x833 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 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA59ACB85 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA59ACB85 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xB74044BC EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31962CDC EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x95933F88 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0xA6 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x16A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0x714 JUMP JUMPDEST PUSH2 0x1CF JUMP JUMPDEST PUSH2 0xFB PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x740 JUMP JUMPDEST PUSH2 0x235 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST PUSH2 0x11C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0x759 JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0xCC JUMP JUMPDEST PUSH2 0xAB PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xAB PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xAB PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x40B JUMP JUMPDEST PUSH2 0x172 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1C3 PUSH2 0x443 JUMP JUMPDEST PUSH2 0x1CD PUSH1 0x0 PUSH2 0x49D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x213 DUP3 DUP6 PUSH2 0x4EF JUMP JUMPDEST SWAP2 POP PUSH2 0x22D SWAP1 POP DUP5 PUSH2 0x225 DUP6 DUP5 PUSH2 0x77B JUMP JUMPDEST DUP5 SWAP2 SWAP1 PUSH2 0x50B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x24C DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x26D DUP2 DUP6 PUSH2 0x531 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x29A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2B4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x31C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x33F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x348 DUP3 PUSH2 0x40B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x39A PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x313 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x49D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x43A PUSH2 0x540 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x16A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1CD 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 0x313 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x4FE DUP7 DUP7 PUSH2 0x56F JUMP JUMPDEST SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x518 DUP5 DUP5 DUP5 PUSH2 0x5A9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 PUSH2 0x5C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x4FE DUP7 DUP7 PUSH2 0x5D1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x567 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x59E JUMPI PUSH2 0x591 DUP6 DUP6 PUSH2 0x62C JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x273 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SWAP3 POP SWAP1 POP PUSH2 0x273 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x518 DUP5 DUP5 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 PUSH2 0x644 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5DF DUP6 DUP6 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x623 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x1CD CALLER PUSH2 0x49D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x24C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6B9 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 0x52B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH2 0x6D8 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x76C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x52B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xF DUP3 0xD5 SWAP9 0xBB RETURNDATASIZE 0x4C PUSH29 0xDFC630696EA6FE1B7F7E954AFA53048CF62F8771F8F42E64736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"254:1239:87:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__HubControllable_init_21096":{"entryPoint":1035,"id":21096,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_26":{"entryPoint":1344,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_37":{"entryPoint":1532,"id":37,"parameterSlots":0,"returnSlots":0},"@_add_4578":{"entryPoint":1650,"id":4578,"parameterSlots":2,"returnSlots":1},"@_at_4712":{"entryPoint":1729,"id":4712,"parameterSlots":2,"returnSlots":1},"@_checkOwner_68":{"entryPoint":1091,"id":68,"parameterSlots":0,"returnSlots":0},"@_contains_4681":{"entryPoint":null,"id":4681,"parameterSlots":2,"returnSlots":1},"@_length_4695":{"entryPoint":null,"id":4695,"parameterSlots":1,"returnSlots":1},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_125":{"entryPoint":1181,"id":125,"parameterSlots":1,"returnSlots":0},"@add_4748":{"entryPoint":1592,"id":4748,"parameterSlots":2,"returnSlots":1},"@at_3533":{"entryPoint":1489,"id":3533,"parameterSlots":2,"returnSlots":2},"@at_3767":{"entryPoint":1329,"id":3767,"parameterSlots":2,"returnSlots":2},"@at_4817":{"entryPoint":1614,"id":4817,"parameterSlots":2,"returnSlots":1},"@contains_3489":{"entryPoint":1580,"id":3489,"parameterSlots":2,"returnSlots":1},"@contains_4784":{"entryPoint":1626,"id":4784,"parameterSlots":2,"returnSlots":1},"@getSkillCount_24960":{"entryPoint":565,"id":24960,"parameterSlots":1,"returnSlots":1},"@getSkill_24988":{"entryPoint":595,"id":24988,"parameterSlots":2,"returnSlots":2},"@initialize_24937":{"entryPoint":634,"id":24937,"parameterSlots":1,"returnSlots":0},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@length_3504":{"entryPoint":1478,"id":3504,"parameterSlots":1,"returnSlots":1},"@length_3733":{"entryPoint":1312,"id":3733,"parameterSlots":1,"returnSlots":1},"@length_4799":{"entryPoint":1604,"id":4799,"parameterSlots":1,"returnSlots":1},"@owner_54":{"entryPoint":null,"id":54,"parameterSlots":0,"returnSlots":1},"@recordExperience_25027":{"entryPoint":463,"id":25027,"parameterSlots":3,"returnSlots":0},"@renounceOwnership_82":{"entryPoint":443,"id":82,"parameterSlots":0,"returnSlots":0},"@setHub_21120":{"entryPoint":362,"id":21120,"parameterSlots":1,"returnSlots":0},"@set_3447":{"entryPoint":1449,"id":3447,"parameterSlots":3,"returnSlots":1},"@set_3676":{"entryPoint":1291,"id":3676,"parameterSlots":3,"returnSlots":1},"@transferOwnership_105":{"entryPoint":914,"id":105,"parameterSlots":1,"returnSlots":0},"@tryGet_3577":{"entryPoint":1391,"id":3577,"parameterSlots":2,"returnSlots":2},"@tryGet_3801":{"entryPoint":1263,"id":3801,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":1771,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":1856,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":1881,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256t_uint256t_uint256":{"entryPoint":1812,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1948,"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},"checked_add_t_uint256":{"entryPoint":1915,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":2023,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3857:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:216:89","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:89"},"nodeType":"YulFunctionCall","src":"132:12:89"},"nodeType":"YulExpressionStatement","src":"132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:89"},"nodeType":"YulFunctionCall","src":"101:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:89"},"nodeType":"YulFunctionCall","src":"97:32:89"},"nodeType":"YulIf","src":"94:52:89"},{"nodeType":"YulVariableDeclaration","src":"155:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:89"},"nodeType":"YulFunctionCall","src":"168:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:89"},"nodeType":"YulFunctionCall","src":"256:12:89"},"nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"244:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"235:3:89"},"nodeType":"YulFunctionCall","src":"235:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"231:3:89"},"nodeType":"YulFunctionCall","src":"231:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:89"},"nodeType":"YulFunctionCall","src":"220:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:89"},"nodeType":"YulFunctionCall","src":"210:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:89"},"nodeType":"YulFunctionCall","src":"203:50:89"},"nodeType":"YulIf","src":"200:70:89"},{"nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:89","type":""}],"src":"14:286:89"},{"body":{"nodeType":"YulBlock","src":"406:102:89","statements":[{"nodeType":"YulAssignment","src":"416:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"428:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"439:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"424:3:89"},"nodeType":"YulFunctionCall","src":"424:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"416:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"473:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"489:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"494:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"485:3:89"},"nodeType":"YulFunctionCall","src":"485:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"498:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"481:3:89"},"nodeType":"YulFunctionCall","src":"481:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"469:3:89"},"nodeType":"YulFunctionCall","src":"469:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"451:6:89"},"nodeType":"YulFunctionCall","src":"451:51:89"},"nodeType":"YulExpressionStatement","src":"451:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"375:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"386:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"397:4:89","type":""}],"src":"305:203:89"},{"body":{"nodeType":"YulBlock","src":"617:212:89","statements":[{"body":{"nodeType":"YulBlock","src":"663:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"672:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"675:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"665:6:89"},"nodeType":"YulFunctionCall","src":"665:12:89"},"nodeType":"YulExpressionStatement","src":"665:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"638:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"647:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"634:3:89"},"nodeType":"YulFunctionCall","src":"634:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"659:2:89","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"630:3:89"},"nodeType":"YulFunctionCall","src":"630:32:89"},"nodeType":"YulIf","src":"627:52:89"},{"nodeType":"YulAssignment","src":"688:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"711:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"698:12:89"},"nodeType":"YulFunctionCall","src":"698:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"688:6:89"}]},{"nodeType":"YulAssignment","src":"730:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"757:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"768:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"753:3:89"},"nodeType":"YulFunctionCall","src":"753:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"740:12:89"},"nodeType":"YulFunctionCall","src":"740:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"730:6:89"}]},{"nodeType":"YulAssignment","src":"781:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"808:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"819:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:89"},"nodeType":"YulFunctionCall","src":"804:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"791:12:89"},"nodeType":"YulFunctionCall","src":"791:32:89"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"781:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"567:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"578:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"590:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"598:6:89","type":""},{"name":"value2","nodeType":"YulTypedName","src":"606:6:89","type":""}],"src":"513:316:89"},{"body":{"nodeType":"YulBlock","src":"904:110:89","statements":[{"body":{"nodeType":"YulBlock","src":"950:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"959:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"962:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"952:6:89"},"nodeType":"YulFunctionCall","src":"952:12:89"},"nodeType":"YulExpressionStatement","src":"952:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"925:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"921:3:89"},"nodeType":"YulFunctionCall","src":"921:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"946:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"917:3:89"},"nodeType":"YulFunctionCall","src":"917:32:89"},"nodeType":"YulIf","src":"914:52:89"},{"nodeType":"YulAssignment","src":"975:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"998:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"985:12:89"},"nodeType":"YulFunctionCall","src":"985:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"975:6:89"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"870:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"881:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"893:6:89","type":""}],"src":"834:180:89"},{"body":{"nodeType":"YulBlock","src":"1120:76:89","statements":[{"nodeType":"YulAssignment","src":"1130:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1142:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1153:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1138:3:89"},"nodeType":"YulFunctionCall","src":"1138:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1130:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1172:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1183:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1165:6:89"},"nodeType":"YulFunctionCall","src":"1165:25:89"},"nodeType":"YulExpressionStatement","src":"1165:25:89"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1089:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1100:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1111:4:89","type":""}],"src":"1019:177:89"},{"body":{"nodeType":"YulBlock","src":"1288:161:89","statements":[{"body":{"nodeType":"YulBlock","src":"1334:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1343:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1346:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1336:6:89"},"nodeType":"YulFunctionCall","src":"1336:12:89"},"nodeType":"YulExpressionStatement","src":"1336:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1309:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"1318:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1305:3:89"},"nodeType":"YulFunctionCall","src":"1305:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1301:3:89"},"nodeType":"YulFunctionCall","src":"1301:32:89"},"nodeType":"YulIf","src":"1298:52:89"},{"nodeType":"YulAssignment","src":"1359:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1369:12:89"},"nodeType":"YulFunctionCall","src":"1369:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1359:6:89"}]},{"nodeType":"YulAssignment","src":"1401:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1428:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1439:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1424:3:89"},"nodeType":"YulFunctionCall","src":"1424:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1411:12:89"},"nodeType":"YulFunctionCall","src":"1411:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1401:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1246:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1257:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1269:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1277:6:89","type":""}],"src":"1201:248:89"},{"body":{"nodeType":"YulBlock","src":"1583:119:89","statements":[{"nodeType":"YulAssignment","src":"1593:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1605:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1616:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1601:3:89"},"nodeType":"YulFunctionCall","src":"1601:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1593:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1635:9:89"},{"name":"value0","nodeType":"YulIdentifier","src":"1646:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1628:6:89"},"nodeType":"YulFunctionCall","src":"1628:25:89"},"nodeType":"YulExpressionStatement","src":"1628:25:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1673:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1684:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1669:3:89"},"nodeType":"YulFunctionCall","src":"1669:18:89"},{"name":"value1","nodeType":"YulIdentifier","src":"1689:6:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1662:6:89"},"nodeType":"YulFunctionCall","src":"1662:34:89"},"nodeType":"YulExpressionStatement","src":"1662:34:89"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1544:9:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1555:6:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1563:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1574:4:89","type":""}],"src":"1454:248:89"},{"body":{"nodeType":"YulBlock","src":"1755:174:89","statements":[{"nodeType":"YulAssignment","src":"1765:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1776:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"1779:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1772:3:89"},"nodeType":"YulFunctionCall","src":"1772:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1765:3:89"}]},{"body":{"nodeType":"YulBlock","src":"1812:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1833:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1840:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1845:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1836:3:89"},"nodeType":"YulFunctionCall","src":"1836:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1826:6:89"},"nodeType":"YulFunctionCall","src":"1826:31:89"},"nodeType":"YulExpressionStatement","src":"1826:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1877:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1880:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1870:6:89"},"nodeType":"YulFunctionCall","src":"1870:15:89"},"nodeType":"YulExpressionStatement","src":"1870:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1905:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1908:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1898:6:89"},"nodeType":"YulFunctionCall","src":"1898:15:89"},"nodeType":"YulExpressionStatement","src":"1898:15:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1796:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"1799:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1793:2:89"},"nodeType":"YulFunctionCall","src":"1793:10:89"},"nodeType":"YulIf","src":"1790:133:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1738:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"1741:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1747:3:89","type":""}],"src":"1707:222:89"},{"body":{"nodeType":"YulBlock","src":"2108:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2125:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2136:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2118:6:89"},"nodeType":"YulFunctionCall","src":"2118:21:89"},"nodeType":"YulExpressionStatement","src":"2118:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2159:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2170:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2155:3:89"},"nodeType":"YulFunctionCall","src":"2155:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2175:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2148:6:89"},"nodeType":"YulFunctionCall","src":"2148:30:89"},"nodeType":"YulExpressionStatement","src":"2148:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2198:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2209:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2194:3:89"},"nodeType":"YulFunctionCall","src":"2194:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"2214:34:89","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2187:6:89"},"nodeType":"YulFunctionCall","src":"2187:62:89"},"nodeType":"YulExpressionStatement","src":"2187:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2269:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2280:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2265:3:89"},"nodeType":"YulFunctionCall","src":"2265:18:89"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"2285:16:89","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2258:6:89"},"nodeType":"YulFunctionCall","src":"2258:44:89"},"nodeType":"YulExpressionStatement","src":"2258:44:89"},{"nodeType":"YulAssignment","src":"2311:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2323:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2334:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2319:3:89"},"nodeType":"YulFunctionCall","src":"2319:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2311:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2085:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2099:4:89","type":""}],"src":"1934:410:89"},{"body":{"nodeType":"YulBlock","src":"2456:87:89","statements":[{"nodeType":"YulAssignment","src":"2466:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2478:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2489:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2474:3:89"},"nodeType":"YulFunctionCall","src":"2474:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2466:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2508:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2523:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"2531:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2519:3:89"},"nodeType":"YulFunctionCall","src":"2519:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2501:6:89"},"nodeType":"YulFunctionCall","src":"2501:36:89"},"nodeType":"YulExpressionStatement","src":"2501:36:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2425:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2436:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2447:4:89","type":""}],"src":"2349:194:89"},{"body":{"nodeType":"YulBlock","src":"2722:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2739:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2750:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2732:6:89"},"nodeType":"YulFunctionCall","src":"2732:21:89"},"nodeType":"YulExpressionStatement","src":"2732:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2773:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2784:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:89"},"nodeType":"YulFunctionCall","src":"2769:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2789:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2762:6:89"},"nodeType":"YulFunctionCall","src":"2762:30:89"},"nodeType":"YulExpressionStatement","src":"2762:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2812:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2823:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2808:3:89"},"nodeType":"YulFunctionCall","src":"2808:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"2828:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2801:6:89"},"nodeType":"YulFunctionCall","src":"2801:62:89"},"nodeType":"YulExpressionStatement","src":"2801:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2883:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2894:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2879:3:89"},"nodeType":"YulFunctionCall","src":"2879:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"2899:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2872:6:89"},"nodeType":"YulFunctionCall","src":"2872:36:89"},"nodeType":"YulExpressionStatement","src":"2872:36:89"},{"nodeType":"YulAssignment","src":"2917:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2929:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2940:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2925:3:89"},"nodeType":"YulFunctionCall","src":"2925:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2917:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2699:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2713:4:89","type":""}],"src":"2548:402:89"},{"body":{"nodeType":"YulBlock","src":"3129:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3146:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3157:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3139:6:89"},"nodeType":"YulFunctionCall","src":"3139:21:89"},"nodeType":"YulExpressionStatement","src":"3139:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3180:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3191:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3176:3:89"},"nodeType":"YulFunctionCall","src":"3176:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3196:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3169:6:89"},"nodeType":"YulFunctionCall","src":"3169:30:89"},"nodeType":"YulExpressionStatement","src":"3169:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3219:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3230:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3215:3:89"},"nodeType":"YulFunctionCall","src":"3215:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"3235:34:89","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3208:6:89"},"nodeType":"YulFunctionCall","src":"3208:62:89"},"nodeType":"YulExpressionStatement","src":"3208:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3290:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3301:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:89"},"nodeType":"YulFunctionCall","src":"3286:18:89"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"3306:13:89","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3279:6:89"},"nodeType":"YulFunctionCall","src":"3279:41:89"},"nodeType":"YulExpressionStatement","src":"3279:41:89"},{"nodeType":"YulAssignment","src":"3329:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3341:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3352:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3337:3:89"},"nodeType":"YulFunctionCall","src":"3337:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3329:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3106:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3120:4:89","type":""}],"src":"2955:407:89"},{"body":{"nodeType":"YulBlock","src":"3541:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3558:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3569:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3551:6:89"},"nodeType":"YulFunctionCall","src":"3551:21:89"},"nodeType":"YulExpressionStatement","src":"3551:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3592:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3603:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:89"},"nodeType":"YulFunctionCall","src":"3588:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"3608:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3581:6:89"},"nodeType":"YulFunctionCall","src":"3581:30:89"},"nodeType":"YulExpressionStatement","src":"3581:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3631:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3642:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3627:3:89"},"nodeType":"YulFunctionCall","src":"3627:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"3647:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3620:6:89"},"nodeType":"YulFunctionCall","src":"3620:62:89"},"nodeType":"YulExpressionStatement","src":"3620:62:89"},{"nodeType":"YulAssignment","src":"3691:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3703:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"3714:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3699:3:89"},"nodeType":"YulFunctionCall","src":"3699:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3691:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3518:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3532:4:89","type":""}],"src":"3367:356:89"},{"body":{"nodeType":"YulBlock","src":"3760:95:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3777:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3784:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3789:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3780:3:89"},"nodeType":"YulFunctionCall","src":"3780:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3770:6:89"},"nodeType":"YulFunctionCall","src":"3770:31:89"},"nodeType":"YulExpressionStatement","src":"3770:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3817:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3820:4:89","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3810:6:89"},"nodeType":"YulFunctionCall","src":"3810:15:89"},"nodeType":"YulExpressionStatement","src":"3810:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3841:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3844:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3834:6:89"},"nodeType":"YulFunctionCall","src":"3834:15:89"},"nodeType":"YulExpressionStatement","src":"3834:15:89"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"3728:127:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { 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_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_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_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_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_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100935760003560e01c8063a59acb8511610066578063a59acb85146100e8578063b74044bc14610109578063c4d66de814610131578063f2fde38b14610144578063f414c97d1461015757600080fd5b806331962cdc14610098578063715018a6146100ad5780638da5cb5b146100b557806395933f88146100d5575b600080fd5b6100ab6100a63660046106eb565b61016a565b005b6100ab6101bb565b6033546040516001600160a01b0390911681526020015b60405180910390f35b6100ab6100e3366004610714565b6101cf565b6100fb6100f6366004610740565b610235565b6040519081526020016100cc565b61011c610117366004610759565b610253565b604080519283526020830191909152016100cc565b6100ab61013f3660046106eb565b61027a565b6100ab6101523660046106eb565b610392565b6100ab6101653660046106eb565b61040b565b610172610443565b6001600160a01b038116610199576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6101c3610443565b6101cd600061049d565b565b6065546001600160a01b031633146101fa576040516313bd2e8360e31b815260040160405180910390fd5b60008381526066602052604081209061021382856104ef565b915061022d905084610225858461077b565b84919061050b565b505050505050565b600081815260666020526040812061024c81610520565b9392505050565b6000828152606660205260408120819061026d8185610531565b92509250505b9250929050565b600054610100900460ff161580801561029a5750600054600160ff909116105b806102b45750303b1580156102b4575060005460ff166001145b61031c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561033f576000805461ff0019166101001790555b6103488261040b565b801561038e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61039a610443565b6001600160a01b0381166103ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610313565b6104088161049d565b50565b600054610100900460ff166104325760405162461bcd60e51b81526004016103139061079c565b61043a610540565b6104088161016a565b6033546001600160a01b031633146101cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610313565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008080806104fe868661056f565b9097909650945050505050565b60006105188484846105a9565b949350505050565b600061052b826105c6565b92915050565b60008080806104fe86866105d1565b600054610100900460ff166105675760405162461bcd60e51b81526004016103139061079c565b6101cd6105fc565b600081815260028301602052604081205481908061059e57610591858561062c565b9250600091506102739050565b600192509050610273565b600082815260028401602052604081208290556105188484610638565b600061052b82610644565b600080806105df858561064e565b600081815260029690960160205260409095205494959350505050565b600054610100900460ff166106235760405162461bcd60e51b81526004016103139061079c565b6101cd3361049d565b600061024c838361065a565b600061024c8383610672565b600061052b825490565b600061024c83836106c1565b6000818152600183016020526040812054151561024c565b60008181526001830160205260408120546106b95750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561052b565b50600061052b565b60008260000182815481106106d8576106d86107e7565b9060005260206000200154905092915050565b6000602082840312156106fd57600080fd5b81356001600160a01b038116811461024c57600080fd5b60008060006060848603121561072957600080fd5b505081359360208301359350604090920135919050565b60006020828403121561075257600080fd5b5035919050565b6000806040838503121561076c57600080fd5b50508035926020909101359150565b8082018082111561052b57634e487b7160e01b600052601160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ed0f82d598bb3d4c7cdfc630696ea6fe1b7f7e954afa53048cf62f8771f8f42e64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA59ACB85 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA59ACB85 EQ PUSH2 0xE8 JUMPI DUP1 PUSH4 0xB74044BC EQ PUSH2 0x109 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31962CDC EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x95933F88 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0xA6 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x16A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0xE3 CALLDATASIZE PUSH1 0x4 PUSH2 0x714 JUMP JUMPDEST PUSH2 0x1CF JUMP JUMPDEST PUSH2 0xFB PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x740 JUMP JUMPDEST PUSH2 0x235 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCC JUMP JUMPDEST PUSH2 0x11C PUSH2 0x117 CALLDATASIZE PUSH1 0x4 PUSH2 0x759 JUMP JUMPDEST PUSH2 0x253 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0xCC JUMP JUMPDEST PUSH2 0xAB PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xAB PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xAB PUSH2 0x165 CALLDATASIZE PUSH1 0x4 PUSH2 0x6EB JUMP JUMPDEST PUSH2 0x40B JUMP JUMPDEST PUSH2 0x172 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x199 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x1C3 PUSH2 0x443 JUMP JUMPDEST PUSH2 0x1CD PUSH1 0x0 PUSH2 0x49D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 PUSH2 0x213 DUP3 DUP6 PUSH2 0x4EF JUMP JUMPDEST SWAP2 POP PUSH2 0x22D SWAP1 POP DUP5 PUSH2 0x225 DUP6 DUP5 PUSH2 0x77B JUMP JUMPDEST DUP5 SWAP2 SWAP1 PUSH2 0x50B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x24C DUP2 PUSH2 0x520 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 SWAP1 PUSH2 0x26D DUP2 DUP6 PUSH2 0x531 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x29A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2B4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x31C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x33F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x348 DUP3 PUSH2 0x40B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x39A PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x313 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x49D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x43A PUSH2 0x540 JUMP JUMPDEST PUSH2 0x408 DUP2 PUSH2 0x16A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1CD 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 0x313 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x4FE DUP7 DUP7 PUSH2 0x56F JUMP JUMPDEST SWAP1 SWAP8 SWAP1 SWAP7 POP SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x518 DUP5 DUP5 DUP5 PUSH2 0x5A9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 PUSH2 0x5C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x4FE DUP7 DUP7 PUSH2 0x5D1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x567 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x1CD PUSH2 0x5FC JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 DUP1 PUSH2 0x59E JUMPI PUSH2 0x591 DUP6 DUP6 PUSH2 0x62C JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x273 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SWAP3 POP SWAP1 POP PUSH2 0x273 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 SWAP1 SSTORE PUSH2 0x518 DUP5 DUP5 PUSH2 0x638 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 PUSH2 0x644 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x5DF DUP6 DUP6 PUSH2 0x64E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 SWAP7 SWAP1 SWAP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 SLOAD SWAP5 SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x623 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x313 SWAP1 PUSH2 0x79C JUMP JUMPDEST PUSH2 0x1CD CALLER PUSH2 0x49D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x65A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24C DUP4 DUP4 PUSH2 0x6C1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x24C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x6B9 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 0x52B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH2 0x6D8 PUSH2 0x7E7 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x752 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x76C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x52B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED 0xF DUP3 0xD5 SWAP9 0xBB RETURNDATASIZE 0x4C PUSH29 0xDFC630696EA6FE1B7F7E954AFA53048CF62F8771F8F42E64736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"254:1239:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:138:62;;;;;;:::i;:::-;;:::i;:::-;;2071:101:0;;;:::i;1441:85::-;1513:6;;1441:85;;-1:-1:-1;;;;;1513:6:0;;;451:51:89;;439:2;424:18;1441:85:0;;;;;;;;1182:309:87;;;;;;:::i;:::-;;:::i;680:202::-;;;;;;:::i;:::-;;:::i;:::-;;;1165:25:89;;;1153:2;1138:18;680:202:87;1019:177:89;921:222:87;;;;;;:::i;:::-;;:::i;:::-;;;;1628:25:89;;;1684:2;1669:18;;1662:34;;;;1601:18;921:222:87;1454:248:89;545:96:87;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;465:123:62:-;;;;;;:::i;:::-;;:::i;594:138::-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;654:17:62;::::1;650:56;;680:26;;-1:-1:-1::0;;;680:26:62::1;;;;;;;;;;;650:56;716:3;:9:::0;;-1:-1:-1;;;;;;716:9:62::1;-1:-1:-1::0;;;;;716:9:62;;;::::1;::::0;;;::::1;::::0;;594:138::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;1182:309:87:-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;1296:50:87::1;1349:20:::0;;;:9:::1;:20;::::0;;;;;1411:19:::1;1349:20:::0;1422:7;1411:10:::1;:19::i;:::-;1379:51:::0;-1:-1:-1;1440:44:87::1;::::0;-1:-1:-1;1448:7:87;1457:26:::1;1477:6:::0;1379:51;1457:26:::1;:::i;:::-;1440:3:::0;;:44;:7:::1;:44::i;:::-;;1286:205;;1182:309:::0;;;:::o;680:202::-;754:7;826:20;;;:9;:20;;;;;863:12;826:20;863:10;:12::i;:::-;856:19;680:202;-1:-1:-1;;;680:202:87:o;921:222::-;1005:7;1086:20;;;:9;:20;;;;;1005:7;;1123:13;1086:20;1130:5;1123:6;:13::i;:::-;1116:20;;;;;921:222;;;;;;:::o;545:96::-;3268:19:1;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:1;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:1;1476:19:9;:23;;;3376:66:1;;-1:-1:-1;3425:12:1;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:1;;2136:2:89;3314:201:1;;;2118:21:89;2175:2;2155:18;;;2148:30;2214:34;2194:18;;;2187:62;-1:-1:-1;;;2265:18:89;;;2258:44;2319:19;;3314:201:1;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:1;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:1;;;;;3551:65;607:27:87::1;630:3;607:22;:27::i;:::-;3640:14:1::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:1;;;3710:14;;-1:-1:-1;2501:36:89;;3710:14:1;;2489:2:89;2474:18;3710:14:1;;;;;;;3636:99;3258:483;545:96:87;:::o;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;2750:2:89;2401:73:0::1;::::0;::::1;2732:21:89::0;2789:2;2769:18;;;2762:30;2828:34;2808:18;;;2801:62;-1:-1:-1;;;2879:18:89;;;2872:36;2925:19;;2401:73:0::1;2548:402:89::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;465:123:62:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;544:16:62::1;:14;:16::i;:::-;570:11;577:3;570:6;:11::i;1599:130:0:-:0;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:10;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;3569:2:89;1654:68:0;;;3551:21:89;;;3588:18;;;3581:30;3647:34;3627:18;;;3620:62;3699:18;;1654:68:0;3367:356:89;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;7422:217:15:-;7501:4;;;;7558:32;7565:3;7585;7558:6;:32::i;:::-;7526:64;;;;-1:-1:-1;7422:217:15;-1:-1:-1;;;;;7422:217:15:o;5823:191::-;5939:4;5962:45;5966:3;5986;6000:5;5962:3;:45::i;:::-;5955:52;5823:191;-1:-1:-1;;;;5823:191:15:o;6616:117::-;6682:7;6708:18;6715:3;6708:6;:18::i;:::-;6701:25;6616:117;-1:-1:-1;;6616:117:15:o;7070:211::-;7147:7;;;;7206:21;7209:3;7221:5;7206:2;:21::i;1003:95:0:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1065:26:0::1;:24;:26::i;4243:298:15:-:0;4328:4;4369:16;;;:11;;;:16;;;;;;4328:4;;4369:16;4395:140;;4442:18;4451:3;4456;4442:8;:18::i;:::-;4434:39;-1:-1:-1;4470:1:15;;-1:-1:-1;4434:39:15;;-1:-1:-1;4434:39:15;4395:140;4512:4;;-1:-1:-1;4518:5:15;-1:-1:-1;4504:20:15;;2590:204;2712:4;2728:16;;;:11;;;:16;;;;;:24;;;2769:18;2728:3;2740;2769:13;:18::i;3435:123::-;3507:7;3533:18;:3;:16;:18::i;3911:191::-;3994:7;;;4036:19;:3;4049:5;4036:12;:19::i;:::-;4078:16;;;;:11;;;;;:16;;;;;;;;;3911:191;-1:-1:-1;;;;3911:191:15:o;1104:111:0:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:10::0;1176:18:0::1;:32::i;3205:140:15:-:0;3292:4;3315:23;:3;3334;3315:18;:23::i;5922:123:16:-;5992:4;6015:23;6020:3;6032:5;6015:4;:23::i;6642:115::-;6705:7;6731:19;6739:3;4548:18;;4466:107;7099:129;7173:7;7199:22;7203:3;7215:5;7199:3;:22::i;6423:138::-;6503:4;4354:19;;;:12;;;:19;;;;;;:24;;6526:28;4258:127;2217:404;2280:4;4354:19;;;:12;;;:19;;;;;;2296:319;;-1:-1:-1;2338:23:16;;;;;;;;:11;:23;;;;;;;;;;;;;2518:18;;2496:19;;;:12;;;:19;;;;;;:40;;;;2550:11;;2296:319;-1:-1:-1;2599:5:16;2592:12;;4915:118;4982:7;5008:3;:11;;5020:5;5008:18;;;;;;;;:::i;:::-;;;;;;;;;5001:25;;4915:118;;;;:::o;14:286:89:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:89;;210:42;;200:70;;266:1;263;256:12;513:316;590:6;598;606;659:2;647:9;638:7;634:23;630:32;627:52;;;675:1;672;665:12;627:52;-1:-1:-1;;698:23:89;;;768:2;753:18;;740:32;;-1:-1:-1;819:2:89;804:18;;;791:32;;513:316;-1:-1:-1;513:316:89:o;834:180::-;893:6;946:2;934:9;925:7;921:23;917:32;914:52;;;962:1;959;952:12;914:52;-1:-1:-1;985:23:89;;834:180;-1:-1:-1;834:180:89:o;1201:248::-;1269:6;1277;1330:2;1318:9;1309:7;1305:23;1301:32;1298:52;;;1346:1;1343;1336:12;1298:52;-1:-1:-1;;1369:23:89;;;1439:2;1424:18;;;1411:32;;-1:-1:-1;1201:248:89:o;1707:222::-;1772:9;;;1793:10;;;1790:133;;;1845:10;1840:3;1836:20;1833:1;1826:31;1880:4;1877:1;1870:15;1908:4;1905:1;1898:15;2955:407;3157:2;3139:21;;;3196:2;3176:18;;;3169:30;3235:34;3230:2;3215:18;;3208:62;-1:-1:-1;;;3301:2:89;3286:18;;3279:41;3352:3;3337:19;;2955:407::o;3728:127::-;3789:10;3784:3;3780:20;3777:1;3770:31;3820:4;3817:1;3810:15;3844:4;3841:1;3834:15"},"methodIdentifiers":{"__HubControllable_init(address)":"f414c97d","getSkill(uint256,uint256)":"b74044bc","getSkillCount(uint256)":"a59acb85","initialize(address)":"c4d66de8","owner()":"8da5cb5b","recordExperience(uint256,uint256,uint256)":"95933f88","renounceOwnership()":"715018a6","setHub(address)":"31962cdc","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"__HubControllable_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSkill\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"}],\"name\":\"getSkillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"skillID\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"recordExperience\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"setHub\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/profiles/SkillWallet.sol\":\"SkillWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableMapUpgradeable.sol\":{\"keccak256\":\"0xba40dd2868045311c0890e57bca07dd7ce0b62730289f90971cf29d275a44e80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f00ff27209e8869a2d415d1070c472857478000dd6b70d7f336e91bd61da863\",\"dweb:/ipfs/Qmb8wEe7RmqcNuyG8wC2xRR2d12S5iHjrNDSAES4YMEC4B\"]},\"@openzeppelin/contracts-upgradeable/utils/structs/EnumerableSetUpgradeable.sol\":{\"keccak256\":\"0x4807db844a856813048b5af81a764fdd25a0ae8876a3132593e8d21ddc6b607c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ca2fce75b1b20047a41f6f67d2d1be3d24308bf34668a22c2f971689e319a70\",\"dweb:/ipfs/QmQ8hxhdkDmwK9CBURbV2eaEeFTBYb3bB3ByWw1GmjvEWo\"]},\"contracts/common/access/HubControllableUpgradeable.sol\":{\"keccak256\":\"0xa136d76634a3ea944d76e1d1ddbdb99afb8f53803fa7daa6bd453b0289319295\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23980ee8080eeda2d228a1016f8bec848336d3d8033ef27c5e95cf41e6074a8d\",\"dweb:/ipfs/QmYWUaXCzmPCCsc8PKQn32MRk3aNidzcPtYZViVmd9sd8X\"]},\"contracts/common/interfaces/ISkillWallet.sol\":{\"keccak256\":\"0x063f7dced9ce9a76c0789e28aa40cde50f756067afb291bd83bade684927e7b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b91449255aa5ff75217b36203ac6536d34502b5003e3105bdc7ae99cd5ea98de\",\"dweb:/ipfs/QmPBkZjh2ASv97gZSVuRgtcNRFkXvp3gdWEFZhvgEabmU7\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/profiles/SkillWallet.sol\":{\"keccak256\":\"0x6238308fd0282a64573b7868ba9df08cffdaa16d9292110a3d6d52b9a443a480\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca69b0be7030a1e62c67ed527db51d54bbf06c2bb34a28e0d0714b537804d800\",\"dweb:/ipfs/QmXSLQZ4YPgf5VjygC8kQWZyDJmVdf9dVSofWopAnF969D\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":21067,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"HUB","offset":0,"slot":"101","type":"t_address"},{"astId":24925,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_skillMap","offset":0,"slot":"102","type":"t_mapping(t_uint256,t_struct(UintToUintMap)3649_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"base":"t_bytes32","encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bytes32)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(UintToUintMap)3649_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct EnumerableMapUpgradeable.UintToUintMap)","numberOfBytes":"32","value":"t_struct(UintToUintMap)3649_storage"},"t_struct(Bytes32Set)4730_storage":{"encoding":"inplace","label":"struct EnumerableSetUpgradeable.Bytes32Set","members":[{"astId":4729,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)4536_storage"}],"numberOfBytes":"64"},"t_struct(Bytes32ToBytes32Map)3419_storage":{"encoding":"inplace","label":"struct EnumerableMapUpgradeable.Bytes32ToBytes32Map","members":[{"astId":3414,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_keys","offset":0,"slot":"0","type":"t_struct(Bytes32Set)4730_storage"},{"astId":3418,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_values","offset":0,"slot":"2","type":"t_mapping(t_bytes32,t_bytes32)"}],"numberOfBytes":"96"},"t_struct(Set)4536_storage":{"encoding":"inplace","label":"struct EnumerableSetUpgradeable.Set","members":[{"astId":4531,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":4535,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_indexes","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}],"numberOfBytes":"64"},"t_struct(UintToUintMap)3649_storage":{"encoding":"inplace","label":"struct EnumerableMapUpgradeable.UintToUintMap","members":[{"astId":3648,"contract":"contracts/profiles/SkillWallet.sol:SkillWallet","label":"_inner","offset":0,"slot":"0","type":"t_struct(Bytes32ToBytes32Map)3419_storage"}],"numberOfBytes":"96"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}},"contracts/profiles/TimeWallet.sol":{"TimeWallet":{"abi":[{"inputs":[],"name":"ExceededLoggableTime","type":"error"},{"inputs":[],"name":"InitParamsInvalid","type":"error"},{"inputs":[],"name":"NotHub","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"__HubControllable_init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hub","type":"address"}],"name":"setHub","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"spendTimeFor","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":"608060405234801561001057600080fd5b50610655806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b2578063c4d66de8146100d1578063f2fde38b146100e4578063f414c97d146100f757600080fd5b806331962cdc14610082578063581823bd14610097578063715018a6146100aa575b600080fd5b610095610090366004610539565b61010a565b005b6100956100a5366004610569565b61015b565b610095610256565b603354604080516001600160a01b039092168252519081900360200190f35b6100956100df366004610539565b61026a565b6100956100f2366004610539565b610382565b610095610105366004610539565b6103fb565b610112610433565b6001600160a01b038116610139576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b03163314610186576040516313bd2e8360e31b815260040160405180910390fd5b6201518081106101a95760405163a4fd7c6b60e01b815260040160405180910390fd5b60006101b8620151804261058b565b6000848152606660205260409020549091508111156101f0576000928352606660209081526040808520929092556067905290912055565b600083815260676020526040902054620151809061020f9084906105ad565b111561022e5760405163a4fd7c6b60e01b815260040160405180910390fd5b6000838152606760205260408120805484929061024c9084906105ad565b9091555050505050565b61025e610433565b610268600061048d565b565b600054610100900460ff161580801561028a5750600054600160ff909116105b806102a45750303b1580156102a4575060005460ff166001145b61030c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561032f576000805461ff0019166101001790555b610338826103fb565b801561037e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61038a610433565b6001600160a01b0381166103ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610303565b6103f88161048d565b50565b600054610100900460ff166104225760405162461bcd60e51b8152600401610303906105d4565b61042a6104df565b6103f88161010a565b6033546001600160a01b031633146102685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610303565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166105065760405162461bcd60e51b8152600401610303906105d4565b610268600054610100900460ff166105305760405162461bcd60e51b8152600401610303906105d4565b6102683361048d565b60006020828403121561054b57600080fd5b81356001600160a01b038116811461056257600080fd5b9392505050565b6000806040838503121561057c57600080fd5b50508035926020909101359150565b6000826105a857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105ce57634e487b7160e01b600052601160045260246000fd5b92915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea264697066735822122020ea110b67ffae398c19dfe59a8d96bf1b97a91c49c320b599e1d598d52df29a64736f6c63430008110033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x655 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 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31962CDC EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x581823BD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x569 JUMP JUMPDEST PUSH2 0x15B JUMP JUMPDEST PUSH2 0x95 PUSH2 0x256 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x382 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x3FB JUMP JUMPDEST PUSH2 0x112 PUSH2 0x433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x139 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15180 DUP2 LT PUSH2 0x1A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA4FD7C6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B8 PUSH3 0x15180 TIMESTAMP PUSH2 0x58B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 GT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x66 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x67 SWAP1 MSTORE SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH3 0x15180 SWAP1 PUSH2 0x20F SWAP1 DUP5 SWAP1 PUSH2 0x5AD JUMP JUMPDEST GT ISZERO PUSH2 0x22E JUMPI PUSH1 0x40 MLOAD PUSH4 0xA4FD7C6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x24C SWAP1 DUP5 SWAP1 PUSH2 0x5AD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x25E PUSH2 0x433 JUMP JUMPDEST PUSH2 0x268 PUSH1 0x0 PUSH2 0x48D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x28A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2A4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x30C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x338 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x38A PUSH2 0x433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x303 JUMP JUMPDEST PUSH2 0x3F8 DUP2 PUSH2 0x48D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x422 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x42A PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x3F8 DUP2 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x268 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 0x303 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x268 PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x268 CALLER PUSH2 0x48D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5A8 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x5CE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 0xEA GT SIGNEXTEND PUSH8 0xFFAE398C19DFE59A DUP14 SWAP7 0xBF SHL SWAP8 0xA9 SHR 0x49 0xC3 KECCAK256 0xB5 SWAP10 0xE1 0xD5 SWAP9 0xD5 0x2D CALLCODE SWAP11 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"248:1087:88:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__HubControllable_init_21096":{"entryPoint":1019,"id":21096,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_26":{"entryPoint":1247,"id":26,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_unchained_37":{"entryPoint":null,"id":37,"parameterSlots":0,"returnSlots":0},"@_checkOwner_68":{"entryPoint":1075,"id":68,"parameterSlots":0,"returnSlots":0},"@_msgSender_2292":{"entryPoint":null,"id":2292,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_125":{"entryPoint":1165,"id":125,"parameterSlots":1,"returnSlots":0},"@initialize_25058":{"entryPoint":618,"id":25058,"parameterSlots":1,"returnSlots":0},"@isContract_1999":{"entryPoint":null,"id":1999,"parameterSlots":1,"returnSlots":1},"@owner_54":{"entryPoint":null,"id":54,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_82":{"entryPoint":598,"id":82,"parameterSlots":0,"returnSlots":0},"@setHub_21120":{"entryPoint":266,"id":21120,"parameterSlots":1,"returnSlots":0},"@spendTimeFor_25127":{"entryPoint":347,"id":25127,"parameterSlots":2,"returnSlots":0},"@transferOwnership_105":{"entryPoint":898,"id":105,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":1337,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":1385,"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_rational_1_by_1__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1492,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1453,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":1419,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3006:89","statements":[{"nodeType":"YulBlock","src":"6:3:89","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:216:89","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:89"},"nodeType":"YulFunctionCall","src":"132:12:89"},"nodeType":"YulExpressionStatement","src":"132:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:89"},"nodeType":"YulFunctionCall","src":"101:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:89","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:89"},"nodeType":"YulFunctionCall","src":"97:32:89"},"nodeType":"YulIf","src":"94:52:89"},{"nodeType":"YulVariableDeclaration","src":"155:36:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"181:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"168:12:89"},"nodeType":"YulFunctionCall","src":"168:23:89"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"159:5:89","type":""}]},{"body":{"nodeType":"YulBlock","src":"254:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:89"},"nodeType":"YulFunctionCall","src":"256:12:89"},"nodeType":"YulExpressionStatement","src":"256:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"213:5:89"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"244:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"235:3:89"},"nodeType":"YulFunctionCall","src":"235:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"231:3:89"},"nodeType":"YulFunctionCall","src":"231:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"220:3:89"},"nodeType":"YulFunctionCall","src":"220:31:89"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"210:2:89"},"nodeType":"YulFunctionCall","src":"210:42:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"203:6:89"},"nodeType":"YulFunctionCall","src":"203:50:89"},"nodeType":"YulIf","src":"200:70:89"},{"nodeType":"YulAssignment","src":"279:15:89","value":{"name":"value","nodeType":"YulIdentifier","src":"289:5:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"279:6:89"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:89","type":""}],"src":"14:286:89"},{"body":{"nodeType":"YulBlock","src":"392:161:89","statements":[{"body":{"nodeType":"YulBlock","src":"438:16:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"447:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"450:1:89","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"440:6:89"},"nodeType":"YulFunctionCall","src":"440:12:89"},"nodeType":"YulExpressionStatement","src":"440:12:89"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"413:7:89"},{"name":"headStart","nodeType":"YulIdentifier","src":"422:9:89"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"409:3:89"},"nodeType":"YulFunctionCall","src":"409:23:89"},{"kind":"number","nodeType":"YulLiteral","src":"434:2:89","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"405:3:89"},"nodeType":"YulFunctionCall","src":"405:32:89"},"nodeType":"YulIf","src":"402:52:89"},{"nodeType":"YulAssignment","src":"463:33:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"486:9:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"473:12:89"},"nodeType":"YulFunctionCall","src":"473:23:89"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"463:6:89"}]},{"nodeType":"YulAssignment","src":"505:42:89","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"532:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"543:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"528:3:89"},"nodeType":"YulFunctionCall","src":"528:18:89"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"515:12:89"},"nodeType":"YulFunctionCall","src":"515:32:89"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"505:6:89"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"350:9:89","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"361:7:89","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"373:6:89","type":""},{"name":"value1","nodeType":"YulTypedName","src":"381:6:89","type":""}],"src":"305:248:89"},{"body":{"nodeType":"YulBlock","src":"659:102:89","statements":[{"nodeType":"YulAssignment","src":"669:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"681:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"692:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"677:3:89"},"nodeType":"YulFunctionCall","src":"677:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"669:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"711:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"726:6:89"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"742:3:89","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:89","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"738:3:89"},"nodeType":"YulFunctionCall","src":"738:11:89"},{"kind":"number","nodeType":"YulLiteral","src":"751:1:89","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"734:3:89"},"nodeType":"YulFunctionCall","src":"734:19:89"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"722:3:89"},"nodeType":"YulFunctionCall","src":"722:32:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"704:6:89"},"nodeType":"YulFunctionCall","src":"704:51:89"},"nodeType":"YulExpressionStatement","src":"704:51:89"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"628:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"639:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"650:4:89","type":""}],"src":"558:203:89"},{"body":{"nodeType":"YulBlock","src":"812:171:89","statements":[{"body":{"nodeType":"YulBlock","src":"843:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"864:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"871:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"876:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"867:3:89"},"nodeType":"YulFunctionCall","src":"867:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"857:6:89"},"nodeType":"YulFunctionCall","src":"857:31:89"},"nodeType":"YulExpressionStatement","src":"857:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"908:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"911:4:89","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"901:6:89"},"nodeType":"YulFunctionCall","src":"901:15:89"},"nodeType":"YulExpressionStatement","src":"901:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"936:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"939:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"929:6:89"},"nodeType":"YulFunctionCall","src":"929:15:89"},"nodeType":"YulExpressionStatement","src":"929:15:89"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"832:1:89"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"825:6:89"},"nodeType":"YulFunctionCall","src":"825:9:89"},"nodeType":"YulIf","src":"822:132:89"},{"nodeType":"YulAssignment","src":"963:14:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"972:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"975:1:89"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"968:3:89"},"nodeType":"YulFunctionCall","src":"968:9:89"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"963:1:89"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"797:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"800:1:89","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"806:1:89","type":""}],"src":"766:217:89"},{"body":{"nodeType":"YulBlock","src":"1036:174:89","statements":[{"nodeType":"YulAssignment","src":"1046:16:89","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1057:1:89"},{"name":"y","nodeType":"YulIdentifier","src":"1060:1:89"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1053:3:89"},"nodeType":"YulFunctionCall","src":"1053:9:89"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1046:3:89"}]},{"body":{"nodeType":"YulBlock","src":"1093:111:89","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1114:1:89","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1121:3:89","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1126:10:89","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1117:3:89"},"nodeType":"YulFunctionCall","src":"1117:20:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:89"},"nodeType":"YulFunctionCall","src":"1107:31:89"},"nodeType":"YulExpressionStatement","src":"1107:31:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1158:1:89","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1161:4:89","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1151:6:89"},"nodeType":"YulFunctionCall","src":"1151:15:89"},"nodeType":"YulExpressionStatement","src":"1151:15:89"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1186:1:89","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1189:4:89","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1179:6:89"},"nodeType":"YulFunctionCall","src":"1179:15:89"},"nodeType":"YulExpressionStatement","src":"1179:15:89"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1077:1:89"},{"name":"sum","nodeType":"YulIdentifier","src":"1080:3:89"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1074:2:89"},"nodeType":"YulFunctionCall","src":"1074:10:89"},"nodeType":"YulIf","src":"1071:133:89"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"1019:1:89","type":""},{"name":"y","nodeType":"YulTypedName","src":"1022:1:89","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"1028:3:89","type":""}],"src":"988:222:89"},{"body":{"nodeType":"YulBlock","src":"1389:236:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1417:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:89"},"nodeType":"YulFunctionCall","src":"1399:21:89"},"nodeType":"YulExpressionStatement","src":"1399:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1440:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1451:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1436:3:89"},"nodeType":"YulFunctionCall","src":"1436:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"1456:2:89","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1429:6:89"},"nodeType":"YulFunctionCall","src":"1429:30:89"},"nodeType":"YulExpressionStatement","src":"1429:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1490:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:89"},"nodeType":"YulFunctionCall","src":"1475:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561","kind":"string","nodeType":"YulLiteral","src":"1495:34:89","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1468:6:89"},"nodeType":"YulFunctionCall","src":"1468:62:89"},"nodeType":"YulExpressionStatement","src":"1468:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1550:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1561:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1546:3:89"},"nodeType":"YulFunctionCall","src":"1546:18:89"},{"hexValue":"647920696e697469616c697a6564","kind":"string","nodeType":"YulLiteral","src":"1566:16:89","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1539:6:89"},"nodeType":"YulFunctionCall","src":"1539:44:89"},"nodeType":"YulExpressionStatement","src":"1539:44:89"},{"nodeType":"YulAssignment","src":"1592:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1604:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1615:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1600:3:89"},"nodeType":"YulFunctionCall","src":"1600:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1592:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1366:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1380:4:89","type":""}],"src":"1215:410:89"},{"body":{"nodeType":"YulBlock","src":"1737:87:89","statements":[{"nodeType":"YulAssignment","src":"1747:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1759:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"1770:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1755:3:89"},"nodeType":"YulFunctionCall","src":"1755:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1747:4:89"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1789:9:89"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1804:6:89"},{"kind":"number","nodeType":"YulLiteral","src":"1812:4:89","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1800:3:89"},"nodeType":"YulFunctionCall","src":"1800:17:89"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1782:6:89"},"nodeType":"YulFunctionCall","src":"1782:36:89"},"nodeType":"YulExpressionStatement","src":"1782:36:89"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1706:9:89","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1717:6:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1728:4:89","type":""}],"src":"1630:194:89"},{"body":{"nodeType":"YulBlock","src":"2003:228:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2020:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2031:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2013:6:89"},"nodeType":"YulFunctionCall","src":"2013:21:89"},"nodeType":"YulExpressionStatement","src":"2013:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2054:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2065:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:89"},"nodeType":"YulFunctionCall","src":"2050:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2070:2:89","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2043:6:89"},"nodeType":"YulFunctionCall","src":"2043:30:89"},"nodeType":"YulExpressionStatement","src":"2043:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2093:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2104:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2089:3:89"},"nodeType":"YulFunctionCall","src":"2089:18:89"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nodeType":"YulLiteral","src":"2109:34:89","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2082:6:89"},"nodeType":"YulFunctionCall","src":"2082:62:89"},"nodeType":"YulExpressionStatement","src":"2082:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2175:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2160:3:89"},"nodeType":"YulFunctionCall","src":"2160:18:89"},{"hexValue":"646472657373","kind":"string","nodeType":"YulLiteral","src":"2180:8:89","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2153:6:89"},"nodeType":"YulFunctionCall","src":"2153:36:89"},"nodeType":"YulExpressionStatement","src":"2153:36:89"},{"nodeType":"YulAssignment","src":"2198:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2210:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2221:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2206:3:89"},"nodeType":"YulFunctionCall","src":"2206:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2198:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1980:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1994:4:89","type":""}],"src":"1829:402:89"},{"body":{"nodeType":"YulBlock","src":"2410:233:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2427:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2438:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2420:6:89"},"nodeType":"YulFunctionCall","src":"2420:21:89"},"nodeType":"YulExpressionStatement","src":"2420:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2457:3:89"},"nodeType":"YulFunctionCall","src":"2457:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2477:2:89","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2450:6:89"},"nodeType":"YulFunctionCall","src":"2450:30:89"},"nodeType":"YulExpressionStatement","src":"2450:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2500:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2511:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2496:3:89"},"nodeType":"YulFunctionCall","src":"2496:18:89"},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","kind":"string","nodeType":"YulLiteral","src":"2516:34:89","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2489:6:89"},"nodeType":"YulFunctionCall","src":"2489:62:89"},"nodeType":"YulExpressionStatement","src":"2489:62:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2582:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2567:3:89"},"nodeType":"YulFunctionCall","src":"2567:18:89"},{"hexValue":"6e697469616c697a696e67","kind":"string","nodeType":"YulLiteral","src":"2587:13:89","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2560:6:89"},"nodeType":"YulFunctionCall","src":"2560:41:89"},"nodeType":"YulExpressionStatement","src":"2560:41:89"},{"nodeType":"YulAssignment","src":"2610:27:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2622:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2633:3:89","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2618:3:89"},"nodeType":"YulFunctionCall","src":"2618:19:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2610:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2387:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2401:4:89","type":""}],"src":"2236:407:89"},{"body":{"nodeType":"YulBlock","src":"2822:182:89","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2839:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2850:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2832:6:89"},"nodeType":"YulFunctionCall","src":"2832:21:89"},"nodeType":"YulExpressionStatement","src":"2832:21:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2873:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:89","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2869:3:89"},"nodeType":"YulFunctionCall","src":"2869:18:89"},{"kind":"number","nodeType":"YulLiteral","src":"2889:2:89","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:89"},"nodeType":"YulFunctionCall","src":"2862:30:89"},"nodeType":"YulExpressionStatement","src":"2862:30:89"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2912:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2923:2:89","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2908:3:89"},"nodeType":"YulFunctionCall","src":"2908:18:89"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"2928:34:89","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2901:6:89"},"nodeType":"YulFunctionCall","src":"2901:62:89"},"nodeType":"YulExpressionStatement","src":"2901:62:89"},{"nodeType":"YulAssignment","src":"2972:26:89","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:89"},{"kind":"number","nodeType":"YulLiteral","src":"2995:2:89","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2980:3:89"},"nodeType":"YulFunctionCall","src":"2980:18:89"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2972:4:89"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2799:9:89","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2813:4:89","type":""}],"src":"2648:356:89"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := 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_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 checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\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        sum := add(x, y)\n        if gt(x, sum)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n        mstore(add(headStart, 96), \"dy initialized\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xff))\n    }\n    function abi_encode_tuple_t_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_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"Initializable: contract is not i\")\n        mstore(add(headStart, 96), \"nitializing\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n}","id":89,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100b2578063c4d66de8146100d1578063f2fde38b146100e4578063f414c97d146100f757600080fd5b806331962cdc14610082578063581823bd14610097578063715018a6146100aa575b600080fd5b610095610090366004610539565b61010a565b005b6100956100a5366004610569565b61015b565b610095610256565b603354604080516001600160a01b039092168252519081900360200190f35b6100956100df366004610539565b61026a565b6100956100f2366004610539565b610382565b610095610105366004610539565b6103fb565b610112610433565b6001600160a01b038116610139576040516348be0eb360e01b815260040160405180910390fd5b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b03163314610186576040516313bd2e8360e31b815260040160405180910390fd5b6201518081106101a95760405163a4fd7c6b60e01b815260040160405180910390fd5b60006101b8620151804261058b565b6000848152606660205260409020549091508111156101f0576000928352606660209081526040808520929092556067905290912055565b600083815260676020526040902054620151809061020f9084906105ad565b111561022e5760405163a4fd7c6b60e01b815260040160405180910390fd5b6000838152606760205260408120805484929061024c9084906105ad565b9091555050505050565b61025e610433565b610268600061048d565b565b600054610100900460ff161580801561028a5750600054600160ff909116105b806102a45750303b1580156102a4575060005460ff166001145b61030c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561032f576000805461ff0019166101001790555b610338826103fb565b801561037e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61038a610433565b6001600160a01b0381166103ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610303565b6103f88161048d565b50565b600054610100900460ff166104225760405162461bcd60e51b8152600401610303906105d4565b61042a6104df565b6103f88161010a565b6033546001600160a01b031633146102685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610303565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166105065760405162461bcd60e51b8152600401610303906105d4565b610268600054610100900460ff166105305760405162461bcd60e51b8152600401610303906105d4565b6102683361048d565b60006020828403121561054b57600080fd5b81356001600160a01b038116811461056257600080fd5b9392505050565b6000806040838503121561057c57600080fd5b50508035926020909101359150565b6000826105a857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156105ce57634e487b7160e01b600052601160045260246000fd5b92915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea264697066735822122020ea110b67ffae398c19dfe59a8d96bf1b97a91c49c320b599e1d598d52df29a64736f6c63430008110033","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 0x8DA5CB5B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0xF414C97D EQ PUSH2 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x31962CDC EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x581823BD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x10A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x569 JUMP JUMPDEST PUSH2 0x15B JUMP JUMPDEST PUSH2 0x95 PUSH2 0x256 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xDF CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x26A JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x382 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x105 CALLDATASIZE PUSH1 0x4 PUSH2 0x539 JUMP JUMPDEST PUSH2 0x3FB JUMP JUMPDEST PUSH2 0x112 PUSH2 0x433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x139 JUMPI PUSH1 0x40 MLOAD PUSH4 0x48BE0EB3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x65 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x65 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13BD2E83 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x15180 DUP2 LT PUSH2 0x1A9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA4FD7C6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B8 PUSH3 0x15180 TIMESTAMP PUSH2 0x58B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x66 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 GT ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x66 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP6 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x67 SWAP1 MSTORE SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH3 0x15180 SWAP1 PUSH2 0x20F SWAP1 DUP5 SWAP1 PUSH2 0x5AD JUMP JUMPDEST GT ISZERO PUSH2 0x22E JUMPI PUSH1 0x40 MLOAD PUSH4 0xA4FD7C6B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x24C SWAP1 DUP5 SWAP1 PUSH2 0x5AD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x25E PUSH2 0x433 JUMP JUMPDEST PUSH2 0x268 PUSH1 0x0 PUSH2 0x48D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x28A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2A4 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x30C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH2 0x338 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x38A PUSH2 0x433 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x303 JUMP JUMPDEST PUSH2 0x3F8 DUP2 PUSH2 0x48D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x422 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x42A PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x3F8 DUP2 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x268 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 0x303 JUMP JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x268 PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x303 SWAP1 PUSH2 0x5D4 JUMP JUMPDEST PUSH2 0x268 CALLER PUSH2 0x48D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5A8 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 DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x5CE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 KECCAK256 0xEA GT SIGNEXTEND PUSH8 0xFFAE398C19DFE59A DUP14 SWAP7 0xBF SHL SWAP8 0xA9 SHR 0x49 0xC3 KECCAK256 0xB5 SWAP10 0xE1 0xD5 SWAP9 0xD5 0x2D CALLCODE SWAP11 PUSH5 0x736F6C6343 STOP ADDMOD GT STOP CALLER ","sourceMap":"248:1087:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;594:138:62;;;;;;:::i;:::-;;:::i;:::-;;546:787:88;;;;;;:::i;:::-;;:::i;2071:101:0:-;;;:::i;1441:85::-;1513:6;;1441:85;;;-1:-1:-1;;;;;1513:6:0;;;704:51:89;;1441:85:0;;;;;692:2:89;1441:85:0;;;444:96:88;;;;;;:::i;:::-;;:::i;2321:198:0:-;;;;;;:::i;:::-;;:::i;465:123:62:-;;;;;;:::i;:::-;;:::i;594:138::-;1334:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;654:17:62;::::1;650:56;;680:26;;-1:-1:-1::0;;;680:26:62::1;;;;;;;;;;;650:56;716:3;:9:::0;;-1:-1:-1;;;;;;716:9:62::1;-1:-1:-1::0;;;;;716:9:62;;;::::1;::::0;;;::::1;::::0;;594:138::o;546:787:88:-;414:3:62;;-1:-1:-1;;;;;414:3:62;400:10;:17;396:45;;426:15;;-1:-1:-1;;;426:15:62;;;;;;;;;;;396:45;189:6:74::1;641:4:88;:39;637:81;;689:29;;-1:-1:-1::0;;;689:29:88::1;;;;;;;;;;;637:81;783:18;804:49;189:6:74;804:15:88;:49;:::i;:::-;939:24;::::0;;;:13:::1;:24;::::0;;;;;783:70;;-1:-1:-1;939:37:88;-1:-1:-1;935:392:88::1;;;992:24;::::0;;;:13:::1;:24;::::0;;;;;;;:37;;;;1043:27:::1;:38:::0;;;;;:45;546:787::o;935:392::-:1;1123:38;::::0;;;:27:::1;:38;::::0;;;;;189:6:74::1;::::0;1123:45:88::1;::::0;1164:4;;1123:45:::1;:::i;:::-;:79;1119:137;;;1227:29;;-1:-1:-1::0;;;1227:29:88::1;;;;;;;;;;;1119:137;1270:38;::::0;;;:27:::1;:38;::::0;;;;:46;;1312:4;;1270:38;:46:::1;::::0;1312:4;;1270:46:::1;:::i;:::-;::::0;;;-1:-1:-1;;627:706:88::1;546:787:::0;;:::o;2071:101:0:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;444:96:88:-;3268:19:1;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:1;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:1;1476:19:9;:23;;;3376:66:1;;-1:-1:-1;3425:12:1;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:1;;1417:2:89;3314:201:1;;;1399:21:89;1456:2;1436:18;;;1429:30;1495:34;1475:18;;;1468:62;-1:-1:-1;;;1546:18:89;;;1539:44;1600:19;;3314:201:1;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:1;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:1;;;;;3551:65;506:27:88::1;529:3;506:22;:27::i;:::-;3640:14:1::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:1;;;3710:14;;-1:-1:-1;1782:36:89;;3710:14:1;;1770:2:89;1755:18;3710:14:1;;;;;;;3636:99;3258:483;444:96:88;:::o;2321:198:0:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:0;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:0;;2031:2:89;2401:73:0::1;::::0;::::1;2013:21:89::0;2070:2;2050:18;;;2043:30;2109:34;2089:18;;;2082:62;-1:-1:-1;;;2160:18:89;;;2153:36;2206:19;;2401:73:0::1;1829:402:89::0;2401:73:0::1;2484:28;2503:8;2484:18;:28::i;:::-;2321:198:::0;:::o;465:123:62:-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;544:16:62::1;:14;:16::i;:::-;570:11;577:3;570:6;:11::i;1599:130:0:-:0;1513:6;;-1:-1:-1;;;;;1513:6:0;929:10:10;1662:23:0;1654:68;;;;-1:-1:-1;;;1654:68:0;;2850:2:89;1654:68:0;;;2832:21:89;;;2869:18;;;2862:30;2928:34;2908:18;;;2901:62;2980:18;;1654:68:0;2648:356:89;2673:187:0;2765:6;;;-1:-1:-1;;;;;2781:17:0;;;-1:-1:-1;;;;;;2781:17:0;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;1003:95::-;5363:13:1;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1065:26:0::1;5363:13:1::0;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:1;;;;;;;:::i;:::-;1176:32:0::1;929:10:10::0;1176:18:0::1;:32::i;14:286:89:-:0;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:89;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:89:o;305:248::-;373:6;381;434:2;422:9;413:7;409:23;405:32;402:52;;;450:1;447;440:12;402:52;-1:-1:-1;;473:23:89;;;543:2;528:18;;;515:32;;-1:-1:-1;305:248:89:o;766:217::-;806:1;832;822:132;;876:10;871:3;867:20;864:1;857:31;911:4;908:1;901:15;939:4;936:1;929:15;822:132;-1:-1:-1;968:9:89;;766:217::o;988:222::-;1053:9;;;1074:10;;;1071:133;;;1126:10;1121:3;1117:20;1114:1;1107:31;1161:4;1158:1;1151:15;1189:4;1186:1;1179:15;1071:133;988:222;;;;:::o;2236:407::-;2438:2;2420:21;;;2477:2;2457:18;;;2450:30;2516:34;2511:2;2496:18;;2489:62;-1:-1:-1;;;2582:2:89;2567:18;;2560:41;2633:3;2618:19;;2236:407::o"},"methodIdentifiers":{"__HubControllable_init(address)":"f414c97d","initialize(address)":"c4d66de8","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setHub(address)":"31962cdc","spendTimeFor(uint256,uint256)":"581823bd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ExceededLoggableTime\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitParamsInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"__HubControllable_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"}],\"name\":\"setHub\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"spendTimeFor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/profiles/TimeWallet.sol\":\"TimeWallet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"contracts/common/access/HubControllableUpgradeable.sol\":{\"keccak256\":\"0xa136d76634a3ea944d76e1d1ddbdb99afb8f53803fa7daa6bd453b0289319295\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://23980ee8080eeda2d228a1016f8bec848336d3d8033ef27c5e95cf41e6074a8d\",\"dweb:/ipfs/QmYWUaXCzmPCCsc8PKQn32MRk3aNidzcPtYZViVmd9sd8X\"]},\"contracts/common/interfaces/ITimeWallet.sol\":{\"keccak256\":\"0x6c5b31022bb13684126bbc7497497184f991d81c8ee1934bee85a3379bd7ed96\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96309831dea93fc771a73bddb63c1ff46bdc54cb76ee62a7719e41b5ce4db449\",\"dweb:/ipfs/QmP9R6mphTqnT7HVjpuerR5kzc9yfJrUC1imH1WtcyPC1T\"]},\"contracts/common/libraries/Constants.sol\":{\"keccak256\":\"0x1c22a5150d72c2ef9baef07a7b1e74c3e30ba8ebb2cbfa339b3392c662ac6239\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3303822a495220b88d79244edcfdbf851c3fc26cdc056bf4e8e4f04f5331807\",\"dweb:/ipfs/QmXpkrctAvQ3dXerWEFu79Qy8jcGFaUZK3QLW1XK2hFCsG\"]},\"contracts/common/libraries/Errors.sol\":{\"keccak256\":\"0x49625ff58390590959a368dd9a67cf80ef5427c2c4f473ba8bbfaa872e6ad6f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bbc0056df0e4e95da5126d6b4354796efae5a07e00ddc7630d8a70ee7ea2ee0\",\"dweb:/ipfs/QmV1wiYFHqKRfZ9SyKXtmGnvrL7fGH4T7784rNsMJf1jt8\"]},\"contracts/profiles/TimeWallet.sol\":{\"keccak256\":\"0x155dcdd5f821a0f8441bd49312971f3ac45aea0c51662bcb6c8b9ca378a92ff2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f24df4486cd8c78d97f986e362d9c55a04ee4a7529409f281b3c3aa5573d8177\",\"dweb:/ipfs/QmWfyrtJJpi9d3smGC4jvEJBGGmpDdZ9hdUbW9mXnePUuJ\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":138,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":141,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":2306,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":10,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":130,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":21067,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"HUB","offset":0,"slot":"101","type":"t_address"},{"astId":25042,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"_lastTimeSlot","offset":0,"slot":"102","type":"t_mapping(t_uint256,t_uint256)"},{"astId":25046,"contract":"contracts/profiles/TimeWallet.sol:TimeWallet","label":"_totalTimeSinceLastTimeSlot","offset":0,"slot":"103","type":"t_mapping(t_uint256,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568"},"t_array(t_uint256)50_storage":{"base":"t_uint256","encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}}}}}}}